[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2ch.scのread.cgiへ]
Update time : 12/28 20:22 / Filesize : 177 KB / Number-of Response : 736
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++ゲーム製作総合スレッド Part7



1 名前:名前は開発中のものです。 mailto:sage [2015/01/11(日) 10:19:31.85 ID:RDQlUyF+.net]
ゲーム製作におけるC/C++全般に関するスレです。

元スレ
DXライブラリ 総合スレッド その18
peace.2ch.net/test/read.cgi/gamedev/1399459468/

前スレ
C/C++ゲーム製作総合スレッド Part1
toro.2ch.net/test/read.cgi/gamedev/1337516528/
C/C++ゲーム製作総合スレッド Part2
toro.2ch.net/test/read.cgi/gamedev/1351015269/
C/C++ゲーム製作総合スレッド Part3
toro.2ch.net/test/read.cgi/gamedev/1357899040/
C/C++ゲーム製作総合スレッド Part4
toro.2ch.net/test/read.cgi/gamedev/1376262450/
C/C++ゲーム製作総合スレッド Part5
peace.2ch.net/test/read.cgi/gamedev/1389798031/
C/C++ゲーム製作総合スレッド Part6
peace.2ch.net/test/read.cgi/gamedev/1404815419/

154 名前:名前は開発中のものです。 mailto:sage [2015/01/29(木) 13:45:00.34 ID:au4Qd8+o.net]
C++でブラウザゲーム開発?

155 名前:名前は開発中のものです。 mailto:sage [2015/01/29(木) 15:54:12.53 ID:PqqQ3LUQ.net]
ただの荒らしでは?

156 名前:名前は開発中のものです。 mailto:sage [2015/01/29(木) 19:20:51.28 ID:QDO0WN3U.net]
>>150
emscripten?

157 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 17:01:12.20 ID:1O7TniCL.net]
「国産フリーゲームの舞台をPCスタンドアロン(主にC++)から
ブラウザゲーム(クラウド、HTML5)やスマートフォンアプリ(非C++多)に移行」
させようという思惑を、最近この板でひしひしと感じる。

158 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 17:49:20.89 ID:Uwc5t0gr.net]
エサに飢えたスマホ厨や企業やその信者のステマ工作員だろ ほっとけ

159 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 17:52:07.48 ID:9l7Lplvm.net]
スマホはAppmethodというC++環境もあるが?

160 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 18:28:39.45 ID:cceEvulu.net]
一般企業 : C++って難しいんでしょ?
奴隷商人 : 新しいxx言語やツールを使えば簡単ですよ
奴隷商人 : C++なんか使う必要ありません
奴隷商人 : 素人でもちょっと勉強すれば使えますよ
奴隷商人 : わが社では優秀なxx言語エンジニアを多く確保しています
奴隷商人 : 非常にリーズナブルな値段で派遣できますよ
一般企業 : じゃあxx言語とツールで開発するからnn人派遣して
奴隷商人 : まいどw

奴隷商人 : さてと在庫減ったし新しいボンクラ雇うかな、安い金でw
奴隷商人 : Appmethod? ボンクラがC++使えるわけねーだろw
奴隷商人 : うちは安さが売りなの

C++プログラマ : 仕事ないすか?
一般企業 : うちはxx言語とツールで開発するからC++いらないよ
一般企業 : C++高くつくし

ユーザ : みためはそれなりだけど、手抜き感ありありのクソゲー増えたな
ユーザ : 今売れてる○○なんか△△をパクッて版権キャラゲーにしただけだし
ユーザ : そのくせバグが多くて元の△△より面白くない

161 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 18:54:29.18 ID:8M4ey3DN.net]
まいどw

162 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 19:11:37.72 ID:WJ9MDokc.net]
>>156
C++でも買い叩かれる



163 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 20:07:26.54 ID:eOqAWtJ/.net]
(給与だけなら)Python最強、C++は微妙

プログラミング言語別求人給与額の第2位はRuby、第1

164 名前:位は? | 開発・SE | マイナビニュース
http://s.news.mynavi.jp/news/2014/11/04/084/
[]
[ここ壊れてます]

165 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 20:33:11.20 ID:8M4ey3DN.net]
>>159
件数の軸だけ見ると、Javaが断トツなんだな。
ま、自分はC++しかしないけど。

166 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 21:50:27.80 ID:xDmuU9zY.net]
民度が高過ぎる(笑)。

自分は案件減や開発コスト軽減からC#やPHPに日和ってしまってるけど
やっぱりちゃんとC++で「アセンブラレベルで何が起こってるか」意識した
プログラムしないとダメになっちゃうかもね。

167 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 23:02:06.31 ID:8M4ey3DN.net]
>>161
C++は遣り甲斐があるぞ〜、と誘惑してみるw

168 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 23:29:11.58 ID:lEERAgAH.net]
正直C++もC#も言語使用は簡単でしょ?
問題はオブジェクト指向とかアルゴリズムじゃないの?

169 名前:名前は開発中のものです。 [2015/01/30(金) 23:48:33.71 ID:mPLLQnOv.net]
ラインパーティクルみたいな細長くて透明な部分があるテクスチャが
交差するときって
どうすればいいですか?
というか、Zソートってテクスチャが貼られた面の重心を使ってやるんですか?

170 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 00:04:49.27 ID:XljQIOh1.net]
メモリを意識して書かないといけないのはC/C++くらいでないの
メモリアドレス扱う言語って他になんかある?

171 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 00:15:01.69 ID:vx9WzsVv.net]
>>163
C++は根底にCとしての組み込み系やら、ドライバとかの知識が有るかどうかでかなり変わると思う
まーもうニッチな世界になってしまってるけど、ゲームに絞るとコンシューマとかで何かを極めようとしたときに需要は有るかと

172 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 00:23:27.83 ID:08SnV/iE.net]
ZソートってZバッファのかわりに遠い方から描くって意味?
厳密にやるなら、ポリゴンを無限平面とした場合に交差する他のポリゴンを
交差する線で分割する処理をすべてのポリゴンにして
って文章で書いてもわかりにくいな。
分割のあとは2分木のクイックソートで、あるポリゴンの面から見て
別の比較するポリゴンが手前側か向こう側でソート判定する。

多分それなりに有名な方法と思うから検索すれば見つかると思うけど
手法の名前は知らない。
あと、赤黒木でもできるのかしらない。



173 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 01:24:39.63 ID:vx9WzsVv.net]
プレステやらサターンの時のZソートなら、重心か頂点の順番忘れたが二頂点のZ値を加算したものでソートしてたよ
でも組み込み方としては実際にソートではなく、リスト構造で管理してたと思う
だから解像度が低いとバキバキになってた
wソートってのも出たけど、流行る前にZバッファでパフォーマンス出るようになって無くなったと思う

174 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 01:26:13.53 ID:H+AZbHjO.net]
>>168
wソートってのがあったのかw
興味深いw

175 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 02:31:32.35 ID:MYAY0/XK.net]
>>162
じつはC#でXNAやってたんよ。

C++に戻るということは、ここ数年で作った自分ライブラリと
そこから呼び出しているXNAライブラリをDirectXに移植することを意味する。
けっこう大変だったり。

あとMonoGameが実用に足りるようになったらC#のままの方が楽というのも
正直、ある。C++でクロスプラットフォームの3Dライブラリがあれば
別なんだけど…。

176 名前:166 mailto:sage [2015/01/31(土) 02:34:23.55 ID:08SnV/iE.net]
> 手法の名前は知らない。
多分、BSPツリー法だと思う。wikipediaにバイナリ空間分割でのってる。

wソートってどんなのかちょっと興味あるけど、説明されても難いと読ま

177 名前:ないだろうなw []
[ここ壊れてます]

178 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 05:16:44.71 ID:dLJDPFMl.net]
>>171
wバッファなら下にあったけど。たぶん今はwバッファとは呼ばない。
webcache.googleusercontent.com/search?q=cache:iuYaNXjit0oJ:www.daionet.gr.jp/~masa/column/98-06-25.html
wソートははじめて聞いた。

179 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 08:12:54.84 ID:e0isyZ8t.net]
C#ってある意味理想的な言語だよね

・オブジェクトはすべて参照渡し
・値は参照渡しは出来るが参照で持つことはできない
・共有したい変数はクラス(構造体)にする

180 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 08:17:29.88 ID:XljQIOh1.net]
VBもそんな感じじゃなかったっけ

181 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 12:13:09.01 ID:H+AZbHjO.net]
>>172
おお、川瀬さんのページか。
清水さんと交流あったんだな。

>>173
>・共有したい変数はクラス(構造体)にする
C#がやたらクラスだらけなのはそういうことだったのか・・・

182 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 12:39:15.50 ID:jayN4xwq.net]
C#って、構造体の参照渡しで「メソッド側で書き換え不可能」指定ができないのが難。

ref:入出力を兼ねる参照渡し
out:出力のみの参照渡し(意外と便利)

C++のconst 型 *やconst 型 &がないと言えばいいか。



183 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 12:44:18.35 ID:dP8uz4HA.net]
Wソートってもしかしてローカルな話だったのか?
Zソートはリストだって話を書いたけど、そのリストを更にソートすることで込み合ってる部分を細かく前後入れ換える事で若干バリバリを押さえる感じだった
当時は描画よりも演算の方が圧倒的に早かったのとダブルバッファやトリプルバッファでの空き時間を有効にって感じだったよ
でも自分では研究以外では使ってない
理由は当時は整数演算だったから、ほとんど効果が感じられなかったから

184 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 12:46:07.85 ID:ehZNZ4NM.net]
書き換えなきゃ良いだけだろ
なんでそんな事を言語仕様に入れなきゃならないんだ

185 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 12:51:54.53 ID:vx9WzsVv.net]
>>178
書き換えちゃダメって言っても書き換える人が居るから言ってるんだと思うよ
全員自分なら楽な話だけどさ

186 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 12:55:33.58 ID:jayN4xwq.net]
あ、連投ごめん。

上のリンク先とMSの解説で、ZバッファとWバッファの意味が逆になってる気がする。
https://msdn.microsoft.com/ja-jp/library/cc324546.aspx

リンク先は「割るほうがWバッファ、割らないほうがZバッファ」、
MSだと「割るほうがZバッファ、割らないほうがWバッファ」に読める。
用語の混乱があるのか、自分が何か勘違いしてるのか。


で、Wソートって何?
昔のPSみたくバッファリングしないでポリゴン単位でソートするけど、Wでやるってことかね。

187 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 13:05:31.10 ID:+0dbs7Ey.net]
const必要になるのはライブラリ作成とかチーム開発とかだろうし
ひとりでシコシコ作ってる分には別に不便もないよな
コーディングルールは自分ルールだし

188 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 13:12:28.57 ID:H+AZbHjO.net]
自分も、自分用プログラムばっかり作ってて、const利用はハードコーディングな定数以外は0。
自分以外を考慮に入れると、たしかにconst修飾子は重要になると思うけど、
ある程度小規模なチームなら、ルールで十分賄えると思う。

189 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 14:06:11.93 ID:9fyUH/Hj.net]
struct, classのコピーを避けるために参照・ポインタを多用してると確実にミス出るし
constは値を中身を書き換えない保障でもあるから、内部処理を忘れたときとかに役立つ

190 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 14:13:16.03 ID:ehZNZ4NM.net]
オブジェクトの参照を渡し

191 名前:ス時に中身を書き換えてくれるなよ、という要求はある
それをC++のようにconstで表現するのがいいかどうか
C#ではイラネってなったし要らないと思う
[]
[ここ壊れてます]

192 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 14:18:46.16 ID:4UKOkNc6.net]
ところで、const 同士の operater== は operater==(const) const; でいいのか?
最後の const で数時間悩んだんだが。ゲーム以外のところで…



193 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 14:47:44.78 ID:g0EkdIoS.net]
friend operator == (const&, const&)

194 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 15:27:49.35 ID:PEZyYsg9.net]
jbbs.shitaraba.net/sports/42269/

195 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 16:27:45.39 ID:4UKOkNc6.net]
あー、ここで friend 使うのかサンクス。スレチすまん

196 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 19:40:50.51 ID:LvLYpCGK.net]
単に規約の問題だけじゃなくて。
constというかC#のreadonlyは構造体にも指定できるんだけど、
それを先述のref指定でメソッドに渡せないんだよ。

既存のライブラリでref指定(参照渡し)になっているものが
少なからずある。まあ別の変数に代入してから値渡しできるんだけど、
微妙にパフォーマンス落ちるでしょう。

197 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 22:35:54.52 ID:g0XZBTK4.net]
const無しをデフォルトにしてしまうと,引数先で書き換えるのかどうか,引数からわからなくなるから
基本はconst参照だよね

198 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 23:12:04.08 ID:IlaPMJGi.net]
constなしの参照だとrvalue取れないし。
全部コピー渡しですかそうですか

199 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 23:45:24.01 ID:+0dbs7Ey.net]
const付けたらコンパイル時に置き換えられるの?

200 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 02:38:02.64 ID:HEaS08Xq.net]
#defineした変数をconstするとどうなるのっと

201 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 09:04:46.33 ID:4SXpmV3a.net]
>>189
たまにそういうシチュエーションがあるけど、それを解決するために言語使用に手を入れるのは言語道断

202 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 16:13:17.17 ID:7SDWQ5Km.net]
>>192
intとかならそうなんじゃないかな。
でもconstで定義されるのがクラスインスタンスの場合、
実行時に生成されるのでは(恐らくクラスに最初にアクセスした時)。

>>193
>#defineした変数
#defineはプリプロセッサで置換されるマクロに過ぎないよ。



203 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 16:38:17.15 ID:5cTwIokB.net]
>>193
お前のconstでコードがやばい

204 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 16:38:49.06 ID:gTwIs5aq.net]
template初めて使ったんだけど引数側に同じtemplate型があれば、
返り値をわざわざ指定しなくてもいいの?

↓こんなん
template<typename T>
T zeroCheckException(T t){
if(t == 0)throw;
return t;
}

205 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 16:44:02.52 ID:wN5YVAib.net]
>>197
2つあるTはどちらも同じ型なんだから、むしろ指定できたらダメだろ
引数と同じ型を返す関数、という意味になっている

引数から推測できない型を返したいなら、typename を2回書けばいい
template < typename R, typename T > R convertTo(T t) { return ... }
string r = convertTo<string>(123);

206 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 16:59:29.96 ID:7TQeJfVA.net]
>>197
>>返り値をわざわざ指定しなくてもいいの?
多分質問の意味からだと、返り値を引数と同じ型(T)で返したいなら返り値(の型)の宣言は必要
その部分はtemplateとは関係のない関数宣言の話で、template内はTと言う型が使えるようになっているだけだと思って関数を宣言すればOK
だから、その関数が返り値を返す必要がないならvoid、intを返したいならintになる

207 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 17:45:05.57 ID:bGERJtUD.net]
typenameとclassってどっちがモダンなん?
あるいは使い分けが必要?

208 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 19:03:59.15 ID:gTwIs5aq.net]
ideone.com/bM0sAR
i.gyazo.com/a30bf7d11715dd37855cf8fc8a9be676.png

一度変数にしないと、とんでもない数値になるんだけどさっぱりわからない
計算してるわけじゃないから桁あふれで無いと思うんだけど

209 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 19:05:18.65 ID:gTwIs5aq.net]
>>198,198
なるほど、ありがとう

210 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 19:24:29.40 ID:aP8gwvz+.net]
>>200
常にclassを使用していて困ったことがない

211 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 19:33:48.11 ID:2nnmtHZB.net]
class使ってる人を見たことがない

212 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 19:36:58.64 ID:mV3TuxIT.net]
>>201
ideoneに張る意味ねえな。
最低限実行出来るようにしてから張れ。
その過程でここで質問するまでもなく解決することもある。



213 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 19:53:30.95 ID:I530QHNw.net]
>>201
11行目のgetPositionをnextPosにしても駄目?
評価順は正しいとは思うけど最適化とかキャッシュとかで狂ってるのかな?と思いました
しかし、難読化してるようなソースだな…

214 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 20:01:18.83 ID:mV3TuxIT.net]
>>201
ヒント

unitListが標準コンテナだとするとsize()の返す型はsize_t
多くの処理系でsize_tは符号無し
1-2uの結果は?

215 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 20:12:12.40 ID:2nnmtHZB.net]
そんな問題じゃねーよw

216 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 20:29:03.32 ID:mV3TuxIT.net]
>>208
(゚Д゚)

217 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 20:46:24.29 ID:eIbULHuy.net]
>>200
これは俺ルールだが、
typenameはbool, int, doubleとかも使いたいとき
classはクラスだけでいいとき

218 名前:199 mailto:sage [2015/02/01(日) 22:08:02.18 ID:0xVgzIN+.net]
>>203>>204>>210
見事にバラバラだなー

219 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 22:50:33.72 ID:/xEMpT1p.net]
classしか使わない派だが,template自体あまり使わないことにしてる

220 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 22:52:09.95 ID:UZAipjiA.net]
自分はtypename派だな。
classに限定しない使い方が多いからというのがあるけどね。
ま、組み込み型も一種のクラスと見做せないことはないし、文字数少ない分、classのほうがいいかもしんないけど。

221 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 00:06:09.93 ID:WStqUBYk.net]
もはやゲーム関係ない気がするのはミンナニ ナイショダヨ

222 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 01:35:39.62 ID:g0RkpJRz.net]
て、テンプレ使えれば前以上に楽ができるかもしんないし!
なお移植性が壊滅的に下がる模様



223 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 04:07:49.86 ID:lvNA0Ulc.net]
テンプレート使って移植性が下がるってここの住民は一体いつの時代に生きてるんだろうか

224 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 08:53:14.68 ID:9YOvsS+B.net]
俺もテンプレート自体使わないな
過去の遺物だろあれ

225 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 09:10:16.63 ID:QEPcxUVH.net]
>>217
ダメだこいつ…早くなんとかしないと

226 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 09:50:21.86 ID:pbbvOQ2U.net]
VSのバージョン上がるたびにどこかしらテンプレートで書いたところの書き直しが待ってるんだよな
MPLに手を出すと他の処理系でまた違う方言で困るし

227 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 10:05:53.54 ID:ZKghX0zO.net]
バージョン上がるたびに、ってほどテンプレートに手入ってたっけ?
むしろ、いままでコンパイルを通すためにいちいち">"と">"の間にスペースを入れていたのが
入れる必要なくなったとか、そういう方面の変更しか知らないんだけど

228 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 10:33:54.29 ID:TF5MhFQ8.net]
だいぶこなれてきたから、できないことができるようにはなっても、逆は無いと思うぞ
確かにC++03時代は typename が急に必要にされてエラーになるのはあったけど

気になるなら互換性を吸収するラッパーとしてboostを使うのも手だな

229 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 11:10:10.63 ID:pbbvOQ2U.net]
最近変えたところだと
enable_ifが無い頃の代替としての部分特殊化のコードが
2012では通ってたのに2013でC2753で通らなくなって
代わりにenable_if使えるからそれになって
2015でconstexprあるからそこはテンプレート要らないだろうなて状態だわ

なんでエラーなのか追いかけるの面倒だから新機能で凌いでる
boostのを最初から使えばいいんだけどライブラリのバージョンアップが面倒でね

230 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 11:30:47.44 ID:uEPb5G0x.net]
テンプレートが悪いというよりVSの実装が

231 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 12:44:55.25 ID:QEPcxUVH.net]
STLもテンプレートなのに

232 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 13:21:17.62 ID:ZKghX0zO.net]
SFINAE周りは確かに、C++11でようやく統一仕様が策定されて多少手を付けやすくなった印象がある

>>224
テンプレートを使ってるライブラリを使うのと
テンプレートなクラスや関数を自分で作るのとは
結構隔たりがある気がする…



233 名前:名前は開発中のものです。 [2015/02/02(月) 13:54:32.94 ID:fu9cgs9q.net]
スタンダードテンプレートライブラリ(の構想・実装)が先にあってC++で実装するためにテンプレートが導入された。テンプレートはSTL実装のための道具といえる。


Standard Template Library - Wikipedia

STLのアーキテクチャの多くはアレクサンドル・ステパノフという一人の人物の手によって作られた。
1979年に彼はジェネリックプログラミングの初期アイデアを練り始め、そしてソフトウェア開発に革命をもたらす可能性を探究し始めた。

当時はジェネリックプログラミングを実際にサポートしているプログラミング言語がまだなかった。
それをサポートする最初のメジャーな言語はジェネリックユニットの機能があるAdaであった。

1987年までにステパノフとマッサーはジェネリックプログラミングの研究成果としてAdaのリスト処理ライブラリを開発してリリースしていた。
C++は当時まだ言語として未成熟ではあったものの(テンプレートはまだなく後から実装された)、より広く普及してジェネリックプログラミングの良好なサポートが提供される可能性が高いと考えられた。

234 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 14:52:33.01 ID:bbrlQEEY.net]
で、結局>>201はuintの減算でオーバーフローしてるってことでいいのか?
int - uintがintにキャストされれば大丈夫そうな気がするけど

235 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 15:26:46.03 ID:u58PP6hj.net]
桁あふれや型違いの時に起こる超数値に見える

236 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 16:37:35.11 ID:lvNA0Ulc.net]
そんな問題じゃねーよさんが解決してくれるさ

237 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 17:14:57.39 ID:ZKghX0zO.net]
直接的な解決策や原因は分からないけど、俺なら
・「unitList.size()*140」を「unitList.size()*140.0f」にして直るか確認する
・set/getPositionXを通さなかったらどうなるか確認する(当該メンバ関数の実装が自明である場合を除く)
・コンパイラの警告設定を最強にしてみて、何かメッセージが出るか確認する
あたりをやってみると思う

238 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 18:13:33.41 ID:NKDBUGQv.net]
で、ゲーム制作だと意識して。
開発環境を開発中やデバッグ中に更新するとか無いだろ
移植で困ることは判る

239 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 18:39:29.29 ID:u58PP6hj.net]
新しい開発環境に新規実装された要素どうしても使いたかったんだ…と推測(適当)

CやC++とはあまり関係ないけど、
一部の開発環境では、関数や変数を書いた行にコメントしとけば
カーソル合わせるだけでコメントが出るのでメモ代わりにできるな
なおソースがコメントだらけになり、よそに貼った時に失笑物のソースになる模様

240 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 19:31:16.34 ID:lvNA0Ulc.net]
ideone.com/3SPXKz
ほぼ答えのヒント張っても理解できてないアホがいっぱいいるんで再現させてやったぞ

>>208
で、どんな問題だったんですかね?

241 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 20:49:55.23 ID:0Y8pqiU9.net]
色々試してみたけど、オーバーフローした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;
}

242 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 21:20:46.80 ID:lvNA0Ulc.net]
>>234
intで表現出来ない値をintへcastしたら桁あふれで未定義動作



243 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 21:33:08.99 ID:MkYgWBqp.net]
>>235
未定義になる可能性のある演算は暗黙のキャストしてくれないって事?

244 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 21:39:18.84 ID:lvNA0Ulc.net]
>>236
違う
intとunsigned intの演算結果はunsigned int
もちろんunsigned intはマイナスを表現出来ない、なので0-1uはUINT_MAXになる。(符号無し整数は桁あふれしても未定義動作ではない)
でも符号あり整数の桁あふれは未定義動作なのでUINT_MAXをintへキャストするのは未定義動作
まぁ大抵の処理系では動くだろうけど。

245 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 21:57:25.95 ID:MkYgWBqp.net]
符合ありなしで演算すると符合なしになるのか
なるほどねー

246 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 22:39:56.06 ID:4aJa1XJJ.net]
混ぜるな危険

247 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 22:40:47.51 ID:AAW+YNQa.net]
>>239
いいねw

248 名前:名前は開発中のものです。 mailto:sage [2015/02/03(火) 00:10:07.19 ID:0Nhy8xyl.net]
これそもそも size_t が unsinged int なのが悪いんだよな、頭悪すぎ

249 名前:名前は開発中のものです。 mailto:sage [2015/02/03(火) 02:08:59.87 ID:YnXnr0TR.net]
size_tはsizeofで測ったデータの長さを受け取る物だからよ
データの長さに0未満はあり得ないから定義できないようにしてるんだろう

250 名前:名前は開発中のものです。 mailto:sage [2015/02/03(火) 04:00:41.53 ID:WscpFvcA.net]
質問です。
抽象クラス(親クラスとする)を継承した派生クラス(子クラスとする)を
親クラスの型のメンバー変数に子クラス型でnew()し、抽象化して保持してます。

このメンバーをdelete してすぐNULLを代入しても、参照が残ってるみたいで
エラーでる場合があります。

抽象化しているオブジェクトの削除の、お作法みたいなものってありますでしょうか。

251 名前:名前は開発中のものです。 mailto:sage [2015/02/03(火) 04:32:33.06 ID:UaiJdd2F.net]
>>243
スレ違いです
こちらへどうぞ
peace.2ch.net/test/read.cgi/tech/1420379468/

252 名前:名前は開発中のものです。 mailto:sage [2015/02/03(火) 04:40:14.90 ID:WscpFvcA.net]
>>244
ありがとうございます。



253 名前:名前は開発中のものです。 mailto:sage [2015/02/03(火) 13:03:57.60 ID:vrraL4+G.net]
スレはあってるけど板が違う的な。
まあ、ゲーム関係かどうかの境目って結構曖昧だけれども。

254 名前:名前は開発中のものです。 mailto:sage [2015/02/03(火) 13:07:01.87 ID:IeF+/7iv.net]
いずれにしろコードもなしに質問されてもエスパーしか回答出来ないですし






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<177KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef