- 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/
- 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++は地盤担当だから消えはしない。見えなくなるだけ。
- 138 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 16:49:43.54 ID:/ZB0USJc.net]
- 土台のしっかりしている家は頑丈だからな
しかし最近、犬小屋程度の建物にビルのような土台を作ってどうすんだ? と思うようにもなってきた
- 139 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 17:10:45.12 ID:dUb4vLHi.net]
- ウサギ小屋と呼ばれる日本の家をバカにするな!
- 140 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 19:20:53.89 ID:nasZb7nZ.net]
- 最近ホント、この板でこじつけで日本の風習をバカにする奴が増えたな。
レガシで安定したものはラップして使い回すのが鉄板なのに、 横からうまく吹き込んで全部潰して一から作り直そうとさせる。 それだけ、相手の発展を遅らせることができる。
- 141 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 19:28:52.88 ID:tBFCEOiA.net]
- 古いからといってバグが無いとは限らないけどな。
特に昔のコードは脆弱性対策が練られてない事が多い
- 142 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 20:15:35.81 ID:RgnZVm9M.net]
- FirefoxはJavaScriptの速度がChromeを超えたとか言われている割にもっさりしている感が否めない
後発のChromeの方が速い
- 143 名前:名前は開発中のものです。 [2015/01/28(水) 20:18:09.19 ID:t3hT+Wje.net]
- >>138
感覚でなく実測で。
- 144 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 20:33:36.08 ID:RgnZVm9M.net]
- ブラウザの使用感はスクリプトの実行速度だけで決まるわけじゃないからな
読み込み時間の短縮も大事 v8の方がバイトコードを通さず直接マシン語を生成するから読み込み速いんじゃないか 全体の速度はTom's Hardwareが調べていたが スコアを合計したら何かFirefoxが速いという結論になっているのが理解できなかった どんな計算をしたのやら www.tomshardware.com/reviews/chrome-27-firefox-21-opera-next,3534.html 古い記事だけど
- 145 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 20:35:32.45 ID:GO27aJnJ.net]
- 関係ないけど体感速度を速く感じさせるって大事な事だね
Chromeはメモリの使い方や優先順位の割り振りが上手いんじゃないかと
- 146 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 21:30:30.57 ID:zOtKlcou.net]
- chromeはメモリ馬鹿食いするしな
ブラウザしか起動しないならそれでもいいんだが
- 147 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 23:41:47.26 ID:gWUJCc9x.net]
- わずかな妥協さえ許さずチューニングに血道を上げ
DNSの応答時間すら惜しむ そりゃ比べる相手が悪すぎる
- 148 名前:名前は開発中のものです。 mailto:sage [2015/01/29(木) 00:04:26.59 ID:iAJNBuYX.net]
- 0.3を0.1にする前に,10が1になるツールを作ろう
- 149 名前:名前は開発中のものです。 mailto:sage [2015/01/29(木) 08:56:31.18 ID:KH1X7ZAq.net]
- メモリが多めのマシンだとChromeが最速だろうね
逆にChromeでメモリ不足に陥るマシンなら最速はFirefoxセーフモードかと
- 150 名前:名前は開発中のものです。 mailto:sage [2015/01/29(木) 09:36:37.60 ID:6+mjNHtZ.net]
- FirefoxはブックマークとかタブとかRSSあたりが使いやすい
あとはDuckDuckGoに対応してたりとか まあ好きな方使えばいいんじゃない?
- 151 名前:名前は開発中のものです。 mailto:sage [2015/01/29(木) 10:09:11.55 ID:c6VwBThb.net]
- Chromeの最低動作環境は一応メモリ512MB
タブをいくつ同時に開けるのか分からないが
- 152 名前:名前は開発中のものです。 [2015/01/29(木) 11:20:16.55 ID:XKuc65oW.net]
- JavaScriptとブラウザの速度が一緒くたにしてる。
ChromeはJavaScript不使用であってもメモリ食う。 ChromeにIE,FirefoxのJavaScriptエンジン搭載したらメモリ消費が減ると思えん。
- 153 名前:名前は開発中のものです。 mailto:sage [2015/01/29(木) 13:39:58.83 ID:c6VwBThb.net]
- ブラウザ全体が確保したメモリを使いまわしているのだろう
新しいのページ等はHTML5で書かれているので実質JavaScriptを完全にオフにはできない。 v8もメモリが十分にある環境だとメモリ使用量が200MBを超えたぐらいにならないとGCされない。
- 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ってどっちがモダンなん?
あるいは使い分けが必要?
|

|