ゲーム製作におけるC/C++全般に関するスレです。
元スレ
DXライブラリ 総合スレッド その18
http://peace.2ch.net/test/read.cgi/gamedev/1399459468/
前スレ
C/C++ゲーム製作総合スレッド Part1
http://toro.2ch.net/test/read.cgi/gamedev/1337516528/
C/C++ゲーム製作総合スレッド Part2
http://toro.2ch.net/test/read.cgi/gamedev/1351015269/
C/C++ゲーム製作総合スレッド Part3
http://toro.2ch.net/test/read.cgi/gamedev/1357899040/
C/C++ゲーム製作総合スレッド Part4
http://toro.2ch.net/test/read.cgi/gamedev/1376262450/
C/C++ゲーム製作総合スレッド Part5
http://peace.2ch.net/test/read.cgi/gamedev/1389798031/
C/C++ゲーム製作総合スレッド Part6
http://peace.2ch.net/test/read.cgi/gamedev/1404815419/
C/C++ゲーム製作総合スレッド Part7 [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2015/01/11(日) 10:19:31.85ID:RDQlUyF+
162名前は開発中のものです。
2015/01/30(金) 23:29:11.58ID:lEERAgAH 正直C++もC#も言語使用は簡単でしょ?
問題はオブジェクト指向とかアルゴリズムじゃないの?
問題はオブジェクト指向とかアルゴリズムじゃないの?
163名前は開発中のものです。
2015/01/30(金) 23:48:33.71ID:mPLLQnOv ラインパーティクルみたいな細長くて透明な部分があるテクスチャが
交差するときって
どうすればいいですか?
というか、Zソートってテクスチャが貼られた面の重心を使ってやるんですか?
交差するときって
どうすればいいですか?
というか、Zソートってテクスチャが貼られた面の重心を使ってやるんですか?
164名前は開発中のものです。
2015/01/31(土) 00:04:49.27ID:XljQIOh1 メモリを意識して書かないといけないのはC/C++くらいでないの
メモリアドレス扱う言語って他になんかある?
メモリアドレス扱う言語って他になんかある?
165名前は開発中のものです。
2015/01/31(土) 00:15:01.69ID:vx9WzsVv >>162
C++は根底にCとしての組み込み系やら、ドライバとかの知識が有るかどうかでかなり変わると思う
まーもうニッチな世界になってしまってるけど、ゲームに絞るとコンシューマとかで何かを極めようとしたときに需要は有るかと
C++は根底にCとしての組み込み系やら、ドライバとかの知識が有るかどうかでかなり変わると思う
まーもうニッチな世界になってしまってるけど、ゲームに絞るとコンシューマとかで何かを極めようとしたときに需要は有るかと
166名前は開発中のものです。
2015/01/31(土) 00:23:27.83ID:08SnV/iE ZソートってZバッファのかわりに遠い方から描くって意味?
厳密にやるなら、ポリゴンを無限平面とした場合に交差する他のポリゴンを
交差する線で分割する処理をすべてのポリゴンにして
って文章で書いてもわかりにくいな。
分割のあとは2分木のクイックソートで、あるポリゴンの面から見て
別の比較するポリゴンが手前側か向こう側でソート判定する。
多分それなりに有名な方法と思うから検索すれば見つかると思うけど
手法の名前は知らない。
あと、赤黒木でもできるのかしらない。
厳密にやるなら、ポリゴンを無限平面とした場合に交差する他のポリゴンを
交差する線で分割する処理をすべてのポリゴンにして
って文章で書いてもわかりにくいな。
分割のあとは2分木のクイックソートで、あるポリゴンの面から見て
別の比較するポリゴンが手前側か向こう側でソート判定する。
多分それなりに有名な方法と思うから検索すれば見つかると思うけど
手法の名前は知らない。
あと、赤黒木でもできるのかしらない。
167名前は開発中のものです。
2015/01/31(土) 01:24:39.63ID:vx9WzsVv プレステやらサターンの時のZソートなら、重心か頂点の順番忘れたが二頂点のZ値を加算したものでソートしてたよ
でも組み込み方としては実際にソートではなく、リスト構造で管理してたと思う
だから解像度が低いとバキバキになってた
wソートってのも出たけど、流行る前にZバッファでパフォーマンス出るようになって無くなったと思う
でも組み込み方としては実際にソートではなく、リスト構造で管理してたと思う
だから解像度が低いとバキバキになってた
wソートってのも出たけど、流行る前にZバッファでパフォーマンス出るようになって無くなったと思う
168名前は開発中のものです。
2015/01/31(土) 01:26:13.53ID:H+AZbHjO169名前は開発中のものです。
2015/01/31(土) 02:31:32.35ID:MYAY0/XK >>161
じつはC#でXNAやってたんよ。
C++に戻るということは、ここ数年で作った自分ライブラリと
そこから呼び出しているXNAライブラリをDirectXに移植することを意味する。
けっこう大変だったり。
あとMonoGameが実用に足りるようになったらC#のままの方が楽というのも
正直、ある。C++でクロスプラットフォームの3Dライブラリがあれば
別なんだけど…。
じつはC#でXNAやってたんよ。
C++に戻るということは、ここ数年で作った自分ライブラリと
そこから呼び出しているXNAライブラリをDirectXに移植することを意味する。
けっこう大変だったり。
あとMonoGameが実用に足りるようになったらC#のままの方が楽というのも
正直、ある。C++でクロスプラットフォームの3Dライブラリがあれば
別なんだけど…。
170166
2015/01/31(土) 02:34:23.55ID:08SnV/iE > 手法の名前は知らない。
多分、BSPツリー法だと思う。wikipediaにバイナリ空間分割でのってる。
wソートってどんなのかちょっと興味あるけど、説明されても難いと読まないだろうなw
多分、BSPツリー法だと思う。wikipediaにバイナリ空間分割でのってる。
wソートってどんなのかちょっと興味あるけど、説明されても難いと読まないだろうなw
171名前は開発中のものです。
2015/01/31(土) 05:16:44.71ID:dLJDPFMl >>170
wバッファなら下にあったけど。たぶん今はwバッファとは呼ばない。
http://webcache.googleusercontent.com/search?q=cache:iuYaNXjit0oJ:www.daionet.gr.jp/~masa/column/98-06-25.html
wソートははじめて聞いた。
wバッファなら下にあったけど。たぶん今はwバッファとは呼ばない。
http://webcache.googleusercontent.com/search?q=cache:iuYaNXjit0oJ:www.daionet.gr.jp/~masa/column/98-06-25.html
wソートははじめて聞いた。
172名前は開発中のものです。
2015/01/31(土) 08:12:54.84ID:e0isyZ8t C#ってある意味理想的な言語だよね
・オブジェクトはすべて参照渡し
・値は参照渡しは出来るが参照で持つことはできない
・共有したい変数はクラス(構造体)にする
・オブジェクトはすべて参照渡し
・値は参照渡しは出来るが参照で持つことはできない
・共有したい変数はクラス(構造体)にする
173名前は開発中のものです。
2015/01/31(土) 08:17:29.88ID:XljQIOh1 VBもそんな感じじゃなかったっけ
174名前は開発中のものです。
2015/01/31(土) 12:13:09.01ID:H+AZbHjO175名前は開発中のものです。
2015/01/31(土) 12:39:15.50ID:jayN4xwq C#って、構造体の参照渡しで「メソッド側で書き換え不可能」指定ができないのが難。
ref:入出力を兼ねる参照渡し
out:出力のみの参照渡し(意外と便利)
C++のconst 型 *やconst 型 &がないと言えばいいか。
ref:入出力を兼ねる参照渡し
out:出力のみの参照渡し(意外と便利)
C++のconst 型 *やconst 型 &がないと言えばいいか。
176名前は開発中のものです。
2015/01/31(土) 12:44:18.35ID:dP8uz4HA Wソートってもしかしてローカルな話だったのか?
Zソートはリストだって話を書いたけど、そのリストを更にソートすることで込み合ってる部分を細かく前後入れ換える事で若干バリバリを押さえる感じだった
当時は描画よりも演算の方が圧倒的に早かったのとダブルバッファやトリプルバッファでの空き時間を有効にって感じだったよ
でも自分では研究以外では使ってない
理由は当時は整数演算だったから、ほとんど効果が感じられなかったから
Zソートはリストだって話を書いたけど、そのリストを更にソートすることで込み合ってる部分を細かく前後入れ換える事で若干バリバリを押さえる感じだった
当時は描画よりも演算の方が圧倒的に早かったのとダブルバッファやトリプルバッファでの空き時間を有効にって感じだったよ
でも自分では研究以外では使ってない
理由は当時は整数演算だったから、ほとんど効果が感じられなかったから
177名前は開発中のものです。
2015/01/31(土) 12:46:07.85ID:ehZNZ4NM 書き換えなきゃ良いだけだろ
なんでそんな事を言語仕様に入れなきゃならないんだ
なんでそんな事を言語仕様に入れなきゃならないんだ
178名前は開発中のものです。
2015/01/31(土) 12:51:54.53ID:vx9WzsVv179名前は開発中のものです。
2015/01/31(土) 12:55:33.58ID:jayN4xwq あ、連投ごめん。
上のリンク先とMSの解説で、ZバッファとWバッファの意味が逆になってる気がする。
https://msdn.microsoft.com/ja-jp/library/cc324546.aspx
リンク先は「割るほうがWバッファ、割らないほうがZバッファ」、
MSだと「割るほうがZバッファ、割らないほうがWバッファ」に読める。
用語の混乱があるのか、自分が何か勘違いしてるのか。
で、Wソートって何?
昔のPSみたくバッファリングしないでポリゴン単位でソートするけど、Wでやるってことかね。
上のリンク先とMSの解説で、ZバッファとWバッファの意味が逆になってる気がする。
https://msdn.microsoft.com/ja-jp/library/cc324546.aspx
リンク先は「割るほうがWバッファ、割らないほうがZバッファ」、
MSだと「割るほうがZバッファ、割らないほうがWバッファ」に読める。
用語の混乱があるのか、自分が何か勘違いしてるのか。
で、Wソートって何?
昔のPSみたくバッファリングしないでポリゴン単位でソートするけど、Wでやるってことかね。
180名前は開発中のものです。
2015/01/31(土) 13:05:31.10ID:+0dbs7Ey const必要になるのはライブラリ作成とかチーム開発とかだろうし
ひとりでシコシコ作ってる分には別に不便もないよな
コーディングルールは自分ルールだし
ひとりでシコシコ作ってる分には別に不便もないよな
コーディングルールは自分ルールだし
181名前は開発中のものです。
2015/01/31(土) 13:12:28.57ID:H+AZbHjO 自分も、自分用プログラムばっかり作ってて、const利用はハードコーディングな定数以外は0。
自分以外を考慮に入れると、たしかにconst修飾子は重要になると思うけど、
ある程度小規模なチームなら、ルールで十分賄えると思う。
自分以外を考慮に入れると、たしかにconst修飾子は重要になると思うけど、
ある程度小規模なチームなら、ルールで十分賄えると思う。
182名前は開発中のものです。
2015/01/31(土) 14:06:11.93ID:9fyUH/Hj struct, classのコピーを避けるために参照・ポインタを多用してると確実にミス出るし
constは値を中身を書き換えない保障でもあるから、内部処理を忘れたときとかに役立つ
constは値を中身を書き換えない保障でもあるから、内部処理を忘れたときとかに役立つ
183名前は開発中のものです。
2015/01/31(土) 14:13:16.03ID:ehZNZ4NM オブジェクトの参照を渡した時に中身を書き換えてくれるなよ、という要求はある
それをC++のようにconstで表現するのがいいかどうか
C#ではイラネってなったし要らないと思う
それをC++のようにconstで表現するのがいいかどうか
C#ではイラネってなったし要らないと思う
184名前は開発中のものです。
2015/01/31(土) 14:18:46.16ID:4UKOkNc6 ところで、const 同士の operater== は operater==(const) const; でいいのか?
最後の const で数時間悩んだんだが。ゲーム以外のところで…
最後の const で数時間悩んだんだが。ゲーム以外のところで…
185名前は開発中のものです。
2015/01/31(土) 14:47:44.78ID:g0EkdIoS friend operator == (const&, const&)
186名前は開発中のものです。
2015/01/31(土) 15:27:49.35ID:PEZyYsg9187名前は開発中のものです。
2015/01/31(土) 16:27:45.39ID:4UKOkNc6 あー、ここで friend 使うのかサンクス。スレチすまん
188名前は開発中のものです。
2015/01/31(土) 19:40:50.51ID:LvLYpCGK 単に規約の問題だけじゃなくて。
constというかC#のreadonlyは構造体にも指定できるんだけど、
それを先述のref指定でメソッドに渡せないんだよ。
既存のライブラリでref指定(参照渡し)になっているものが
少なからずある。まあ別の変数に代入してから値渡しできるんだけど、
微妙にパフォーマンス落ちるでしょう。
constというかC#のreadonlyは構造体にも指定できるんだけど、
それを先述のref指定でメソッドに渡せないんだよ。
既存のライブラリでref指定(参照渡し)になっているものが
少なからずある。まあ別の変数に代入してから値渡しできるんだけど、
微妙にパフォーマンス落ちるでしょう。
189名前は開発中のものです。
2015/01/31(土) 22:35:54.52ID:g0XZBTK4 const無しをデフォルトにしてしまうと,引数先で書き換えるのかどうか,引数からわからなくなるから
基本はconst参照だよね
基本はconst参照だよね
190名前は開発中のものです。
2015/01/31(土) 23:12:04.08ID:IlaPMJGi constなしの参照だとrvalue取れないし。
全部コピー渡しですかそうですか
全部コピー渡しですかそうですか
191名前は開発中のものです。
2015/01/31(土) 23:45:24.01ID:+0dbs7Ey const付けたらコンパイル時に置き換えられるの?
192名前は開発中のものです。
2015/02/01(日) 02:38:02.64ID:HEaS08Xq #defineした変数をconstするとどうなるのっと
193名前は開発中のものです。
2015/02/01(日) 09:04:46.33ID:4SXpmV3a >>188
たまにそういうシチュエーションがあるけど、それを解決するために言語使用に手を入れるのは言語道断
たまにそういうシチュエーションがあるけど、それを解決するために言語使用に手を入れるのは言語道断
194名前は開発中のものです。
2015/02/01(日) 16:13:17.17ID:7SDWQ5Km195名前は開発中のものです。
2015/02/01(日) 16:38:17.15ID:5cTwIokB >>192
お前のconstでコードがやばい
お前のconstでコードがやばい
196名前は開発中のものです。
2015/02/01(日) 16:38:49.06ID:gTwIs5aq template初めて使ったんだけど引数側に同じtemplate型があれば、
返り値をわざわざ指定しなくてもいいの?
↓こんなん
template<typename T>
T zeroCheckException(T t){
if(t == 0)throw;
return t;
}
返り値をわざわざ指定しなくてもいいの?
↓こんなん
template<typename T>
T zeroCheckException(T t){
if(t == 0)throw;
return t;
}
197名前は開発中のものです。
2015/02/01(日) 16:44:02.52ID:wN5YVAib >>196
2つあるTはどちらも同じ型なんだから、むしろ指定できたらダメだろ
引数と同じ型を返す関数、という意味になっている
引数から推測できない型を返したいなら、typename を2回書けばいい
template < typename R, typename T > R convertTo(T t) { return ... }
string r = convertTo<string>(123);
2つあるTはどちらも同じ型なんだから、むしろ指定できたらダメだろ
引数と同じ型を返す関数、という意味になっている
引数から推測できない型を返したいなら、typename を2回書けばいい
template < typename R, typename T > R convertTo(T t) { return ... }
string r = convertTo<string>(123);
198名前は開発中のものです。
2015/02/01(日) 16:59:29.96ID:7TQeJfVA >>196
>>返り値をわざわざ指定しなくてもいいの?
多分質問の意味からだと、返り値を引数と同じ型(T)で返したいなら返り値(の型)の宣言は必要
その部分はtemplateとは関係のない関数宣言の話で、template内はTと言う型が使えるようになっているだけだと思って関数を宣言すればOK
だから、その関数が返り値を返す必要がないならvoid、intを返したいならintになる
>>返り値をわざわざ指定しなくてもいいの?
多分質問の意味からだと、返り値を引数と同じ型(T)で返したいなら返り値(の型)の宣言は必要
その部分はtemplateとは関係のない関数宣言の話で、template内はTと言う型が使えるようになっているだけだと思って関数を宣言すればOK
だから、その関数が返り値を返す必要がないならvoid、intを返したいならintになる
199名前は開発中のものです。
2015/02/01(日) 17:45:05.57ID:bGERJtUD typenameとclassってどっちがモダンなん?
あるいは使い分けが必要?
あるいは使い分けが必要?
200名前は開発中のものです。
2015/02/01(日) 19:03:59.15ID:gTwIs5aq http://ideone.com/bM0sAR
http://i.gyazo.com/a30bf7d11715dd37855cf8fc8a9be676.png
一度変数にしないと、とんでもない数値になるんだけどさっぱりわからない
計算してるわけじゃないから桁あふれで無いと思うんだけど
http://i.gyazo.com/a30bf7d11715dd37855cf8fc8a9be676.png
一度変数にしないと、とんでもない数値になるんだけどさっぱりわからない
計算してるわけじゃないから桁あふれで無いと思うんだけど
201名前は開発中のものです。
2015/02/01(日) 19:05:18.65ID:gTwIs5aq >>197,198
なるほど、ありがとう
なるほど、ありがとう
202名前は開発中のものです。
2015/02/01(日) 19:24:29.40ID:aP8gwvz+ >>199
常にclassを使用していて困ったことがない
常にclassを使用していて困ったことがない
203名前は開発中のものです。
2015/02/01(日) 19:33:48.11ID:2nnmtHZB class使ってる人を見たことがない
204名前は開発中のものです。
2015/02/01(日) 19:36:58.64ID:mV3TuxIT205名前は開発中のものです。
2015/02/01(日) 19:53:30.95ID:I530QHNw206名前は開発中のものです。
2015/02/01(日) 20:01:18.83ID:mV3TuxIT207名前は開発中のものです。
2015/02/01(日) 20:12:12.40ID:2nnmtHZB そんな問題じゃねーよw
208名前は開発中のものです。
2015/02/01(日) 20:29:03.32ID:mV3TuxIT >>207
(゚Д゚)
(゚Д゚)
209名前は開発中のものです。
2015/02/01(日) 20:46:24.29ID:eIbULHuy211名前は開発中のものです。
2015/02/01(日) 22:50:33.72ID:/xEMpT1p classしか使わない派だが,template自体あまり使わないことにしてる
212名前は開発中のものです。
2015/02/01(日) 22:52:09.95ID:UZAipjiA 自分はtypename派だな。
classに限定しない使い方が多いからというのがあるけどね。
ま、組み込み型も一種のクラスと見做せないことはないし、文字数少ない分、classのほうがいいかもしんないけど。
classに限定しない使い方が多いからというのがあるけどね。
ま、組み込み型も一種のクラスと見做せないことはないし、文字数少ない分、classのほうがいいかもしんないけど。
213名前は開発中のものです。
2015/02/02(月) 00:06:09.93ID:WStqUBYk もはやゲーム関係ない気がするのはミンナニ ナイショダヨ
214名前は開発中のものです。
2015/02/02(月) 01:35:39.62ID:g0RkpJRz て、テンプレ使えれば前以上に楽ができるかもしんないし!
なお移植性が壊滅的に下がる模様
なお移植性が壊滅的に下がる模様
215名前は開発中のものです。
2015/02/02(月) 04:07:49.86ID:lvNA0Ulc テンプレート使って移植性が下がるってここの住民は一体いつの時代に生きてるんだろうか
216名前は開発中のものです。
2015/02/02(月) 08:53:14.68ID:9YOvsS+B 俺もテンプレート自体使わないな
過去の遺物だろあれ
過去の遺物だろあれ
217名前は開発中のものです。
2015/02/02(月) 09:10:16.63ID:QEPcxUVH >>216
ダメだこいつ…早くなんとかしないと
ダメだこいつ…早くなんとかしないと
218名前は開発中のものです。
2015/02/02(月) 09:50:21.86ID:pbbvOQ2U VSのバージョン上がるたびにどこかしらテンプレートで書いたところの書き直しが待ってるんだよな
MPLに手を出すと他の処理系でまた違う方言で困るし
MPLに手を出すと他の処理系でまた違う方言で困るし
219名前は開発中のものです。
2015/02/02(月) 10:05:53.54ID:ZKghX0zO バージョン上がるたびに、ってほどテンプレートに手入ってたっけ?
むしろ、いままでコンパイルを通すためにいちいち">"と">"の間にスペースを入れていたのが
入れる必要なくなったとか、そういう方面の変更しか知らないんだけど
むしろ、いままでコンパイルを通すためにいちいち">"と">"の間にスペースを入れていたのが
入れる必要なくなったとか、そういう方面の変更しか知らないんだけど
220名前は開発中のものです。
2015/02/02(月) 10:33:54.29ID:TF5MhFQ8 だいぶこなれてきたから、できないことができるようにはなっても、逆は無いと思うぞ
確かにC++03時代は typename が急に必要にされてエラーになるのはあったけど
気になるなら互換性を吸収するラッパーとしてboostを使うのも手だな
確かにC++03時代は typename が急に必要にされてエラーになるのはあったけど
気になるなら互換性を吸収するラッパーとしてboostを使うのも手だな
221名前は開発中のものです。
2015/02/02(月) 11:10:10.63ID:pbbvOQ2U 最近変えたところだと
enable_ifが無い頃の代替としての部分特殊化のコードが
2012では通ってたのに2013でC2753で通らなくなって
代わりにenable_if使えるからそれになって
2015でconstexprあるからそこはテンプレート要らないだろうなて状態だわ
なんでエラーなのか追いかけるの面倒だから新機能で凌いでる
boostのを最初から使えばいいんだけどライブラリのバージョンアップが面倒でね
enable_ifが無い頃の代替としての部分特殊化のコードが
2012では通ってたのに2013でC2753で通らなくなって
代わりにenable_if使えるからそれになって
2015でconstexprあるからそこはテンプレート要らないだろうなて状態だわ
なんでエラーなのか追いかけるの面倒だから新機能で凌いでる
boostのを最初から使えばいいんだけどライブラリのバージョンアップが面倒でね
222名前は開発中のものです。
2015/02/02(月) 11:30:47.44ID:uEPb5G0x テンプレートが悪いというよりVSの実装が
223名前は開発中のものです。
2015/02/02(月) 12:44:55.25ID:QEPcxUVH STLもテンプレートなのに
224名前は開発中のものです。
2015/02/02(月) 13:21:17.62ID:ZKghX0zO SFINAE周りは確かに、C++11でようやく統一仕様が策定されて多少手を付けやすくなった印象がある
>>223
テンプレートを使ってるライブラリを使うのと
テンプレートなクラスや関数を自分で作るのとは
結構隔たりがある気がする…
>>223
テンプレートを使ってるライブラリを使うのと
テンプレートなクラスや関数を自分で作るのとは
結構隔たりがある気がする…
225名前は開発中のものです。
2015/02/02(月) 13:54:32.94ID:fu9cgs9q スタンダードテンプレートライブラリ(の構想・実装)が先にあってC++で実装するためにテンプレートが導入された。テンプレートはSTL実装のための道具といえる。
Standard Template Library - Wikipedia
STLのアーキテクチャの多くはアレクサンドル・ステパノフという一人の人物の手によって作られた。
1979年に彼はジェネリックプログラミングの初期アイデアを練り始め、そしてソフトウェア開発に革命をもたらす可能性を探究し始めた。
当時はジェネリックプログラミングを実際にサポートしているプログラミング言語がまだなかった。
それをサポートする最初のメジャーな言語はジェネリックユニットの機能があるAdaであった。
1987年までにステパノフとマッサーはジェネリックプログラミングの研究成果としてAdaのリスト処理ライブラリを開発してリリースしていた。
C++は当時まだ言語として未成熟ではあったものの(テンプレートはまだなく後から実装された)、より広く普及してジェネリックプログラミングの良好なサポートが提供される可能性が高いと考えられた。
Standard Template Library - Wikipedia
STLのアーキテクチャの多くはアレクサンドル・ステパノフという一人の人物の手によって作られた。
1979年に彼はジェネリックプログラミングの初期アイデアを練り始め、そしてソフトウェア開発に革命をもたらす可能性を探究し始めた。
当時はジェネリックプログラミングを実際にサポートしているプログラミング言語がまだなかった。
それをサポートする最初のメジャーな言語はジェネリックユニットの機能があるAdaであった。
1987年までにステパノフとマッサーはジェネリックプログラミングの研究成果としてAdaのリスト処理ライブラリを開発してリリースしていた。
C++は当時まだ言語として未成熟ではあったものの(テンプレートはまだなく後から実装された)、より広く普及してジェネリックプログラミングの良好なサポートが提供される可能性が高いと考えられた。
226名前は開発中のものです。
2015/02/02(月) 14:52:33.01ID:bbrlQEEY で、結局>>200はuintの減算でオーバーフローしてるってことでいいのか?
int - uintがintにキャストされれば大丈夫そうな気がするけど
int - uintがintにキャストされれば大丈夫そうな気がするけど
227名前は開発中のものです。
2015/02/02(月) 15:26:46.03ID:u58PP6hj 桁あふれや型違いの時に起こる超数値に見える
228名前は開発中のものです。
2015/02/02(月) 16:37:35.11ID:lvNA0Ulc そんな問題じゃねーよさんが解決してくれるさ
229名前は開発中のものです。
2015/02/02(月) 17:14:57.39ID:ZKghX0zO 直接的な解決策や原因は分からないけど、俺なら
・「unitList.size()*140」を「unitList.size()*140.0f」にして直るか確認する
・set/getPositionXを通さなかったらどうなるか確認する(当該メンバ関数の実装が自明である場合を除く)
・コンパイラの警告設定を最強にしてみて、何かメッセージが出るか確認する
あたりをやってみると思う
・「unitList.size()*140」を「unitList.size()*140.0f」にして直るか確認する
・set/getPositionXを通さなかったらどうなるか確認する(当該メンバ関数の実装が自明である場合を除く)
・コンパイラの警告設定を最強にしてみて、何かメッセージが出るか確認する
あたりをやってみると思う
230名前は開発中のものです。
2015/02/02(月) 18:13:33.41ID:NKDBUGQv で、ゲーム制作だと意識して。
開発環境を開発中やデバッグ中に更新するとか無いだろ
移植で困ることは判る
開発環境を開発中やデバッグ中に更新するとか無いだろ
移植で困ることは判る
231名前は開発中のものです。
2015/02/02(月) 18:39:29.29ID:u58PP6hj 新しい開発環境に新規実装された要素どうしても使いたかったんだ…と推測(適当)
CやC++とはあまり関係ないけど、
一部の開発環境では、関数や変数を書いた行にコメントしとけば
カーソル合わせるだけでコメントが出るのでメモ代わりにできるな
なおソースがコメントだらけになり、よそに貼った時に失笑物のソースになる模様
CやC++とはあまり関係ないけど、
一部の開発環境では、関数や変数を書いた行にコメントしとけば
カーソル合わせるだけでコメントが出るのでメモ代わりにできるな
なおソースがコメントだらけになり、よそに貼った時に失笑物のソースになる模様
232名前は開発中のものです。
2015/02/02(月) 19:31:16.34ID:lvNA0Ulc233名前は開発中のものです。
2015/02/02(月) 20:49:55.23ID:0Y8pqiU9 色々試してみたけど、オーバーフローしたuintを直接floatにキャストするのがダメっぽいね
一回intにキャストすれば大丈夫だった
int - uintはintになるってわけじゃないのね
テストコード
#include <iostream>
int main()
{
int i=3;
size_t ui = 5;
float x = i-ui;
float x2 = i - static_cast<int>(ui);
int x3 = i - ui;
float x4 = static_cast<int>(i-ui);
std::cout << x << std::endl;
std::cout << x2 << std::endl;
std::cout << x3 << std::endl;
std::cout << x4 << std::endl;
std::cout << static_cast<float>(i-ui) << std::endl;
}
一回intにキャストすれば大丈夫だった
int - uintはintになるってわけじゃないのね
テストコード
#include <iostream>
int main()
{
int i=3;
size_t ui = 5;
float x = i-ui;
float x2 = i - static_cast<int>(ui);
int x3 = i - ui;
float x4 = static_cast<int>(i-ui);
std::cout << x << std::endl;
std::cout << x2 << std::endl;
std::cout << x3 << std::endl;
std::cout << x4 << std::endl;
std::cout << static_cast<float>(i-ui) << std::endl;
}
234名前は開発中のものです。
2015/02/02(月) 21:20:46.80ID:lvNA0Ulc >>233
intで表現出来ない値をintへcastしたら桁あふれで未定義動作
intで表現出来ない値をintへcastしたら桁あふれで未定義動作
235名前は開発中のものです。
2015/02/02(月) 21:33:08.99ID:MkYgWBqp >>234
未定義になる可能性のある演算は暗黙のキャストしてくれないって事?
未定義になる可能性のある演算は暗黙のキャストしてくれないって事?
236名前は開発中のものです。
2015/02/02(月) 21:39:18.84ID:lvNA0Ulc >>235
違う
intとunsigned intの演算結果はunsigned int
もちろんunsigned intはマイナスを表現出来ない、なので0-1uはUINT_MAXになる。(符号無し整数は桁あふれしても未定義動作ではない)
でも符号あり整数の桁あふれは未定義動作なのでUINT_MAXをintへキャストするのは未定義動作
まぁ大抵の処理系では動くだろうけど。
違う
intとunsigned intの演算結果はunsigned int
もちろんunsigned intはマイナスを表現出来ない、なので0-1uはUINT_MAXになる。(符号無し整数は桁あふれしても未定義動作ではない)
でも符号あり整数の桁あふれは未定義動作なのでUINT_MAXをintへキャストするのは未定義動作
まぁ大抵の処理系では動くだろうけど。
237名前は開発中のものです。
2015/02/02(月) 21:57:25.95ID:MkYgWBqp 符合ありなしで演算すると符合なしになるのか
なるほどねー
なるほどねー
238名前は開発中のものです。
2015/02/02(月) 22:39:56.06ID:4aJa1XJJ 混ぜるな危険
239名前は開発中のものです。
2015/02/02(月) 22:40:47.51ID:AAW+YNQa >>238
いいねw
いいねw
240名前は開発中のものです。
2015/02/03(火) 00:10:07.19ID:0Nhy8xyl これそもそも size_t が unsinged int なのが悪いんだよな、頭悪すぎ
241名前は開発中のものです。
2015/02/03(火) 02:08:59.87ID:YnXnr0TR size_tはsizeofで測ったデータの長さを受け取る物だからよ
データの長さに0未満はあり得ないから定義できないようにしてるんだろう
データの長さに0未満はあり得ないから定義できないようにしてるんだろう
242名前は開発中のものです。
2015/02/03(火) 04:00:41.53ID:WscpFvcA 質問です。
抽象クラス(親クラスとする)を継承した派生クラス(子クラスとする)を
親クラスの型のメンバー変数に子クラス型でnew()し、抽象化して保持してます。
このメンバーをdelete してすぐNULLを代入しても、参照が残ってるみたいで
エラーでる場合があります。
抽象化しているオブジェクトの削除の、お作法みたいなものってありますでしょうか。
抽象クラス(親クラスとする)を継承した派生クラス(子クラスとする)を
親クラスの型のメンバー変数に子クラス型でnew()し、抽象化して保持してます。
このメンバーをdelete してすぐNULLを代入しても、参照が残ってるみたいで
エラーでる場合があります。
抽象化しているオブジェクトの削除の、お作法みたいなものってありますでしょうか。
243名前は開発中のものです。
2015/02/03(火) 04:32:33.06ID:UaiJdd2F244名前は開発中のものです。
2015/02/03(火) 04:40:14.90ID:WscpFvcA >>243
ありがとうございます。
ありがとうございます。
245名前は開発中のものです。
2015/02/03(火) 13:03:57.60ID:vrraL4+G スレはあってるけど板が違う的な。
まあ、ゲーム関係かどうかの境目って結構曖昧だけれども。
まあ、ゲーム関係かどうかの境目って結構曖昧だけれども。
246名前は開発中のものです。
2015/02/03(火) 13:07:01.87ID:IeF+/7iv いずれにしろコードもなしに質問されてもエスパーしか回答出来ないですし
247名前は開発中のものです。
2015/02/05(木) 07:36:31.37ID:gQYa1HB0 開発期間が長すぎて、開発環境が何度も変わるのってどう思いますか?
開発環境を固定する?それともコードを書き直して対応する?
開発環境を固定する?それともコードを書き直して対応する?
248名前は開発中のものです。
2015/02/05(木) 08:11:52.44ID:6fCmneha boost辺りならまだしも、言語自体のバージョンが上がるまでって
一体どんだけ開発期間が長いか間が悪いんだよ…
どうしても使いたい追加要素でもなければ変えない トラブルの素
一体どんだけ開発期間が長いか間が悪いんだよ…
どうしても使いたい追加要素でもなければ変えない トラブルの素
249名前は開発中のものです。
2015/02/05(木) 09:22:24.85ID:JByM0e2E CSのSDKとかじゃないの?
開発序盤なら対応、終わりが見えてたらそのままってのが普通だと思うけど
開発序盤なら対応、終わりが見えてたらそのままってのが普通だと思うけど
250名前は開発中のものです。
2015/02/05(木) 10:05:22.41ID:tVSHsnYT 昔VS2008から2010に上げたけど特に問題は起きなかった
251名前は開発中のものです。
2015/02/05(木) 12:20:47.44ID:qWgtWrzH vsの2005から2012に上げたら、Releaseでは動くけどdebugでは動かなくなった
自前で作ってた文字列クラスが弾かれたから、現在、std::wstringに置き換え中
自前で作ってた文字列クラスが弾かれたから、現在、std::wstringに置き換え中
252名前は開発中のものです。
2015/02/05(木) 17:18:01.03ID:grWdPzSP253名前は開発中のものです。
2015/02/05(木) 19:05:51.48ID:IWRqO40R iOS向けなら変えざるを得ない
254名前は開発中のものです。
2015/02/05(木) 19:45:56.22ID:ckteJ+s1 プロの人も来てるのかも知れないけど、同人ならぶっちゃけ
DirectX9辺りの技術基盤があれば十分じゃないの。
新技術に取り組むこと自体が目的化して、ゲームを完成させる方が
疎かになってしまうって、何かありがちな気がする。
DirectX9辺りの技術基盤があれば十分じゃないの。
新技術に取り組むこと自体が目的化して、ゲームを完成させる方が
疎かになってしまうって、何かありがちな気がする。
255名前は開発中のものです。
2015/02/05(木) 22:51:52.09ID:EoFgZ44U 別に必要ないなら使わなければいいんです、エロい人にはそれが分からんのです
256名前は開発中のものです。
2015/02/06(金) 08:51:59.99ID:J5odCBuG だまれ朝鮮人
257名前は開発中のものです。
2015/02/06(金) 08:53:55.71ID:u5/2KnVF idがバグ
258名前は開発中のものです。
2015/02/06(金) 09:00:23.95ID:12AknHRs259名前は開発中のものです。
2015/02/06(金) 11:05:36.91ID:vDg1pnk8 面白けりゃ何でもいいんだよ。
260名前は開発中のものです。
2015/02/06(金) 14:58:45.96ID:1vhL8u+G もとの環境で大体完成していたのに、
無理やり次世代機用に作り直そうとしたがうまくいかず、
そのまま爆死した家庭用機向けソフトのプロジェクトなら知ってる
無理やり次世代機用に作り直そうとしたがうまくいかず、
そのまま爆死した家庭用機向けソフトのプロジェクトなら知ってる
261名前は開発中のものです。
2015/02/06(金) 17:34:24.75ID:12AknHRs■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに ★2 [ニョキニョキ★]
- 日本と中国を結ぶ12航空路線で全便欠航 中国人に最も人気の海外旅行先は日本から韓国に [ぐれ★]
- 米中電話会談、トランプ氏は「米国側は中国にとっての台湾問題の重要性を理解する」 [1ゲットロボ★]
- 【東京・足立の車暴走】赤信号無視か 危険運転致死傷疑いも視野に捜査 逮捕された職業不詳の男性(37)は精神疾患で通院歴も ★3 [ぐれ★]
- 【音楽】「なんでこんなバカが国のトップなの?」 若者に人気のバンド「GEZAN」のマヒトゥ・ザ・ピーポーが高市総理に苦言 [シャチ★]
- 【国際】トランプ氏、来年4月に中国を訪問する招待を受け入れる 習氏も国賓で訪米へ 電話会談 [ぐれ★]
- 専門家「社会不安や不満が高まると、人々は原因を単純化し外集団を脅威として捉えやすくなります」政権批判か?😡 [399259198]
- ーーーーー力が欲しいんかーーーーー?
- 水とかいう地球にしか存在しない謎の存在
- 【画像】女にモテるタバコの銘柄
- 【画像】なんか模型屋さんにいかにもお前らが好んでそうなアキバ系のアニメ?のキャラいたけどこれなに?
- 【高市悲報】来年、習近平主席がアメリカに「国賓」として訪米。どうするんだよ高市・・・アメリカも敵に回すのか? [483862913]
