- 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/
- 37 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 08:27:09.12 ID:XHyVYcVD.net]
- 2次元配列でOKなものは1次元配列でOK
わざわざ2次元配列を使うメリットは何も無い
- 38 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 11:40:55.67 ID:vMwgaTo6.net]
- シンタックスシュガーでしかないもんねぇ
初心者に教えるなら積極的に使うけど
- 39 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 11:55:03.58 ID:YJD7hT+O.net]
- 一次元配列で確保した上で行(or列)先頭にアクセスするための
インデックス(LUT)を用意するような内部実装でも二次元配列 なんであってだな(>>33) ターゲットも実装も不明ならメリットねぇとは断言できんよ
- 40 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 11:57:15.65 ID:YJD7hT+O.net]
- >>36被ったスマン
- 41 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 17:31:33.18 ID:KBPYDccT.net]
- たとえば縦スクロールSTGのマップとかで、
メモリ節約のためにマップを行ごとに細切れにして 表示範囲の上に一行足して下から一行引くような処理をしていたりする場合、 一行ずつ読み込んでるんだという事を示すためにわざとやるとか 試作段階で仕様が固まらなかった時の苦肉の策がそのままになっちゃったとか? 二次配列ってなんかあんまり使い道が浮かばない
- 42 名前:名前は開発中のものです。 [2015/01/17(土) 18:57:09.16 ID:O8Io0R5L.net]
- 3Dでキャラクターが技によって自由に地面の凹凸を操作できるようにしたいんですが
予め頂点を作っておかないとダメでしょうか? キャラクターがここじゃーって指してる座標に一番近い面の上に 頂点をいい感じに窪ませるように配置して、 もともとあった面と入れ替わるような感じにしたいのですが、 当たり判定やハードウェアレンダリングしたいならやっぱり面倒ですか? まぁハードウェアレンダリングなんてどうやればいいのかわからないですが
- 43 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 20:24:50.48 ID:dqiO68fF.net]
- 確かにあんまり、というか殆ど多次元配列使わないな
配列へのアクセス部分は、隠蔽する傾向にあるから、アクセス用インデックスが多次元でも、アクセスの内部仕様は1次元配列でやってることが多いな また配列の次元数を増やすと、後から解読するのが難しくなって、可読性が下がる だから次元が増える場合は、次元別にクラス定義して、一次元配列のメンバに下位次元を持たせるようにしてるな そういやD3DMATRIXに2次元配列のメンバあるけど、自分で定義したものじゃないし、そもそもそのメンバって殆どアクセスしないなぁ
- 44 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 20:40:58.36 ID:eRR0fEDj.net]
- std::vector<std::vector<int>>とかやるじゃん?
- 45 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 20:55:17.63 ID:XHyVYcVD.net]
- Dictionary<Point, Tile> Mapしか使わん
- 46 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 21:10:19.92 ID:dqiO68fF.net]
- >>42
enum定数でアクセスするのかな? それにどんな情報を入れるんだろ
- 47 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 21:23:58.77 ID:j+s0LTMz.net]
- ベジェとか普通に書いたら多次元配列になるんじゃ…
- 48 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 21:56:16.62 ID:ceElOD9E.net]
- >>42
やりません コンテナ2つ重ねても無駄に複雑になるだけでしょ
- 49 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 22:50:59.20 ID:Gl1ppQ6p.net]
- >>42
リソースに余裕がある場面では使ってるな 規模が大きくなってくると細かいことまで気にしてられんからこれ使うとラク
- 50 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 22:59:23.12 ID:aI7crSKW.net]
- >>40
テッセレータを使ったらいいのでは? 凹ませたい領域を4頂点の単純なタイルで表現し、それをフィールドに敷き詰めておく。 凹ませるときは、該当するタイルに対しテッセレーション(最大64分割)して、 高さマップを与えてディスプレースメントさせる。
- 51 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 00:08:51.85 ID:DJykD+cW.net]
- >>46
やるぜ? 可変長CSVの読み込みとか
- 52 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 07:49:00.66 ID:sJaCX/+8.net]
- 長さ不定のに多重vectorはしないかな
- 53 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 12:34:52.67 ID:W1O9uyd7.net]
- vector<vector<T>>は便利なときもあるけど、
コピーやトラバースのパフォーマンスがvector<T>に比べて著しく遅いんで、 そちらが重要なときは多少冗長でもvector<T>で扱うようにしてる。
- 54 名前:名前は開発中のものです。 [2015/01/18(日) 12:40:46.60 ID:beKeRz4L.net]
- vector<vector<T>*>
- 55 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 12:44:37.58 ID:sJaCX/+8.net]
- 生ポインタ使うならdequeで良いだろ
とは言えないパフォーマンス差があるんだよな…
- 56 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 13:35:03.38 ID:yNPMG51i.net]
- vector<unique_ptr<T>>
- 57 名前:名前は開発中のものです。 mailto:ぬるぽ sage [2015/01/18(日) 14:23:19.06 ID:J6J53lAj.net]
- null_ptr
- 58 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 15:20:17.44 ID:W1O9uyd7.net]
- nullptrでは・・・
- 59 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 15:53:55.88 ID:dWFx6RaG.net]
- 相当昔にC++触って、今と環境がかなり違いそうなのですが、
タスクシステムを実装する時、昔は固定長のメモリを予め確保したうえで、そのメモリを newすることによって使っていたのですが、今のゲームもこのやり方が主流ですか? それともスマートポインタ+std::listでも速度出るのでしょうか? スマートポインタとやらは、これはやってる事はガベージコレクションですよね? 速度に問題無しということですが、ヒープ領域から自由にnewdeleteして大丈夫なのかと不安になるのですが・・・
- 60 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 16:23:04.34 ID:6LkKK9Db.net]
- 誰も使ってない
- 61 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 17:19:29.87 ID:W1O9uyd7.net]
- >>57
スマートポインタはリソース管理の安全性を高めるだけで、 new、deleteのパフォーマンスを高めるわけではない。 むしろクラス被せる分、オーバーヘッドが嵩む。 現代のハードウェア環境においては、多くの場合そのオーバーヘッドは問題にならないというだけ。
- 62 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 18:04:36.15 ID:WcZ4waH9.net]
- 手動解放は、車で例えると
タイム短縮のためにわずかなエンジンパワーのロスも許されないプロレーサーや、 オートマはエンジンパワーが完全には伝わらないのでクソ 俺は完璧なギアチェンジ操作ができる(自称含む)のでマニュアルで通すんだって人向け 解放忘れてメモリリーク他の面倒な問題を起こしても泣かないなら全部手動で それが嫌なら我々が作った処理班にぜひおまかせ下さい! スマートポインタってそういうもの shared_ptrやweak_ptr自体の書き忘れや循環参照などは防げないけど >>55 ga
- 63 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 19:56:46.03 ID:1ZXKy9PG.net]
- >>57
ここではWindowsならメモリ確保の負荷はそんなに問題にならないとしている marupeke296.com/ALG_No2_TLSFMemoryAllocator.html スマートポインタはGCってそれどういう意味だよ。 スマートポインタに使っている参照カウントはGCの方式の一つとは言えるが。 ja.wikipedia.org/wiki/参照カウント
- 64 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 20:33:19.91 ID:E2jV+3+x.net]
- おじさんは2万円前後の安もんの8インチタブ(CPU:Z3735G,RAM:1GB)を
即売会場でデモ機として使う都合で、バッテリー駆動でできるだけ長時間 ヌルヌル動かすために貧乏根性丸出しな組み方しちゃったけど、そういう 変な目的が無ければ自分の好きなようにやればいいと思うんだがな ○○のやり方が大丈夫なのか不安とか意味わかんねぇな。周りキョロって ねぇで自分で決めた基準動作環境で自分でテストすればいいじゃんと
- 65 名前:名前は開発中のものです。 mailto:sage [2015/01/19(月) 05:04:21.05 ID:xLKHfZFD.net]
- 最近は底の方でも1GB
これなら多少雑に使ってもリークさえさせなければ問題ないな なお512MB以下は爆死する模様 そんな化石がまだあるのかどうかは知らないが
- 66 名前:名前は開発中のものです。 mailto:sage [2015/01/19(月) 08:44:27.43 ID:XDjCkDzP.net]
- 全部起動時に読み込みとかやめて!
- 67 名前:名前は開発中のものです。 mailto:sage [2015/01/19(月) 19:59:00.97 ID:21R5SuXr.net]
- ふははは、貴様のセルを使うかどうかもわからない画像や音楽データで埋めてくれる!
読み込み時間といい、占有領域といい、ロースペにはある種のテロだな…
- 68 名前:名前は開発中のものです。 mailto:sage [2015/01/19(月) 23:27:21.97 ID:U55o2asL.net]
- 音楽やムービーのストリーム再生以外で、オンメモリでないゲームが作れるって凄いな。
そこまでリソースが用意できないよ。
- 69 名前:名前は開発中のものです。 mailto:sage [2015/01/20(火) 00:33:47.17 ID:KjcEBQWF.net]
- メモリ次第ではあるけど
常駐とブラウザ合わせたら警告食らうくらいのゲームならあるんじゃないの
- 70 名前:名前は開発中のものです。 mailto:sage [2015/01/20(火) 01:29:50.61 ID:VPdLWQW0.net]
- >>66
数年前、(旧)Android Marketに個人でゲーム出した時は機種依存の バッドノウハウの量に本気で吐き気がしたけど、あれに比べたら PCゲーは作りやすい思たよ。メモリフットプリント小さくするだけで おkなら大したこたないと思える程にAndroidスマホはカオス (だった。今はどうなってるのか知りません)
- 71 名前:名前は開発中のものです。 mailto:sage [2015/01/20(火) 10:35:24.77 ID:B8GspOPa.net]
- 1080pの画像を一度に100枚読み込めばロード地獄間違いなし
1920*1080*4 /1024/1024 *100 = 791MBぐらい スマホだとアプリが強制終了するかも グラフィックの豪華なアプリのModern Combat 5でもメモリは512MBぐらいまでしか使わない
- 72 名前:名前は開発中のものです。 mailto:sage [2015/01/20(火) 22:05:53.74 ID:GnwjxLXH.net]
- 圧縮テクスチャ使えば1/5くらいにはなるんじゃね?
- 73 名前:名前は開発中のものです。 [2015/01/21(水) 16:36:27.53 ID:OnV6g/fE.net]
- そういや、Appmethodってどうよ?ちょっと気になってるんだが使ってる奴居る?
- 74 名前:名前は開発中のものです。 mailto:sage [2015/01/21(水) 22:17:40.75 ID:1wPj2se9.net]
- タスクシステムで組む時、
・タスクリスト2つ用意して移動と描画分ける ・タスクリスト1つに移動も描画も入れる どっちがいいのでしょうか?個人的には前者にしたいけど・・・
- 75 名前:名前は開発中のものです。 mailto:sage [2015/01/21(水) 22:19:47.80 ID:CqaY5thk.net]
- 前者にしたいのにできない要因を考えるのがよい
「みんながどうやってるか気になる」ってだけなら気にする必要はない
- 76 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 00:52:45.85 ID:fqCV4qez.net]
- タスクシステムはバグった時に大変そうな印象
そりゃあ、バグれば大抵それなりに大変な目に遭うんだけどさ
- 77 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 02:20:52.62 ID:PxEmvatE.net]
- >>69
一般的なアプリは、数MB
- 78 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 07:47:04.58 ID:niGIPEW3.net]
- 昔タスクシステムスレあったけど相手の主張への罵詈雑言だらけでいつの間にか消えたなw
- 79 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 16:27:46.03 ID:pRLOyuNi.net]
- 移動と描画両方持ってたほうがスマートだべ
- 80 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 16:50:32.20 ID:MBqyL5iH.net]
- >>76
「タスクシステム」っていう名前が何を指すのかがすごく曖昧なのに それを無視して自分の中の定義を押しつけ合う奴らの隔離スレだったし 消えて当然とも言える
- 81 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 17:35:35.81 ID:niGIPEW3.net]
- まあ個人でゲーム作る分にはどう作ろうが60FPS出てちゃんと動けば勝ちだからなw
会社とかで厳密にタスク管理されてるなら覚えなきゃならんのだろうけど。
- 82 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 18:57:21.14 ID:gduwMt/g.net]
- タスクシステムw
馬鹿しか使わん
- 83 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 21:08:37.90 ID:9AIymZEw.net]
- >>80
なんで?
- 84 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 21:13:16.12 ID:ZmYkrSmS.net]
- >>80
OS上で動くアプリならそうかもな OS込みとしてならタスクは最適解だろうし、組み込み系で使われてるOSは名前が違うだけて同じ系統のものだよ 現在マイノリティなのは認めるけどな
- 85 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 22:06:24.79 ID:MBqyL5iH.net]
- ほーら始まったw
スレ立ててそっちでやれw
- 86 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 23:18:22.87 ID:MosgWt8b.net]
- たすくしすてむってなあに?
おいしいの?
- 87 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 23:53:50.36 ID:hRTvuKPH.net]
- ごめんなさい
反射してしもた
- 88 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 23:56:43.23 ID:U49zokjS.net]
- だーかーらー、ただのリストに大げさな名前付けんなや
- 89 名前:名前は開発中のものです。 mailto:sage [2015/01/23(金) 00:49:17.98 ID:jY3sOyRC.net]
- ja.m.wikipedia.org/wiki/TRONプロジェクト
多少は勉強になるから、読んでみたらどうだろう これの亜流だよ
- 90 名前:名前は開発中のものです。 mailto:sage [2015/01/23(金) 01:07:05.72 ID:JihQada2.net]
- はじめからほとんど完成しているシステムに、
そのシステムの中枢部に触れないように要素を追加できるような実装を目指すなら有効 つまり、OSやエンジン作るならこれがいいかもしれない が、そうでなければバグが修正困難だったり無駄な手続きが多いクソ なんだ実行順って 必要になった時にやらせろオラァァ
- 91 名前:名前は開発中のものです。 mailto:sage [2015/01/23(金) 10:32:52.67 ID:ZhBY7M7O.net]
- 最近はどんな言語でもクロージャやジェネレータ (yield) をサポートするようになってきた。
タスクシステムとは呼ばれないけど、同じ目的には使えるんじゃないの? 描画に関しては、オブジェクトが自前で描画命令を発行するのか、 オブジェクトとは別にスプライトのような構造
- 92 名前:を用意して、描画はそちらに任せるかの差が大きい気がする。
巷のゲーム向けのフレームワークを見るに、後者のほうが可搬性は優れているんじゃないか? [] - [ここ壊れてます]
- 93 名前:名前は開発中のものです。 mailto:sage [2015/01/23(金) 10:52:38.49 ID:ZpK8PG+c.net]
- オブジェクトが自前で描画って構造はゲームではあり得なくない?
ポーズ作るだけで一苦労じゃん
- 94 名前:名前は開発中のものです。 mailto:sage [2015/01/23(金) 16:09:48.65 ID:gTjNx7m+.net]
- ネットに転がってるC++のゲームソースしっかりしたのはほとんどタスクシステムっぽいのばっかだから
そういうソースじゃないと読む気がしなくなったっていう(´・ω・`)
- 95 名前:名前は開発中のものです。 mailto:sage [2015/01/23(金) 16:29:50.12 ID:Qg1gWf/N.net]
- 単一のタスクだけで動かすと実によく機能するのに、
タスク同士を連動させようとすると途端にギクシャクする辺りが 実にぼっちらしくてよいが、 プログラムにそんなのやらせてどうするんだ
- 96 名前:名前は開発中のものです。 [2015/01/24(土) 11:10:33.23 ID:vN0iK6Pw.net]
- >>90
cocos2dとかそんな感じじゃね
- 97 名前:名前は開発中のものです。 mailto:sage [2015/01/24(土) 13:26:12.19 ID:AuIVSu3m.net]
- C++11のstd::asyncってのが便利そうだから使ってみた。
確かに簡単に別スレッドに非同期に仕事をさせられる。 だが、どうも処理結果を受け取ってスレッドを終了するのに膨大なコスト(500msくらい)がかかるようだ。 代わりに、std::threadで常時スレッドを走らせておいて、std::mutexで同期を取りながら データのやり取りをするようにしたらとてもスムーズに動くようになった。 しかし、std::asyncを使った場合と比べて、煩雑な記述が避けられない。 スレッド終了のコスト高杉。
- 98 名前:名前は開発中のものです。 mailto:sage [2015/01/24(土) 13:34:42.36 ID:0N2Bqsd3.net]
- TBBやPPL使っとけ
- 99 名前:名前は開発中のものです。 mailto:sage [2015/01/24(土) 16:36:58.01 ID:l++ObWZB.net]
- >>94
Windowsの話だよな?
- 100 名前:名前は開発中のものです。 [2015/01/24(土) 20:09:43.23 ID:Js5qaCaY.net]
- C11使っとけ
- 101 名前:93 mailto:sage [2015/01/24(土) 21:51:42.90 ID:AuIVSu3m.net]
- >>95
サンクス。 調べてみる。 >>96 そうだよ。
- 102 名前:名前は開発中のものです。 mailto:sage [2015/01/24(土) 22:06:18.60 ID:SL/s5qpu.net]
- 1タスクごとにスレッドそのものを開始終了するとコストが高いので
想定するCPUのコア数だけワーカースレッドを用意して それらにタスクを投げるのが定石じゃないかな。 ・キューにタスクがない時はスレッド待機。 ・タスクをキューに投げたら全ての待機スレッドを励起。 ・いずれかのスレッドがキュー上のタスクを取得して実行、他は再び待機。 ・タスクが完了してもスレッド完了せず、次のタスクを確認する。 デザインパターンにあったはず。
- 103 名前:名前は開発中のものです。 mailto:sage [2015/01/24(土) 22:12:29.49 ID:VTrvOh2Q.net]
- >>71
居ないのか……ま、いいや
- 104 名前:名前は開発中のものです。 mailto:sage [2015/01/24(土) 22:16:34.35 ID:VTrvOh2Q.net]
- スレッドの使い分けは適切に使わないと工数が意味もなく増殖するからな……
- 105 名前:名前は開発中のものです。 mailto:sage [2015/01/24(土) 22:31:57.37 ID:AuIVSu3m.net]
- >>99
勉強になった。 やっぱそういうやり方が常套なのね。 そういや、マルチスレッドのデザインパターンってのがあるって聞いたことがあるな。 調べてみるわ。
- 106 名前:名前は開発中のものです。 mailto:sage [2015/01/25(日) 21:12:51.89 ID:vXlhEd/U.net]
- タスクシステムよりシーン管理の方がよっぽど複雑だと思うの
- 107 名前:名前は開発中のものです。 mailto:sage [2015/01/25(日) 21:27:30.87 ID:16a+UuyX.net]
- シーンって「タイトル画面とキャラ選択画面とゲームのメインループその他」の意?
それとも「メインループ中の各シーン」のことかな。 >>102 標準テンプレートとか使える程度に技術のある人なら余裕で実装できるよ。
- 108 名前:名前は開発中のものです。 mailto:sage [2015/01/25(日) 23:16:44.80 ID:ZTrWlyYJ.net]
- シーンったら状態遷移のことでは つまり両方
- 109 名前:名前は開発中のものです。 mailto:sage [2015/01/25(日) 23:53:06.16 ID:5N9PH1z0.net]
- >>99
ワーカースレッドが、キューに何もない
- 110 名前:アとを確認して、
眠ろうとしているところに、 キューにタスクが入って、ワーカーに起きるよう指示を出す。 ワーカースレッドはその後寝てしまう。悪いことに全ワーカーが同じ状態。 次のキュー挿入で起きるけど。 なんかこんなこと考えると、こんがらがってきます。 [] - [ここ壊れてます]
- 111 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 15:41:45.19 ID:VjIajR+F.net]
- >>106
キュー操作そのものにミューテックスで排他かけるから 「寝る」一連の動作と「起こす」一連の動作は複数のスレッドで並行に起こらない。 「寝て大丈夫かキューを確認したらタスクがあるから寝ずに実行」か 「完全に寝る→即座に次のタスクがキューにある状況で起こされる」のどちらか。 .NETだとWait()とPulseAll()、Javaならwait()とnotifyAll()で 簡単に実装できるけど、Win32APIだと少し面倒だった。 まずは上記2つのどちらかを調べて流れを掴んで、 それをC/C++用のAPIで書き表すことを考えてはどうかな。
- 112 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 16:22:24.05 ID:MFO6WL+3.net]
- >>107
condition_variable
- 113 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 17:05:42.55 ID:u+eqsmYT.net]
- *0.5の乗算と/2の除算
表す物はまったく同じだけど、前者の方が早いんだろうか?
- 114 名前:名前は開発中のものです。 [2015/01/26(月) 17:06:44.50 ID:plLWVR07.net]
- /2の除算
- 115 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 17:08:38.36 ID:U+7vhN1O.net]
- シフト演算
- 116 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 17:36:32.42 ID:nJhOAZkT.net]
- 整数ならそもそも結果が違うな
浮動小数ならコンパイラが最適化してくれるだろ
- 117 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 17:48:01.99 ID:u+eqsmYT.net]
- 2のn乗倍しかできないじゃないですかー!やだー!
書き方が悪かったのは認める
- 118 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 18:30:30.51 ID:pS9kEcva.net]
- >>113
浮動少数なら変わらないんじゃ?
- 119 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 21:04:49.69 ID:J7eP3rC5.net]
- >>107
Javaや.NETはスレッド簡単に書けるんか。 C++11や今後の新しいC++規格で同じようなライブラリ入れてくんないかな?
- 120 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 21:13:32.54 ID:nJhOAZkT.net]
- >>115
すでに >>108 が答えてくれてる。 std::thread, mutex, shared_mutex(=RWLock), condition_variable, async/future C++11, 14 にて、この手の処理のための部品は揃ったと思われる。 あくまで部品なので、タスクキューなんかは自分で多少は書くことになるとは思うが。
- 121 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 21:19:26.58 ID:thceLWWx.net]
- #ifndef〜#endifの組み合わせと#pragma onceの違いがよく分からない
前者は明確なインクルードガードだけど、後者は?
- 122 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 21:45:22.75 ID:OIbLNO60.net]
- 前者はガード以外にも使える
後者はガード専門
- 123 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 21:45:26.06 ID:eI0emMfH.net]
- >>117
一回だけincludeしてねとコンパイラに言う
- 124 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 21:57:36.77 ID:MFO6WL+3.net]
- ついでに言うと#pragma onceは非標準
だけど主要コンパイラで実装してないものがないほぼデファクトスタンダード状態
- 125 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 22:06:02.39 ID:J7eP3rC5.net]
- >>116
ありがとう! C++的にはちょうど良い落としどころっぽいね。 使い易くてハイパフォーマンスなスレッド記述をマスターしてやるぜ!
- 126 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 23:14:24.34 ID:thceLWWx.net]
- なるほど、むしろ#pragma onceがインクルードガード専用なんだな
>>120 マジで!? VSで最初から書き込まれているプリプロセッサが非標準なのかよ
- 127 名前:名前は開発中のものです。 mailto:sage [2015/01/27(火) 02:06:38.39 ID:m3LjzbYT.net]
- そもそも#pragma自体が、コンパイラ独自実装な機能で使うタグみたいなのじゃなかったっけ
まあ今となっては大抵のコンパイラで使えるみたいよ en.wikipedia.org/wiki/Pragma_once
- 128 名前:名前は開発中のものです。 mailto:sage [2015/01/27(火) 05:50:27.53 ID:v0Ke9Ofm.net]
- #pragma で始まるものは、互換性がない
- 129 名前:名前は開発中のものです。 mailto:sage [2015/01/27(火) 09:41:49.82 ID:kpJLUqPw.net]
- >>124
リンク先見た? 俺もVCだけの互換の無い機能と思っていたが、互換してないのはIBMの一種(世の中のコンパイラを網羅してるわけではないけど)だけだったよ 標準仕様が〜とかよりも便利なモノは取り込まれてくんだと思った
- 130 名前:名前は開発中のものです。 mailto:sage [2015/01/27(火) 15:08:16.08 ID:m3LjzbYT.net]
- まあ#pragma comment(lib, "...")とか、ガチでVC独自の機能もあるし
>>124の考えが自然だと思う
- 131 名前:名前は開発中のものです。 mailto:sage [2015/01/27(火) 17:35:37.67 ID:OmLGS6W/.net]
- C++14の新機能ってラムダ式にautoが使えるくらい?
- 132 名前:名前は開発中のものです。 mailto:sage [2015/01/27(火) 22:54:28.14 ID:k1Z1zLml.net]
- >>126
なぜ comment なのだろう…
- 133 名前:名前は開発中のものです。 mailto:sage [2015/01/27(火) 23:27:04.08 ID:Ow2H94g+.net]
- 互換と呼ばれるパクリ・盗用
- 134 名前:名前は開発中のものです。 mailto:sage [2015/01/27(火) 23:51:44.84 ID:mO8GdU7r.net]
- パクりパクられないインタフェースに存在意義は無い
- 135 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 00:13:05.10 ID:5x2afQiV.net]
- ただのガラパゴス仕様だからな…
- 136 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 08:57:20.61 ID:DPC05MEk.net]
- C++は消える運命
- 137 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 10:44:43.26 ID:SOs+ZJbg.net]
- C++は地盤担当だから消えはしない。見えなくなるだけ。
|

|