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


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

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



1 名前:名前は開発中のものです。 mailto:sage [2012/10/24(水) 03:01:09.64 ID:oI68Vzqz]
ゲーム製作におけるC/C++全般に関するスレです。

元スレ
DXライブラリ 総合スレッド その12
toro.2ch.net/test/read.cgi/gamedev/1330000532/
C/C++ゲーム製作総合スレッド Part1
toro.2ch.net/test/read.cgi/gamedev/1337516528/

163 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 09:08:47.06 ID:vuCkQhFB]
バイナリエディタでexeを開いて「C++」で検索すると、「Visual C++ Runtime Library」という文字列が出てきた
VC++製のプログラム全部に含まれるみたいだからこれで判別できるな

164 名前:デジタルハリウッド@偏差値45 [2012/11/10(土) 09:41:21.35 ID:LnFUWnqt]
>>155
Unityがいいですよ
DirectXっていうのは時代遅れです
C++も時代遅れです
Javascriptがブームです

Unity Game Jamっていうサークルがあるのでよかったらきてください
FPS作ってる人もいます

165 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 09:44:50.76 ID:JDLvE6hN]
UnityみたいなゲームエンジンもJavascriptで作れる時代なのか・・・
GooogleのV8もJavascriptで書かれてるのかな
そのうちJavascriptでOS書いたりデバイスドライバ書いたりできるようになるかな?

166 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 10:17:43.51 ID:hp96843s]
>>165
なんか勘違いしてるっぽい

167 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 11:19:24.13 ID:JDLvE6hN]
まさか時代遅れのC++やさらに古いC言語で書かれてたりしないですよね?

168 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 11:20:29.38 ID:7J8tbM/I]
俺はjavascriptで身長伸びて彼女できて宝くじが当たったよ

169 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/11/10(土) 11:23:04.28 ID:LnFUWnqt]
僕はUnityとjavascript使ってゲーム作ってるよ
C++とか時代遅れだよ
javascriptの時代だよ

170 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 11:24:43.50 ID:GU+cQ84R]
高度な釣り

171 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 11:39:58.87 ID:ugQSrMUN]
高度ではないだろ



172 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 12:39:11.62 ID:HViNGugV]
どこからが釣りなの?
>ゲーム製作におけるC/C++全般に関するスレです。
まさかこれ?

173 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/11/10(土) 12:42:27.01 ID:LnFUWnqt]
???

174 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 12:47:00.70 ID:L5/NCAoO]
馬鹿と無知としったかはほっておけ。スルースキルは2chのスキルの中で最も重要

175 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 12:51:39.87 ID:HViNGugV]
>>174
もともと釣りじゃなかったのか、了解した

176 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/11/10(土) 12:58:26.41 ID:LnFUWnqt]
C++のnewってどういう意味でしょうか?

177 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 13:01:59.44 ID:7J8tbM/I]
newはjavascriptにもあるだろ

178 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 21:44:09.79 ID:kdgWH7qz]
javascriptwwwww

ブラクラゲームかwwwww

179 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/11/10(土) 22:20:18.38 ID:LnFUWnqt]
何がおかしいんですか?

180 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 22:39:49.87 ID:zPoeI4Ci]
初心者でも今時JavaとJavascriptは混同しねーよwww

181 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 22:51:17.47 ID:0f/wz9cV]
誰かブラクラゲームに突っ込んでやれよw



182 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 22:57:47.64 ID:zPoeI4Ci]
余計なJavaScriptはウザいからそういう皮肉かと思った

183 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 09:12:21.25 ID:9N5q0Xsj]
話題ないみたいだからちょっと質問
透明色含んだビルボード表示するときにvectorに突っ込んで表示順ソートしてるんだけどなんか遅そうな気がする
もっと効率的にソートする方法ないかな
もしくはzバッファ切った方がいいの?

184 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 09:30:12.70 ID:8Q0utp4J]
>>183
何個ソートしてんの?

185 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 10:33:03.40 ID:9N5q0Xsj]
>>184
3Dシューティングぽいので弾を全部ソートしてるから最大で300くらいかな?
敵増やすと増えるからちょっとあいまいだけど

186 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 10:37:25.65 ID:4wR9uF6j]
たった300なら何も問題ない
ただ、vectorにはポインタを詰め込むべき
vectorはlistと違ってソート時にメモリを直接置換するから、構造体のサイズがそのままネックになる
ポインタを詰めれば毎フレーム10000以上の要素をソートしても60fps余裕だよ

187 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 11:35:18.71 ID:A9vKBFCi]
vectorの中身をポインタにして比較関数の中でポインタの先参照して比較って感じでいいのかな?

188 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 14:36:53.02 ID:7uL1yheX]
でも「毎フレーム全ソート」って本当に必要?
弾が作られた時にだけ適所にインサートすればいんじゃない?

189 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 15:38:57.87 ID:4wR9uF6j]
ソート方法によるけど、STLのマージソートは未ソートの要素が多いほど時間が掛かって、
ソート済の場合ほとんど処理を食わないから毎フレームソート処理してても大して問題ないはず

それに>>185は3D空間のオブジェクトのソートをしてるというから、カメラがちょっと動いただけでもソートの必要が出る
ソート関数にかけること自体がソートする必要があるかの判定になってると言ってもいい

190 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 16:39:59.60 ID:eWkVVOn6]
>>183ですが
とりあえずstlのソートでも十分速いと言うことなので安心した
勉強になりました

191 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 21:04:01.78 ID:cEtJDQKT]
横。

vectorにポインタを格納するとして、本体はどこに置くの?
もちろん状況次第だとは思うけど、別のvectorとか?



192 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 21:19:11.80 ID:a9WU8SHc]
ヒープ

193 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 21:43:47.14 ID:HVfjUt4J]
newしろ

194 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 21:56:20.66 ID:Oj4WY+EN]
固定で別の配列にするのが普通だと思う

195 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 22:23:30.25 ID:4pvX9vHm]
なら実データをvectorに入れればいいじゃん

196 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 22:35:19.83 ID:R7nFxA7+]
シーンの最初と最後に生成、破棄するならauto_ptr使って
ポインタだけvectorで管理するのもありなんじゃないかと
思ったんだがどうだろうか

197 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 22:43:12.39 ID:HVfjUt4J]
とりあえずauto_ptrとかいうゴミを捨てるんだ

198 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 22:57:50.27 ID:R7nFxA7+]
よく考えたらauto_ptr使って元のポインタだけ管理しようとしたら
newしてる関数抜けた瞬間deleteされるからダメかw

199 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 22:58:45.26 ID:BrAT+Ts5]
もうauto_ptr時代遅れなん?

200 名前:名前は開発中のものです。 [2012/11/13(火) 23:01:15.07 ID:KobHHPjK]
気にせず使ってください^^

201 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 23:01:32.88 ID:k2b3NisB]
auto_ptrってなんですか? どうしてunique_ptrを使わないんですか?



202 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 23:02:03.36 ID:R7nFxA7+]
c++11でdeprecated指定だって
en.m.wikipedia.org/wiki/Auto_ptr

なんかunique_ptrが代わりになるのかな?

203 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 23:07:03.03 ID:k2b3NisB]
スコープを抜けるときに自動で閉じるファイルポインタとか
例外いつ投げても閉じてくれるので便利ですね?
std::unique_ptr<FILE, decltype(&fclose)> fp(fopen("filename", "r"), fclose);

204 名前:191 mailto:sage [2012/11/14(水) 00:25:26.13 ID:CmmzPOW9]
>>192-194
最初から数が分かってるか、途中で増えるか等に応じて、
普通の配列、配列の動的確保、vectorあたりを使い分けるって感じかな?

205 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 07:47:57.43 ID:f09Uuje+]
vectorで実体まとめるとバッファのリサイズ発生した時にアドレス変わるんじゃない?

206 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 08:50:51.27 ID:Za6Nl7tI]
そんなの当たり前じゃん。

207 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 08:58:13.52 ID:f09Uuje+]
vectorで実体管理してソートのためにポインタのvector使ったら
リサイズ発生した時点で参照変わるからちゃんと動かなくなるよね
最初に確保した分より増えないなら大丈夫だろうけど
これ発生したら原因特定めんどくさそう

208 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 09:06:59.91 ID:CmmzPOW9]
あー、それもそうか。失敬

209 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 15:05:59.50 ID:Za6Nl7tI]
>>207
っていうか「Vectorで実体管理」がそもそも意味不明。
ポインタで管理してるならそれだけでいいじゃん。

210 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 16:31:57.71 ID:OuQGweox]
確かにvectorにポインタいれときゃそれでdelete出来るな
自分でちゃんとdeleteするならそれで十分か

211 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 17:44:55.77 ID:3cThVkCw]
newしたポインタはとりあえずstd::unique_ptrかstd::shared_ptrに入れるべき
deleteなんて自分で書いたら負けだぞ
デストラクタもハンドル管理クラスみたいなの以外では自分で書いたら負け



212 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 18:27:52.20 ID:lHOdfYqK]
それは一般レベルの場合な
我々のように国家機密レベルでやってる場合は違う

213 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 18:36:32.02 ID:5BbMRJco]
何に負けるんだよ
見えない敵と戦う労力こそが一番の無駄

214 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:00:59.45 ID:3cThVkCw]
見えない敵というとメモリリークですね
まあ、お遊びプログラムならすぐに終了されるので
リークしても問題ないのかもしれませんが

215 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:09:24.21 ID:3BI2eEEx]
shared_ptrはvectorに入れても大丈夫なのか
vector<shared_ptr<クラス>>でやっときゃ勝手に消えてくれそうだな

216 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:15:38.28 ID:CmmzPOW9]
>>211
十行くらいのブロックで、かつ外に出すつもりもないならnew/deleteで書いちゃうなあ

217 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:28:19.33 ID:BbQiy07V]
リークするのはお前の脳みそだけにしておけ

218 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:32:08.10 ID:FHk4zIEt]
うんまぁお前らも一番実感してると思うけど、自分のルールの一貫性を保つことが一番大事だからな
もちろん柔軟に対応するのも大事だし柔軟に対応できるような構造にしておくことはもっと大事だが

219 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:38:37.20 ID:3BI2eEEx]
>>216
ブロックの外に出さないならローカル変数の方がよくない?
可変長だと無理かもしれんけど

220 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:40:11.42 ID:3cThVkCw]
生ポインタの場合

A* a = nullptr;
B* b = nullptr;
try {
a = new A();
b = new B();
doSomething(a, b);
}catch(...){
if (a) { delete a; }
if (b) { delete b; }
throw;
}
delete a;
delete b;



std::unique_ptrを使う場合

std::unique_ptr<A> a(new A());
std::unique_ptr<B> b(new B());
doSomething(a.get(), b.get());


なぜわざわざ生ポインタを使おうとするのか、理解できない

221 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:52:16.75 ID:3BI2eEEx]
生ポとは関係ないんだけど、例外処理ってしてる?
tryは遅いらしいと何かでみたから基本投げっぱなしスープレックスなんだけど
実際どうなん?



222 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:56:47.63 ID:aP39cEyY]
投げっぱなしだとexeが落ちちゃうだろ…(Windowsなら

223 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 20:00:51.70 ID:K6TezrTK]
落ちなかったらバグったまま続いちゃうじゃん?

224 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 20:45:10.81 ID:S4/fLXg9]
なんでC++11前提で話してるのか理解できない

225 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 20:49:59.82 ID:3cThVkCw]
C++11じゃないならboostを使えばよろしい

226 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 21:04:33.08 ID:KC8fJK0S]
>>222
デバッグで例外が発生したら例外の原因箇所にチェック入れて防ぐように修正してる
基本は例外じゃなくて戻り値で成否を返すような感じ

227 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 22:40:22.29 ID:FilUuDwR]
スマートポインタの名前の長さは
C++スタイルキャストを思い出す

228 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 00:52:00.71 ID:CCQxRnc8]
ふと思ったんだが、ゲーム・アプリのプレイ期間中に、
同一スコープ内でnewして解放する局面ってあるか?
つうか、プレイ期間中じゃなくても、同一スコープ内で
newして解放する局面って思いつかないな。
同一スコープ内なら、非ポインタのオブジェクト変数で済ませる。

229 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 08:27:34.76 ID:kybbSnHR]
コンストラクタに引数必須とか?

230 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 13:27:32.69 ID:CCQxRnc8]
>>229
変数定義に引数記述してもコンパイル通るよ。
class Test {
public:
  Test(int arg);
   :
};

int a = rand();
Test ins(a);

231 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 13:44:36.27 ID:FiWT7kKo]
>>230
出来るんだ…
考えてみれば出来ない理由もないか


じゃあ>>203みたいにポインタ返すけど、後始末は呼び出し側がやらないといけない関数とかかな?
あとはスタックにデカイ領域作りたくないとか?意味があるかはわからんけど



232 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 17:38:22.10 ID:CCQxRnc8]
>スタックにデカイ領域作りたくないとか

これはあるかもね。
とは言っても具体的な局面が思い浮かばない・・・

233 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 19:13:59.62 ID:JDzb/9N7]
スコープ抜けたら勝手に消えるだけがメリットじゃないだろう
メンバ変数にしておけば親が死ぬとき勝手に死んでくれるし

ていうかスマートポインタ使わないとコンストラクタで例外が発生した時どうするんだ

234 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 20:24:55.99 ID:CCQxRnc8]
具体的にどんな例外を想定してるの?

235 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 21:06:29.19 ID:JDzb/9N7]
なんでスマートポインタを使うのを躊躇うの?
unique_ptrは自動的にdeleter呼んでくれる上に
性能的には生ポと同じコストで使えるんだぞ

236 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 21:15:04.36 ID:V2Q8QmNk]
>>235
別に躊躇ってる人は居なくね?

237 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 21:16:59.75 ID:/bYy5p67]
なんかこの流れ前にも見たな

今話してるのはunique_ptr使うんだったら普通にautoで変数定義すればよくね?
って所だと思うが

238 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 21:17:12.28 ID:f9BWxP4M]
なんでC++11やboost前提で話してるのか理解できない

239 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 21:24:24.52 ID:V2Q8QmNk]
この板的には、まだまだ11前提とするには厳しいかなー?

240 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 21:37:01.79 ID:JeS5pTB2]
新しいもの好きなのはいいけど自分がマイノリティなのに気づけよ

241 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 21:41:59.03 ID:JDzb/9N7]
>>237
お前は何を言っているんだ
スマートポインタと型推定は全然違う話だぞ

>>239
STLすら厳しそうだ
なぜだか自作ライブラリのほうが優れてるとか勘違いする奴が多いんだよな



242 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 21:45:29.61 ID:JDzb/9N7]
ゲーム開発とSTL
ttp://d.hatena.ne.jp/masfj/20120308/1331220846

C++を知らないゲームプログラマ達
ttp://d.hatena.ne.jp/alwei/20111008/1318090538

243 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 21:48:28.33 ID:Dmy8apjq]
>>241
まず話の前提として>>228があってそもそもnewする必要なくね?という問題提起があるんすよ
あと型推定ってなんすか

244 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 21:51:46.71 ID:V2Q8QmNk]
autoには2種類あるから、そこですれ違ってるんじゃない?

245 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 21:55:52.06 ID:Dmy8apjq]
ごめん、c++11のautoと勘違いさせたか
俺が言ったのはただの自動変数のことです

246 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 21:56:18.09 ID:V2Q8QmNk]
>>241
>STLすら厳しそうだ
>なぜだか自作ライブラリのほうが優れてるとか勘違いする奴が多いんだよな

いや、既存ライブラリを使わない病気のじゃなくw

247 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 21:56:44.58 ID:JDzb/9N7]
スタックオーバーフローしないならnewする必要はないな
でもスマートポインタの使い道ってそれだけじゃないよ?
むしろクラスのメンバ変数にこそ使ってほしい
デストラクタを自分で書くのはもうやめよう

あと、C++11ではautoの意味が変わりました
C#のvarみたいに変数の型を推定してくれるので
STLのイテレータとか死にそうなくらい長い型名でも
for(auto i = v.begin(), e = v.end(); i != e; ++i) { ... }
こんな風に書けて超便利な機能です

248 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 21:58:09.46 ID:JeS5pTB2]
STLは慣れるまでは内部でどういう処理してるのかわからなくて気持ち悪い部分はあったな

249 名前:名前は開発中のものです。 [2012/11/15(木) 22:06:00.91 ID:AHySL0i4]
内部のことなんて知らなくていいんだよ
使い方を知ってれば、低能でも使えるのがSTL
だからこそ意味がある

250 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 22:11:50.11 ID:AKJanR6y]
>>249
それでバグ出したらデバッグで死ねるな

251 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 22:14:31.65 ID:JeS5pTB2]
コード書き間違えるとたまにSTL内部のコードに誘導される時があるよな
記述ミスったところでエラー検知してくれよと言いたくなる

あと気になるのはゲームだからだろうな
静的プログラムなら負荷が発生するパターンなんてどうでもいいけど、
動的プログラムだとそこら辺完全に把握してないと非常に気になる



252 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 22:18:29.51 ID:CCQxRnc8]
>>247
>むしろクラスのメンバ変数にこそ使ってほしい
なぜ自動変数ではダメなん?

253 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 22:25:11.84 ID:JDzb/9N7]
STLだとメモリを自分で管理できないとか言ってる奴はいないか
ttp://www.slideshare.net/alwei/ss-11521742

>>252
スタックオーバーフローしないならnewする必要はないな

254 名前:名前は開発中のものです。 mailto:sage [2012/11/16(金) 07:35:50.58 ID:wj9cLs/W]
www22.atpages.jp/otsr/cgi-bin/src/otsr8520.jpg

www22.atpages.jp/otsr/cgi-bin/src/otsr8521.jpg

255 名前:名前は開発中のものです。 mailto:sage [2012/11/16(金) 13:39:30.43 ID:BTfLhLXO]
絵柄と相まって小学生が好きそうなノリだなw

256 名前:名前は開発中のものです。 mailto:sage [2012/11/16(金) 16:46:04.64 ID:N1OcN+jA]
vector配列のvector配列をvector配列で管理する三次元配列って開放する時大本だけ開放しておけばおk?

257 名前:名前は開発中のものです。 mailto:sage [2012/11/16(金) 17:19:36.14 ID:BTfLhLXO]
vector<vector<vector<int> > > か?
実体さえ行方不明にならなければどうとでもなるが
newしたものを格納してるならshared_ptrじゃないと危ないかもな

258 名前:名前は開発中のものです。 mailto:sage [2012/11/16(金) 18:07:16.53 ID:sOBt52RE]
typedef shared_ptr<MapData> MapTip
typedef vector<MapTip> Map1D
typedef vector<Map1D> Map2D
typedef vector<Map2D> Map3D

259 名前:名前は開発中のものです。 mailto:sage [2012/11/16(金) 19:28:23.88 ID:N1OcN+jA]
ポインタじゃなくて実体を格納するなら大丈夫なのか
クラスのメンバとしてコンテナ使ってると混乱してくる

260 名前:名前は開発中のものです。 mailto:sage [2012/11/16(金) 21:05:15.58 ID:JKxfRh2i]
別にポインタを格納しても何の問題もねえよ混乱しすぎ
Actor* actor = MapTip[0][4][6];
a->Draw();
みたいなアホな事してないなら何の問題もない

261 名前:名前は開発中のものです。 mailto:sage [2012/11/16(金) 21:08:12.91 ID:N1OcN+jA]
混乱してるのはそこじゃねーよ!



262 名前:名前は開発中のものです。 mailto:sage [2012/11/16(金) 21:16:48.82 ID:JKxfRh2i]
>>261
悪い、ちょっと想定がアレな上にアホな事コード(vectorのアドレス保存して云々が正しくアホなコード)も間違ってるというアレっぷり

実体なら問題はないが、個人的にはコピーコストが馬鹿みたいにかさむからshared_ptr推奨したいな
メンバのメンバのメンバの...みたいに順々にデストラクタは働くので、実際にユーザーが使用した型であるvector<vector<vector<T>>>をclearすれば、Tのデストラクタがちゃんとしてるならば処理される

263 名前:名前は開発中のものです。 mailto:sage [2012/11/16(金) 21:28:55.22 ID:bHfLv1nY]
所有権を共有する必要はないのでunique_ptrを使いたいけど
ポリモーフィズムに対応してないという弱点のせいでshared_ptrにせざるをえない






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

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

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