08/07/27 11:30:47
多次元配列をクラスじゃなくてコンパイラ内蔵にして欲しくならない?
for(y) { for(x){
a[x+y*size1] = ...;
}}
みたいなことやってもコンパイラはちゃんとyの項を外に出して最適化してくれるのは分かってるんだけれど、精神衛生上気持ち悪い。
それにa(x, y)みたいにアクセスできるクラスがあっても添え字の計算がクラスの奥深くになると外に出せなくなるし。
297:デフォルトの名無しさん
08/07/27 12:04:53
>>296
ならない
せっかく多次元配列でさえも自分でカスタマイズできるのがC++の便利なところなのにね。言語仕様に含めて自由を放棄するなんてことはできない。
298:デフォルトの名無しさん
08/07/27 13:23:18
そうだけどさ、コンパイラが解釈しにくくなるじゃん。
yの項を外に出すだけじゃなくて自動ベクトル化とかもやりづらくなるし。
それに二次元配列を言語が持ってても邪魔しないと思う。
必要ならオーバーライドすればいいだけ。
299:デフォルトの名無しさん
08/07/27 15:30:22
int a[10][10];でだめ?
C99だと要素数に変数使えてますます便利。C99使えないけど。
300:ヽ・´∀`・,,)っ━━━━━┓
08/07/28 16:57:10
int a[1024][1024];
あたりでキャッシュライン縛りアヒャヒャヒャ
301:デフォルトの名無しさん
08/08/29 10:18:51
おまえらダンゴさんのレスに一ヶ月も無反応とかどういうつもりだよ
302:デフォルトの名無しさん
08/08/29 10:30:05
最大の賛辞のつもり。
303:デフォルトの名無しさん
08/08/29 10:50:17
大惨事。
304:デフォルトの名無しさん
08/08/29 16:42:03
今は自作PCの方が大惨事
305:デフォルトの名無しさん
08/09/01 06:00:38
ペンションの経営に忙しかったんだよ。
306:デフォルトの名無しさん
08/09/10 21:39:44
gcc でサイズはとにかく増えてもいいのでインライン展開をさせたいんですが
-O3以上のオプションはなし?
307:デフォルトの名無しさん
08/09/10 21:42:42
>>306
もっと具体的に。インライン展開したからと言って、必ずしもサイズが増えるわけじゃないよ。
つーか、O2でもstaticな関数は勝手にインライン展開したと思うのだけど。
308:デフォルトの名無しさん
08/09/10 21:45:30
>>307
関数ポインタを使ったスイッチを多用したソースなんですが
予定してるよりも速度でないのでインライン展開で高速化できれば
と思ったんですが・・・
309:デフォルトの名無しさん
08/09/10 21:52:56
関数ポインタ経由で呼んでる関数をインライン展開しろと?
またそんな御無体なw
310:デフォルトの名無しさん
08/09/10 21:57:50
仮想関数経由なら出来るよな
311:デフォルトの名無しさん
08/09/10 22:34:32
>>309
あ、そういのは無理ですかww
代わりのチューニングって何かありますかね・・・
312:softbank219204123070.bbtec.net
08/09/10 22:48:56
速いマシンを買う/買わせる
313:デフォルトの名無しさん
08/09/10 22:55:20
まずはプロファイリングしてどこで時間食ってるか確認するところから始めては?
314:デフォルトの名無しさん
08/09/10 23:22:19
そもそもターゲットが何かも書かずに最適かもへったくれも無いだろよ。
エスパー希望なら鼬害だ。
315:デフォルトの名無しさん
08/09/11 00:39:16
>>313が正解。
316:デフォルトの名無しさん
08/09/11 21:49:30
ダンゴさんならピシっと答えてくれるところなんだがな。
317:デフォルトの名無しさん
08/09/11 22:31:17
なんでそこまでして荒らしたいわけ?
318:デフォルトの名無しさん
08/09/11 22:45:16
お前みたいにほいほい餌やる奴がいるからだろ。