- 1 名前:名前は開発中のものです。 mailto:sage [2014/01/16(木) 00:00:31.27 ID:w6WW3hAo.net]
- ゲーム製作におけるC/C++全般に関するスレです。
元スレ DXライブラリ 総合スレッド その17 toro.2ch.net/test/read.cgi/gamedev/1383795645/ 前スレ 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/
- 21 名前:名前は開発中のものです。 mailto:sage [2014/01/19(日) 10:49:59.46 ID:NnB84tXJ.net]
- >>20
本当にこれ まぁソースは社内で共有してるからドキュメントでここを直すように指示出すと「お前みたいな新入が生意気言うんじゃねぇ」って怒られる ボクもう3年目なんだけど、いつまで新入社員って言われるんだろうか・・・ ちなみに社内ではCとC++とJavaを使ってる「C#は使うから勉強しといてね」って言われたまま1年過ぎてるんだけどいつ使うの?
- 22 名前:名前は開発中のものです。 mailto:sage [2014/01/19(日) 10:56:21.22 ID:zArRV3lb.net]
- >>21
生意気言うんじゃねぇって言いたくなる気持ち分かるわ
- 23 名前:名前は開発中のものです。 mailto:sage [2014/01/19(日) 11:11:40.48 ID:dxh/zY+y.net]
- c++は文字列とかSTLにひとくせあったりするからなー
std::string str; str << "i=" << i << std::endl; あれ、できないじゃーん!? ググル → stringstream? めんどくせーな // GCなしだと不便な例 std::vector<Hoge*> list; Hoge* add(){ Hoge* hoge = new Hoge(); list += hoge; return hoge; } Javaは不細工だけど使いやすいよ
- 24 名前:名前は開発中のものです。 mailto:sage [2014/01/19(日) 11:26:08.74 ID:NnB84tXJ.net]
- >>22
マジか・・・ 今度から何も言わないようにしよう
- 25 名前:名前は開発中のものです。 mailto:sage [2014/01/19(日) 11:54:37.95 ID:zArRV3lb.net]
- >>24
いや、もっとおっさんになってから ガキだったなHAHAHAって笑えばいい
- 26 名前:名前は開発中のものです。 mailto:sage [2014/01/19(日) 12:09:14.19 ID:TJLqrM7y.net]
- なにそれブラック企業?w上司もプログラマーなら感情論抜きで論破しろよ
- 27 名前:名前は開発中のものです。 mailto:sage [2014/01/19(日) 12:26:00.28 ID:r/kDygNK.net]
- プログラ”マ”板で話すことを、何でここで引っ張ってるんだよ。
kohada.2ch.net/prog/
- 28 名前:名前は開発中のものです。 mailto:sage [2014/01/19(日) 14:14:56.82 ID:Ln30iNfr.net]
- >>23
MFCのCStringは扱いやすいよ とりあえず自前で実装したが
- 29 名前:名前は開発中のものです。 mailto:sage [2014/01/19(日) 20:23:57.46 ID:vj8v8wNW.net]
- >>23
auto_ptr使えばよくね?
- 30 名前:名前は開発中のものです。 mailto:sage [2014/01/19(日) 20:49:07.44 ID:dxh/zY+y.net]
- 小さいことが積み重なって不便という意味でな
- 31 名前:名前は開発中のものです。 mailto:sage [2014/01/21(火) 07:47:41.61 ID:6mpa2LLJ.net]
- 何でもかんでも自力で作るかライブラリ頼みになるからな
そーゆーのが嫌いな人には向かないのかもな
- 32 名前:名前は開発中のものです。 mailto:sage [2014/01/21(火) 10:53:50.44 ID:k20gbOyK.net]
- ゲーム用途だと結局何でもスクラッチになっていくんですけどね…
- 33 名前:名前は開発中のものです。 [2014/01/21(火) 20:38:32.81 ID:ZBJojU/1.net]
- オレオレライブラリを経てオレオレゲームエンジンを作り
そして個人利用フリーのゲームエンジンに触れて無意味だったと知る
- 34 名前:名前は開発中のものです。 mailto:sage [2014/01/21(火) 21:36:58.77 ID:/+yIHRaD.net]
- >個人利用フリーのゲームエンジン
ぜひ教えて欲しい。
- 35 名前:名前は開発中のものです。 mailto:sage [2014/01/21(火) 21:44:06.65 ID:HN69Ellt.net]
- POCOとか使ってるけど、あちこちのライブラリで
オレオレXML(DOM)、オレオレAutoPtr(スマートポインタ)、オレオレException みたいなユーティリティクラスが満載なのはひどいよ
- 36 名前:名前は開発中のものです。 mailto:sage [2014/01/21(火) 21:51:16.31 ID:wLwEpkEc.net]
- オレの場合は俺オレデータ構造を使ってるが?
ツリー状のメモリー情報を簡単に記録でき、しかもフラグメンテーションを 起こさないスグレモノ だったんだが、ちょいと重すぎた
- 37 名前:名前は開発中のものです。 mailto:sage [2014/01/21(火) 22:20:38.42 ID:/+yIHRaD.net]
- 私はDXライブラリ使って今まで数本ゲームを作ってきたけど、「クラス? ポインタ? なにそれ」な組み方だった。
それが最近になってようやく「少しはわかったかな?」って感じになってきて、 俺俺ライブラリ……と呼べるほど立派なものじゃないけど、ゲームの土台を俺俺で作ってるところだから、 こういう行為を無意味とか言われるとちょっと辛いw
- 38 名前:名前は開発中のものです。 mailto:sage [2014/01/21(火) 22:41:33.97 ID:wLwEpkEc.net]
- 無意味とは思えないけどな。
オレの場合、マルチスレッドのしっかりした使い方はマスター出来たし データ構造も一般人には何を意味してるか分からないぐらいに複雑なモノを 扱えるようになったし、スクリプト言語も好きなように拡張出来るようになった。 ただ、肝心のゲームはまだ納得のいくものが出来てないわけだが・・・
- 39 名前:名前は開発中のものです。 mailto:sage [2014/01/22(水) 00:21:13.24 ID:qXFTHavY.net]
- マルチスレッドってどうやってスレッドセーフ?になるの?
具体的に教えて
- 40 名前:名前は開発中のものです。 mailto:sage [2014/01/22(水) 00:45:51.85 ID:FwnXEaYs.net]
- >>38
お勉強マシーンと揶揄されるパターンに嵌ってるな 俺も笑えない口だが、まあが
- 41 名前:んばれ
>>39 ロックしろ。使うのはクリティカルセクションだけで十分 [] - [ここ壊れてます]
- 42 名前:名前は開発中のものです。 [2014/01/22(水) 00:52:28.97 ID:1GoepMJH.net]
- >>34
UnityとかUREは個人で使う範囲なら無料ライセンスがある まあロゴ出ちゃったりするけど Unityは少しくらい儲けてもおkだったはず
- 43 名前:名前は開発中のものです。 mailto:sage [2014/01/22(水) 05:31:21.08 ID:MUoEPc44.net]
- 志の低いクズはHSPでも使ってりゃ幸せになれるのに
- 44 名前:名前は開発中のものです。 mailto:sage [2014/01/22(水) 07:22:25.22 ID:OGkLlkIl.net]
- >>40
んー、頑張る あとロックする方法に関しては、自分はミューテックスとイベント使ってるな ちなみにセマフォは使ってない >>39 マルチスレッド 同期でぐぐってみ? あと、DirectXでマルチスレッドと相性の悪い命令があるから、それにも注意した方がいい
- 45 名前:名前は開発中のものです。 mailto:sage [2014/01/22(水) 08:14:42.24 ID:OGkLlkIl.net]
- ってゆーか、ちょっとぐぐってみたんだが分かりづらいページが多いなw
とりあえず、異なるスレッドが同じ変数にアクセスするとエラーになる場合がある事は理解してる?
- 46 名前:名前は開発中のものです。 mailto:sage [2014/01/22(水) 08:25:54.82 ID:AONvqNdW.net]
- 「作れるけどめんどくさいから既製品でいいや」
と 「どうやって作るのかわかんないから既製品でいいや」 の間には絶対越えられない山脈が横たわる。 んで、一緒に既製品使ってたのにある日突然その山脈をヒョイっと越えてく人達がいるんだ。
- 47 名前:名前は開発中のものです。 mailto:sage [2014/01/22(水) 16:00:09.27 ID:4ljV+t0J.net]
- 自分の書いたコードを別のプラットフォームに移植したり、
別のプロジェクトで再利用したりする機会が出てくると、 フリーのライブラリやミドルウェアを使ってるのが足かせになる場合が出てくる。 …ので、おれは自分で書けるものは自分で書くことにしてる。
- 48 名前:名前は開発中のものです。 mailto:sage [2014/01/22(水) 19:55:47.76 ID:FwnXEaYs.net]
- C++では悪しき車輪の再発明文化が染み付きやすいからな
JavaとかC#やらん人は一度体験したほうがいい
- 49 名前:名前は開発中のものです。 mailto:sage [2014/01/22(水) 20:38:32.77 ID:MuwJkdzb.net]
- マルチスレッドって理解してる人が少ないだけで実はそれほど対した技術じゃないよなw
Windows95の頃からある古い技術だし
- 50 名前:名前は開発中のものです。 mailto:sage [2014/01/22(水) 21:25:45.67 ID:wzTb147v.net]
- UNIX系に比べたらWindowsのマルチスレッドなんて遙かに新しい方だが、
いったいこの知ったかは何を言っているんだろう?
- 51 名前:名前は開発中のものです。 mailto:sage [2014/01/22(水) 21:46:05.00 ID:FwnXEaYs.net]
- 話の焦点が分からないけど、windowsではクリティカルセクション以外
覚えることなにもないんじゃないの? 多重起動防止でミューテックス使うかもしれんけど、 マルチスレッドじゃなくてマルチプロセス?の話だし、 セマフォやイベントもまるで出番ないなぁ そんなわけで結城のマルチスレッド・デザインパターン本の知識とか ゲーム内で使わないし、ファイルIO、BGM、ネットワークくらいかな、 スレッドが関連してるのは
- 52 名前:名前は開発中のものです。 mailto:sage [2014/01/22(水) 21:50:12.62 ID:dtO4FDEt.net]
- レンダリングだろ今は。
- 53 名前:名前は開発中のものです。 mailto:sage [2014/01/22(水) 21:54:50.35 ID:y74k/mSd.net]
- まあマルチスレッドで面倒なのはデバッグだし
- 54 名前:名前は開発中のものです。 mailto:sage [2014/01/22(水) 23:46:51.66 ID:FwnXEaYs.net]
- 特殊なゲームを除いて、ロジックのマルチスレッド化はやめたほうがいいね
OpenMPとかも保守性を落とすわりには、バッファコピーとかくだらない 並列化しかできないし、積極的にスレッド化してもリスクの方が多い >>51 Direct3D10以降に出てきたマルチスレッド対応も 結局内部でクリティカルセクションやってるだけだろうから、 だったらswingみたいにシングルスレッドモデルやるほうが無難だと思う
- 55 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 00:01:05.67 ID:9bErv8vs.net]
- マルチスレッドはねぇ…
低クロック動作省エネこそ正義の非力な組込システムとかなら 仕方なく中〜細粒度並列の形で書いたりもするけれど ほら、パソコンってアメ車のマッスルカーじゃないですか CPUリソース、余るんですよね。湯水の如く なので>>50の言うように粗い粒度でなら取り入れるけど ゲームの中核部、シミュレーション部については古式ゆかしい シングルスレッド前提の簡潔なスタイルでラクチンです
- 56 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 00:58:45.53 ID:XQzipMrB.net]
- 前スレでゲームのメインフレーム部にマルチスレッドを使ってた奴がいたが、今日は来てないのか
あるいは他スレだったかな?
- 57 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 01:15:55.11 ID:f/NLGL86.net]
- キャラクターの更新
背景・マップの更新 カメラの更新 これで3つスレッド使える
- 58 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 01:18:02.56 ID:f/NLGL86.net]
- メインループと描画のスレッドってわけても意味なくね?
同じデータ参照しちゃいけないなら 一番負荷のかかるキャラクター周り計算が終わってから描画開始しないといけないじゃん
- 59 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 01:29:07.57 ID:y0vYWKn+.net]
- 描画は軽いけどロジック側がめっちゃ重い場合、
描画側の垂直同期で待つのを避けるためにデータの複製を更新したあとに スレッド間でデータをコピーorスワップする方法はある データ用のメモリを2倍も使ったり、対価となるコストも大きいがな これは広大なマップをもつシムシティのような特殊なゲーム用だね
- 60 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 01:35:10.24 ID:f/NLGL86.net]
- ん?広大なマップを持つゲームなら逆にメモリを2倍も使ったら大変なことになるんじゃないのか
- 61 名前:名前は開発中のものです。 [2014/01/23(木) 02:21:59.68 ID:s/ECi/gl.net]
- cpuを倍にするよりメモリを倍にする方が安くて現実的
- 62 名前:名前は開発中のものです。 [2014/01/23(木) 02:43:04.45 ID:s/ECi/gl.net]
- あとそこからもうひと工夫すると実際には+1%くらいで済むかもな
- 63 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 08:54:48.07 ID:o//cFEYQ.net]
- マルチスレッドで処理速度を上げるにはダブルバッファリングしてメモリーを隔離して使う事が基本なの?
ややこしいな
- 64 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 09:00:18.56 ID:WQKAVBet.net]
- マルチスレッドはCPUの待ち時間を減らして稼動効率を上げる事によって結果的に処理速度を上げるものだからな〜
できるだけセマフォ使う回数が減るようにしないと本末転倒だ。セマフォって本来は要らないモノだし。
- 65 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 09:37:12.46 ID:o//cFEYQ.net]
- マルチコアであればマルチスレッドの恩恵は得られるんじゃないの?
- 66 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 09:44:44.32 ID:8rbpDm/C.net]
- たとえば3Dモデルのフレームの行列計算を、
マルチスレッドで分散させて計算させるだけでも、 マルチコアの恩恵でかなり効果が出る。 モデルデータことにやれば、データのバッティングしないので管理も容易。 細分化して、親フレームからばらけた子フレームの計算を、 複数のコアに投げてもいいんだろうけど、さすがに面倒くさい。
- 67 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 09:59:16.39 ID:C/RQiWS+.net]
- CPUキャッシュをだぶるばっふぁりんぐする技術マダー?
- 68 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 10:28:58.88 ID:aF2XRTqq.net]
- >>66
Intel:「せっかく俺様が気を利かせて面倒を肩代わりしてやってんのに… 最適化をご所望なら弊社謹製の開発ツール群をお買い求め下さい」
- 69 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 11:25:23.28 ID:7+IY4GKU.net]
- こうやってどんどん必要スペックが上げられていくんだな……。
- 70 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 12:09:27.48 ID:9AoVHus1.net]
- データ並列性さえあればOpenMPで簡単マルチスレッド使えるんだけどな
これ以外ではめんどくてマルチスレッドしないわ
- 71 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 13:18:55.33 ID:8rbpDm/C.net]
- OpenMPなんて効果が出ないものを、未だに使っている人間がいることに驚いた。
- 72 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 14:01:36.18 ID:sIh8uNuQ.net]
- 検討項目を増やさずに問題解決するに越したことはないし、
作業を増やさずに問題解決するに越したことはないし、 コンピュータを使わずに問題解決するに越したことはないし、 プログラムを組まずに問題解決するに越したことはないし、 並列処理を使わずに問題解決するに越したことはない。 上司に嫌がらせしたいんだったら、↑の逆に向かう理論武装に日々怠らなければ良いwww
- 73 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 14:42:15.40 ID:y0vYWKn+.net]
- OpenMPが普及しないのはそれなりに理由があるからなんだけど
最新技術みたいな中二ワードで本を売る業者に騙されていりこむ信者もいる 彼らは自分が他人より技術があると信仰している 他の連中は技術がないからOpenMP使えないんだ、ヤレヤレと信仰している
- 74 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 14:54:35.72 ID:o//cFEYQ.net]
- 実際に計測して確かめろとしか言えん
環境によっても変わるしな
- 75 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 18:57:57.85 ID:B/J3zYBR.net]
- うちにあるメインマシンはシングルコアだ
- 76 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 19:35:48.55 ID:XQzipMrB.net]
- >>72
計測する技術がないから使えないだけじゃね?
- 77 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 20:23:20.02 ID:y0vYWKn+.net]
- OpenMPで小さなバッファのコピーが3倍早くなっても仕方ないわけでw
肝心な箇所のスレッド化は自前でやるんだから変なものは導入しないほうがマシ Javaとか.Netランタイムは、何もしなくても勝手に OpenMPでやるような単純なスレッド化ポイントを探して やってくれるらしいから、そっちに期待したほうがまだ実りがあると思うよ >>62 処理速度が目的ならあらゆる手段でロックを避けるのが基本
- 78 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 21:23:37.19 ID:AhrZfxvI.net]
- dixq.net/forum/viewtopic.php?f=3&t=14532
何でも掲示板が2ch並みの不毛さになってんだがwww
- 79 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 22:00:13.37 ID:f/NLGL86.net]
- 毎回毎回過去ログ見ない、何も考えない人の質問を謎の義務感があるのか答えさせられてるからな
俺も平穏な頃はお世話になったが代わりにそこの住人の心が荒れてしまった
- 80 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 22:13:04.53 ID:Gy4H0ec+.net]
- MTフレームワークのように使えてる奴おるかー?
- 81 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 22:28:18.98 ID:y0vYWKn+.net]
- >>77
技能がないではなく知能がないやつが沸くのは初心者系の宿命さ
- 82 名前:名前は開発中のものです。 mailto:sage [2014/01/23(木) 22:41:55.18 ID:AhrZfxvI.net]
- まあ確かに全ての質問の相手をしてたら荒むかもなー
初心者向けじゃ無くせばいいのにw
- 83 名前:名前は開発中のものです。 mailto:sage [2014/01/24(金) 00:19:10.71 ID:GEmYWJ47.net]
- なんでもかんでも馬鹿にするのは良くないよ
ここの住民はその傾向強いけど
- 84 名前:名前は開発中のものです。 mailto:sage [2014/01/24(金) 01:13:55.26 ID:Jcy2cywV.net]
- 世の中に悪いものが溢れすぎているんだよ
バッドノウハウを叩き込む本も海外含めて出版されすぎ パラノイアになるのもしかたあるまい
- 85 名前:名前は開発中のものです。 [2014/01/24(金) 01:19:36.77 ID:2quQhFog.net]
- 横文字並べんな
俺にわかるように日本語で喋る
- 86 名前:名前は開発中のものです。 [2014/01/24(金) 02:38:13.12 ID:75+tl8UC.net]
- カタカナ語をやたらとチョイスするメンズはコミュニケーションがノーグッドなのがデフォルトだし
イージーなワードでトーク出来ない事がフーリッシュだとアンダスタンドしてないよね
- 87 名前:名前は開発中のものです。 mailto:sage [2014/01/24(金) 04:50:34.13 ID:pN9eWABR.net]
- カタカナ語はノットユーズだグッドルッキングガイども。
- 88 名前:名前は開発中のものです。 mailto:sage [2014/01/24(金) 17:19:24.19 ID:Jcy2cywV.net]
- 初カキコ…ども…
俺みたいな中3でノンブロッキングI/Oしてる野郎、他に、いますかっていねーか、はは 今日のクラスの会話 Boostシリアライズかっこいい とか DXライブラリ とか ま、それが普通ですわな かたや俺はデバッグ用のコンソールでカーネル・ウップスを見て、呟くんすわ it's a 深刻なエラー.狂ってる?それ、ランタイム・エグゼプションね。 好きなFW MTフレームワーク(カプコン社員でもないのに!) 尊敬する人間 ジョエル・スポルスキー(ユダヤ・ジョークはNO)
- 89 名前:名前は開発中のものです。 mailto:sage [2014/01/24(金) 17:30:23.22 ID:jYeepMxG.net]
- さすが中3だ
匿名掲示板で自分の事を勝手に語り始めた 自分が特別な存在であり、周囲より目立って当然であるという厨二病症状が伝わってくる そんな貴方に対し、先輩として一つ、大人の現実を教えよう ゲームを作りたければ、プログラミングだけじゃ駄目だ プログラミングと絵を練習しなさい 音楽が得意なら音楽にも手を付けなさい 絵が描けないまま大人になれば、辿り付く先はゲーム会社のディレクターではなく、過労のIT豚小屋企業だ さぁ、若者よ、時間が無いぞ 今日からpixivに通うんだ
- 90 名前:名前は開発中のものです。 mailto:sage [2014/01/24(金) 17:59:26.14 ID:Ak56Y4mX.net]
- 他の板でやって。お願い
- 91 名前:名前は開発中のものです。 mailto:sage [2014/01/24(金) 18:36:58.01 ID:z3bTrILf.net]
- だが断る
- 92 名前:名前は開発中のものです。 mailto:sage [2014/01/24(金) 18:57:08.80 ID:8axgouAh.net]
- >>87
そこのクラスは構造体とかのクラスにはしないんだ
- 93 名前:名前は開発中のものです。 mailto:sage [2014/01/24(金) 18:57:20.98 ID:Jcy2cywV.net]
- >>88
おめーゲーム作れねーくせに、2chの受け売りで知ったかかましてんじゃねーぞゴラァ! 無能なくせに、先輩風吹かして上から目線の説教する哲学者気取りには反吐がでるぜ!! anago.2ch.net/test/read.cgi/gline/1311577271/l50
- 94 名前:名前は開発中のものです。 mailto:sage [2014/01/24(金) 19:00:30.40 ID:Jcy2cywV.net]
- >>91
あー、見落としたわ
- 95 名前:名前は開発中のものです。 [2014/01/25(土) 04:15:46.46 ID:8r1nXkC0.net]
- >>88
絵って・・・同人じゃないんだから専門の絵描きさんにお願いするだろ普通
- 96 名前:名前は開発中のものです。 mailto:sage [2014/01/25(土) 16:31:59.91 ID:jy8SNfJb.net]
- 大手ゲームメーカー管理職の妄想にとりつかれたゲーム爺(無職)
あっちで引き取ってもらおう ニート、無職、フリーターがゲームを作るスレ6 toro.2ch.net/test/read.cgi/gamedev/1389441602/
- 97 名前:名前は開発中のものです。 mailto:sage [2014/01/25(土) 20:03:22.14 ID:ErNorzVO.net]
- 勘弁してください
- 98 名前:名前は開発中のものです。 [2014/01/25(土) 22:16:45.80 ID:ykCYICO9.net]
- codepad.org/XE9hLg41
これってもしかしてListにAddされたあと スコープ抜けて寿命付きてListの中なにも残ってなかったりする?
- 99 名前:名前は開発中のものです。 mailto:sage [2014/01/25(土) 23:11:32.82 ID:jy8SNfJb.net]
- いんや。vectorにaddされるのはローカル変数SCache Cache自体ではなく、
vector内でnew SCache()されたものであり、aiueo()ローカル変数SCache Cacheが 新しく生成されたインスタンスに対してコピーコンストラクタでコピーされるはず だからたぶんコピーコンストラクタをprivateで定義しておくとコンパイルが通らないはずだ SCache::SCache(const ©){} 一応自分で確認してくれ
- 100 名前:名前は開発中のものです。 mailto:sage [2014/01/25(土) 23:12:47.19 ID:jy8SNfJb.net]
- 訂正
SCache::SCache(const SCache ©){}
- 101 名前:名前は開発中のものです。 [2014/01/26(日) 00:11:58.97 ID:Iw5/1QMx.net]
- うーん、、特にコピーコンストラクタは触ってないんだけどなぁ
ありがとうございました
- 102 名前:名前は開発中のものです。 mailto:sage [2014/01/26(日) 00:17:49.78 ID:wqDtdTDr.net]
- なぜかvectorサイズが0になってるとか、
例外ダイアログでvectorほにゃらら〜がでるとか、それ系なん?
- 103 名前:名前は開発中のものです。 mailto:sage [2014/01/26(日) 00:28:30.05 ID:wqDtdTDr.net]
- 俺は前にこれでやらかしたことがあるぜ
vectorの内部バッファが大きくなるとポインタが無効になる std:: vector<Hoge> list; Hoge* add(Hoge &obj) { list += obj; Hoge* last = &list[ list.size()-1 ]; return last; }
- 104 名前:名前は開発中のものです。 [2014/01/26(日) 08:53:27.52 ID:Iw5/1QMx.net]
- >>102
2000個ぐらいなんだけど、多い?
- 105 名前:名前は開発中のものです。 mailto:sage [2014/01/26(日) 09:28:31.24 ID:+p1FZWAS.net]
- vectorは内部バッファの領域拡張が発生した時にその領域を指してるポインタは無効になるよってこと
だから要素数がいくつだったらって話じゃないよ
- 106 名前:名前は開発中のものです。 mailto:sage [2014/01/26(日) 09:48:24.53 ID:f2NeeHoK.net]
- vectorの領域拡張はフラグメンテーションが起きやすいよね
- 107 名前:名前は開発中のものです。 mailto:sage [2014/01/26(日) 12:46:34.63 ID:WQN234w5.net]
- 何でそのへんの仕組み理解してないのにわざわざ生ポ使うんだよ!
- 108 名前:名前は開発中のものです。 mailto:sage [2014/01/26(日) 15:37:26.70 ID:1jTIwhcQ.net]
- >>105
瑣末
- 109 名前:名前は開発中のものです。 mailto:sage [2014/01/26(日) 16:41:16.86 ID:RpTDvif5.net]
- >>105
STLコンテナにアロケータ設定できるのも知らんのか? そもそもメモリコンパクションがどうとかいう話は GC系言語ですらとっくに切り捨てた昔話だと思うが
- 110 名前:名前は開発中のものです。 mailto:sage [2014/01/26(日) 17:41:28.90 ID:f2NeeHoK.net]
- >>108
アローケーター操作するの面倒じゃね? ある程度大きめにメモリーを取得しといて使い回す方が楽っぽいが
- 111 名前:名前は開発中のものです。 mailto:sage [2014/01/26(日) 17:56:52.23 ID:RpTDvif5.net]
- 要は固定サイズの配列だろ?
好きなようにやればいいさ
- 112 名前:名前は開発中のものです。 mailto:sage [2014/01/26(日) 18:42:00.91 ID:f2NeeHoK.net]
- いや可変サイズだが
あらかじめ取得しといた容量よりも大きなサイズが必要になったら倍のサイズに領域を拡張してる
- 113 名前:名前は開発中のものです。 mailto:sage [2014/01/26(日) 18:47:27.36 ID:f2NeeHoK.net]
- >>108
つーか>>102の場合はvectorよりもlist使った方が良くないかい?
- 114 名前:名前は開発中のものです。 mailto:sage [2014/01/26(日) 18:52:43.37 ID:y8TPPY9Q.net]
- 一見listの方が速そうに思えるんだけど、
実際ベンチマークを取るとvectorの方が速いことが多いので侮れない。
- 115 名前:名前は開発中のものです。 mailto:sage [2014/01/26(日) 18:59:37.83 ID:f2NeeHoK.net]
- いや速度よりもフラグメンテーションでアプリが跳ぶ事を気にしてるんだが
- 116 名前:名前は開発中のものです。 mailto:sage [2014/01/26(日) 19:20:58.79 ID:1jTIwhcQ.net]
- >>109
>>114 やっぱり瑣末かと。換言すれば、取るに足らない、微レ存、取越苦労、枝葉、の話かと。 いや違う考慮に値するというなら問題が再現可能な状況を示してみればいいのでは。 異常な頻度で確保/再割当/解放を繰り返すような無理な状況設定が必要になるけど。 件の話なら適切にreserve使えばいいかと。それで解決しない問題ってあるかな?
- 117 名前:名前は開発中のものです。 mailto:sage [2014/01/26(日) 19:22:33.48 ID:1jTIwhcQ.net]
- 補足
ヒープ割当はフラグメンテーション回避で独自のメモリプールをーとかこの手の 取らぬ狸の皮算用になりがちな話題は何度目かというくらい既視感があったので 過去発言を適当に検索。関連ありそうなので貼り > PCの場合、例えば平凡なDoug Lea Malloc(の亜種)を使うことについて > 処理速度上の問題で難癖を付けるには、意図的に相当に意地悪な(過酷な)状況設定を > 引っ張ってくる必要があると思うなぁ > 例えば3D視点のゲームで、視覚効果に使う粒子状の短命オブジェクトが盛り盛り > 無数に画面上に散りばめられてて、それらが何と一粒一粒馬鹿正直にヒープから > メモリ割り当てされてて何の工夫もない線形リストに挿入されてて、毎フレーム > 線形リストを馬鹿正直に巡回して一粒一粒更新したり削除即時解放したりとか (この状況設定がなぜ意地悪かというと) > 描画関数に渡すパーティクル用のデータ構造と明らかに違う状態だから (不必要な) > セットアップもあるしね。まぁ、いずれにせよ、何でそんな馬鹿な > 想定を持ち出すんだと閉口するような話に持っていかないと処理速度上の > 問題で横槍いれるのは難しいと思う
- 118 名前:名前は開発中のものです。 mailto:sage [2014/01/26(日) 19:24:03.74 ID:y8TPPY9Q.net]
- >>114
オレオレ用語じゃ意味が分からん。 おそらくその現象は君の脳内世界でしか発生しない。
- 119 名前:名前は開発中のものです。 mailto:sage [2014/01/26(日) 19:43:21.57 ID:f2NeeHoK.net]
- >>117
1jTIwhcQには意味が通じてるぞ?w >>115 いや、そこまで分かってるなら特に問題は無い……な ただ、ゲームの場合、ムチャなメモリーの使い方する事が多いから、 reserveを忘れる事も珍しくないのでは?と思ったんだが まあ、些末な問題と言えば些末な問題か
- 120 名前:名前は開発中のものです。 [2014/01/26(日) 20:01:52.93 ID:NBq5fzCq.net]
- 無能がしったかかまして大恥をかきましたってさ
- 121 名前:名前は開発中のものです。 [2014/01/26(日) 20:31:03.96 ID:q4s5e5oc.net]
- つまりどういうこと?
初期化したときに必要な分確保しとけってことでいいの?
|

|