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


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

C++相談室 part119



1 名前:デフォルトの名無しさん [2015/08/31(月) 18:19:04.13 ID:NE3NvROE.net]
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

前スレ
C++相談室 part118
peace.2ch.net/test/read.cgi/tech/1435970316/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net
peace.2ch.net/test/read.cgi/tech/1439849418/

次期規格C++1zはこちら
C++14/C++1z 20
peace.2ch.net/test/read.cgi/tech/1410382924/

■長いソースを貼るときはここへ。■
 codepad.org/
 ideone.com/

152 名前:NAS6 ◆n3AmnVhjwc [2015/09/04(金) 01:36:42.35 ID:tzKKrHnI.net]
循環参照する必要があるなら
アブストラクトファクトリパターンで
シングルトンパターンのメッセージクラスで
応答になるんだろ

153 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 01:41:27.56 ID:ye/5uETN.net]
>>146-147
そういうことか。ありがとう。
いちおう↓こんなのはできるけど、これが望むものなのかどうかはやっぱりわかんないね。

class B;
struct A {
B& b;
};
struct B {
A& a;
};
struct Loop { A a; B b; } loop = {{loop.b}, {loop.a}};

154 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 01:46:02.11 ID:ye/5uETN.net]
>150 よりこっちのがいいかな。
struct Loop { A a{b}; B b{a}; } loop;

155 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 02:03:19.63 ID:1ELVgZ8Y.net]
それならc++03でもいけるね
コンストラクタ書く必要はあるけど

156 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 03:33:33.23 ID:CNzc1DB/.net]
>>150
AもBも他のクラスのメンバとするならば、初期化で問題なくインスタンス化できるという話ですか?
いずれにしろAとBをマネージするクラスを作るのは避けられないですかね?

>>152
どちらもgccのc++03でいけましたが、>>151はc++03だと警告が出ました
コンストラクタは書かなくても大丈夫ではないですか?

157 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 04:59:59.47 ID:ukgXeb3f.net]
>>153
どっちも参照しかもって無いんだから誰かが実体持つ必要があるだろ。
それは相互に参照してようがしてまいが変わらない

158 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 05:04:41.54 ID:1ELVgZ8Y.net]
>>153
C++03でクラス化するにはコンストラクタがいるよ
それと試しにg++(gcc)でやってみたけど、
C++11でのみ有効な機能っていう警告が出たよ
それじゃなかった?

159 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 06:17:53.16 ID:rG9hvPUX.net]
>>101
コンソールに出力すると
コンソールの通信速度に引っ張られて
プログラムの動作が遅くなる
デバッグだからと言って無闇に大量に出力しないように気をつけないといけない

160 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 08:17:29.72 ID:9mN0gzGK.net]
余計なお世話だ



161 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 08:58:14.87 ID:voaTutYw.net]
コンソールってバッファリングしてないのか?

162 名前:デフォルトの名無しさん [2015/09/04(金) 11:55:39.86 ID:1AVS2Ktf.net]
>>156
言うだけ無駄
どーしてもcoutと手段が目的化してる

163 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 12:28:24.29 ID:s9W6t8fF.net]
やぱログに吐いた方がいいって事ですか

164 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 12:30:58.91 ID:8nJVYQKk.net]
>>154
mainとかの関数内ではAやBのインスタンス作れないですよね?
何かしら方法あるのかな

165 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 12:37:05.16 ID:g9gAlQ8r.net]
>>161
普通に作れるでしょ…

166 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 14:48:15.68 ID:yKUUH6cx.net]
どうでもいいけどcerrじゃ

167 名前:デフォルトの名無しさん [2015/09/04(金) 17:07:42.09 ID:ynK+SMBx.net]
>>156
>>158
リングバッファに貯めて別タスクでワイヤレスのコンソールに吐き出させています
>>160
確かにそうかもしれません。
主目的は、標準ライブラリの移植です。
>>163
それでもかまいませんが
やらなくてはならないことは同じではないかと思いました。

ちなみにiostreamをヘッダファイルに加えると以下のようなエラーが出ます
hoge.cpp:(.text.startup+0x48): undefined reference to `__dso_handle'
/path/to/libstdc++.a(system_error.o): In function `_GLOBAL__sub_I__ZNSt14error_categoryC2Ev':
system_error.cc:(.text.startup._GLOBAL__sub_I__ZNSt14error_categoryC2Ev+0x4c): undefined reference to `__dso_handle'

168 名前:デフォルトの名無しさん [2015/09/04(金) 20:19:10.44 ID:STCOa/Lw.net]
STLをビルドして組み込め。実装はただひとつでなくいくつもある。動作するやつで。

169 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 18:20:35.46 ID:pkvC4koK.net]
 
erosuga1.blog.fc2.com/blog-entry-3174.html

親戚のエロお姉さんとS◯Xwwwwwwwwwww
 

170 名前:デフォルトの名無しさん [2015/09/06(日) 23:13:13.97 ID:kzoJkPUN.net]
CのCHAR_BITに当たるものはC++だとなんですか



171 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 23:59:11.69 ID:TtEkoNQG.net]
>>167 CHAR_BIT かな。 []
[ここ壊れてます]

173 名前:デフォルトの名無しさん [2015/09/07(月) 19:34:51.82 ID:XjY9JrjD.net]
nextとhasNextはnextを実装するときコピーが必要だが終端がわかっていればnextだけで進める
moveNextとcurrentはcurrentを実装するときコピーはいらないが進むのにmoveNextが必要という
トレードオフがあると思いませんか?

174 名前:デフォルトの名無しさん mailto:sage [2015/09/07(月) 20:08:22.86 ID:AAyuiqtl.net]
奇遇だな
ちょうど俺もそう思っていたところだ

175 名前:デフォルトの名無しさん [2015/09/07(月) 21:24:45.26 ID:107fD43G.net]
え!?俺も昨日同じこと考えたとこだった!

176 名前:デフォルトの名無しさん mailto:sage [2015/09/07(月) 21:26:55.88 ID:xAuYi2fm.net]
ちょっと>>169が何言ってるかわからない

177 名前:デフォルトの名無しさん [2015/09/08(火) 10:01:21.06 ID:LEkrsXyv.net]
typelistの代わりにtuple使ってるんだけどなんかダサいから
typelistの可変引数版みたいなのを自作しようと思います

178 名前:デフォルトの名無しさん mailto:sage [2015/09/08(火) 12:57:45.86 ID:rdzMyuc+.net]
俺も俺も

179 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 14:29:57.70 ID:vNCRKT6f.net]
unique_ptrで配列を使う場合、テンプレート引数はどうするんでしょうか?
unique_ptr<int> p(new int[3]);
unique_ptr<int[]> p(new int[3]);
はどちらもGNU C++11でコンパイルが通りますが、両者は同じですか?

180 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 17:14:13.20 ID:tn/zLcPl.net]
>>175
前者は消滅時に変なdeleteが呼ばれるんじゃね



181 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 18:13:22.19 ID:vNCRKT6f.net]
>>176
share_ptrの場合<int[]>だとコンパイルエラーになりますが、
unique_ptrは配列の特殊化があるので<int[]>にしないとダメということでしょうか?

182 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 18:33:57.55 ID:jMDA+bxl.net]
はい

183 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 19:52:32.49 ID:Ubq2dser.net]
shared_ptrってなんで配列の特殊化が用意されてないんだろうね
代わりにshared_arrayがあったと思うけど、要するに生配列なんてクソなものは使うなよってことなのかね

184 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 20:18:56.37 ID:dU3rTPO3.net]
>shared_array
いえそんなものありません

185 名前:デフォルトの名無しさん [2015/09/10(木) 20:26:28.15 ID:2c1W3PII.net]
shared_ptr<array<int,3>>で

186 名前:デフォルトの名無しさん [2015/09/10(木) 20:42:53.70 ID:XPHYFe1B.net]
unique_ptr<T[]>は知的興味でしかないだろうな
なぜなならアーレイやベクトルやストリングがあるからさ
そんな僕でもこれらデータ構造よりもunique_ptr<T[]>が使えると思いつく場面はあるんだ
それはヒープ配列の生のポインターをAPIで所有権をうけとるときたった一つさ

187 名前:デフォルトの名無しさん [2015/09/10(木) 23:41:24.04 ID:Lt3YsJ/Z.net]
> アーレイ
和服の彼女かとおもた

188 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 10:32:13.74 ID:yGFUVtFx.net]
そういえばshare_ptrの参照カウンタって
実際の情報はどこで保持されてるんでしょうか?

189 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 10:33:39.57 ID:H6P2Jlk5.net]
ソース見ればいい

190 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 11:22:30.30 ID:Ra3TP7iE.net]
ソースみれば分かるが動的に確保しているよ
ただし高速化の工夫はしてある



191 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 14:11:15.39 ID:yGFUVtFx.net]
share_ptrのソース見ましたが、atomic型を使って
うまいことやってるというくらいしか分かりませんでした

atomicについて知らなかったので調べたんですが、
これってC++11のメモリモデルに関するもので、
いわば言語のコアの機能なんですね

192 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 14:12:30.08 ID:yGFUVtFx.net]
つまりC++11以前やCではこのshare_ptrを直接実装する方法はなく、
たとえば参照カウンタを持つクラスを用意し、これをshare_ptrさせたい
クラスに継承させるという間接的な方法しかないということですよね?

193 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 14:20:50.61 ID:ZeO2NzYz.net]
んなわけねーだろ

194 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 15:00:10.29 ID:xy/6VGnh.net]
C++11で、型推論autoを使って楽をしようと思ったんだが、
2つの変数の型を自動的に整合させる方法が分からないのだ。

void some_job() {
const auto loop_times = 10;

for (auto cnt = 0; cnt != loop_times; ++cnt) {
/* ループ内の処理 */
}
} // (インデントはおそらく破壊される)

上の場合、ループ回数 loop_times と、ループカウンタ cnt は
どちらのautoもintと判断されるのでとりあえず一致する。
しかし auto loop_times の初期値にintでない値を与えると
当然ながら loop_times と cnt の型が違ってしまう。

「cntの型は、loop_timesの型からconstを外したものだよ」
という変数宣言の書き方はないだろうか?

諸兄らの教えを乞いたい。

195 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 15:18:09.86 ID:yGFUVtFx.net]
>>189
どのへんが間違ってるんですか?
C++初心者にもわかる説明だとありがたいです

196 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 15:43:03.84 ID:BdWqvAgc.net]
>>190
ttp://ideone.com/CTjWaa
これでどうよ

>>191
boost::shared_ptrのソースでも見てみれば
shared_ptrが標準に入ったのは11からだけどそれ以前にもshared_ptrはあったんだから

197 名前:190 mailto:sage [2015/09/11(金) 18:00:12.76 ID:xy/6VGnh.net]
>>192
まさに希望した通りの情報です。感謝します。
std::remove_const 云々 と書くのか。

sizeof() と typeid().name() とで並べて見たところ
loop_times と cnt の型は一致した。
loop_times = 10U; や loop_times = '3'; でも
試したら自動的に型が合った。


テンプレート構造体に閉じ込めたtypedefか。
こんな仕掛けを思いつくとは尊敬すべき変態さん達だな。

198 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 19:32:57.26 ID:eMWeHauN.net]
これって
const auto && loop_times = 10;
でも動くんか?
そこはdecayじゃないのかって思ったんだけど

199 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 21:03:06.98 ID:yGFUVtFx.net]
>>192
よく見てみたら、参照カウンタ自体の仕組みはごく単純で、自分のイメージ通りでした
というか、そもそも自分がshare_ptrの使い方をちゃんと理解していませんでした
share_ptrに生ポインタ渡せるのは初回だけなんですね・・・
ideone.com/mysMec

スレ汚し失礼しました

200 名前:デフォルトの名無しさん [2015/09/11(金) 23:54:45.84 ID:b8iFLD3f.net]
コーディング言語は「オープンソース」が制す:Github人気調査結果 ≪ WIRED.jp
wired.jp/2015/09/11/github-coding-languages-open-source/
wired.jp/wp-content/uploads/2015/09/wiredus09101024x541.jpg



201 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 01:27:55.77 ID:JUZlHW5G.net]
Rubyがそんなに上位だと思えないけどなぁ

202 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 02:10:12.94 ID:xJrAsa7q.net]
ま、どうせcssとか入ってくる調査だし

でも混ぜこぜでもcssに負けてんのはちょっと面白い

203 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 04:58:03.64 ID:oXtx5tH/.net]
HTMLとJavaScriptとCSSのみっつが順位を競う
プログラミング言語ランキングとは
サイトの名前をwiredからweirdに変えた方がいい

204 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 13:10:32.88 ID:JUZlHW5G.net]
だよねぇ。おかしいよねぇ。
なんだかんだCは上位にいると思う。

205 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 13:17:01.58 ID:VGFicEEt.net]
9位は十分上位だろう
githubはもともとスクリプト書いてる人が多く使ってたから
ああいう順位なんだと思うよ

206 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 14:01:59.69 ID:kwHtj/5N.net]
マルチスレッドとグローバル変数の寿命に関する質問なのですが
detachしたスレッドが,メインスレッド終了後も生き続けてもグローバル変数にアクセスしても問題はありませんか?
StackOverflowなどには大丈夫だという回答があり、簡単なテストコードでも問題は無かったのですが
クラス内static変数にアクセスしたときに時々異常終了したことがあったので少し不安です

207 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 14:06:47.33 ID:JUZlHW5G.net]
便乗質問 メインスレッドを終了してもコスレッドは生きてるんでしたけ? まずそこから・・・

208 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 14:06:59.24 ID:5QpLz49+.net]
問題あるだろ

209 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 14:37:23.35 ID:kwHtj/5N.net]
>>203
生きてないですね(核爆

210 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 15:31:31.26 ID:Jf5oAWRg.net]
コンストラクタ() = delete;
これってなんですか



211 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 15:52:40.95 ID:uQU/vJQH.net]
cppreference.comでは以下のように説明されている
>Inhibiting the automatic generation of a default constructor by the compiler.

212 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 16:38:30.48 ID:Jf5oAWRg.net]
コンストラクタを書かないのとどう違うのですか?

213 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 16:40:31.69 ID:pEVoCQGH.net]
書かないと自動生成されるだろ

214 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 16:41:18.68 ID:9veCOfSe.net]
コンストラクタ書かなきゃいけなくなる

215 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 16:41:52.46 ID:9veCOfSe.net]
デフォルト以外の

216 名前:デフォルトの名無しさん [2015/09/12(土) 16:43:08.92 ID:Hpj3Z5wB.net]
ビッグ4の法則はコンストラクターには成り立たないからな

217 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 18:04:37.15 ID:fhFqy1Q7.net]
見たとおりコンストラクターが定義される
ただし使うとコンパイルエラーになる特別な本体で

定義されるので書かなかったときの自動生成は行われないし
privateで書いて生成禁止にしてもfriendからアクセス出来てしまうという誤りを防げる

218 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 21:36:31.32 ID:XAqQ9sMD.net]
素直に単純に

コンパイラのコンストラクタの自動生成を阻止する

とせずに

使えない特殊なコンストラクタを定義

コンストラクタがあるので自動生成されない

という回りくどいプロセスを踏んでいるのは何故ですか?

219 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 21:46:02.85 ID:mqPDPmPF.net]
>>214
どっちが回りくどいかもう一度考えてみたら?

220 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 21:48:41.33 ID:urgaTojg.net]
>>213の二段落目二行目のためでは



221 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 22:39:51.40 ID:fhFqy1Q7.net]
>>214
そりゃ>>207のサイトが嘘つきなだけで
自動生成を抑止するためじゃなく
使えない関数を定義することが目的だからね
ideone.com/LKN3q1

222 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 01:24:33.20 ID:T9Cd4+Hx.net]
目的は書く人次第だが

223 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 01:28:55.66 ID:Auzbsz6v.net]
つまり>>207>>217も目的を決めつけた嘘つきってことですね

224 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 02:17:23.86 ID:T9Cd4+Hx.net]
どうでもいい

225 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 03:41:04.36 ID:6aqKmbgS.net]
使えない関数を定義しているのではなく、そのシグネチャの関数がdeletedであることを宣言しているのだろう。

適用されるのは同じ翻訳単位だけなのでは?

226 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 04:33:23.08 ID:fzKWBIn4.net]
>>221
そのレスする意味ある?

227 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 05:08:08.47 ID:6aqKmbgS.net]
>>213みたいな無駄にややこしい上に誤った説明をそのままにしておくのは無責任なのでは?

228 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 05:42:13.47 ID:fzKWBIn4.net]
そうじゃなくて、そのレス何も説明してないでしょ
他人を批判する前に自分を省みろって

229 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 06:21:11.66 ID:oxWskyTT.net]
>>221
deleteが同じ翻訳しか適用されなくても
delete関数はインライン関数だから
違う翻訳単位でdeleteじゃかったらODR違反
問題ない

230 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 08:36:35.77 ID:GRWOhyHT.net]
std::queue<T>についてなんですが
clear()メソッドが無いのは何か理由有り?

一応pop()がデータを返さなくてfront()で先頭要素にアクセスしてからpop()すべき仕様なのは
極力先頭要素のコピーをしたくなくて、参照で済ませたいからだと推測できるのですが
clear()が無い理由はちょっと…



231 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 08:40:43.87 ID:1aU/2qC8.net]
>>226
データ構造上、コンテナを使い回すメリットがないから
新たにインスタンス作ればよろしいということ

232 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 08:43:14.92 ID:m2o7J/Xt.net]
>>226
まーたその話かよ
コンテナアダプタだからって結論が出ただろ

233 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 13:19:52.29 ID:BGQqu8BA.net]
clearが欲しいなら黙ってstd::dequeを使えばいいだけ
FIFOを使う場合にclearが必要になるのがおかしい

234 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 13:59:21.40 ID:21SWVEBe.net]
>FIFOを使う場合にclearが必要になるのがおかしい

へー、どうして?
FIFOを乱す順序の操作ではないよね?

235 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 15:45:14.55 ID:zCQU/fdL.net]
>>226
clearしたければclearする派生クラスを作ればいい
そういう設計だ

236 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 17:42:34.20 ID:aPjNmwB2.net]
>>226
>極力先頭要素のコピーをしたくなくて

pop()が要素を返す場合コピーコンストラクタが例外を投げる可能性があるので
例外安全を満たすことができなくなる。

237 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 17:59:22.43 ID:dMwVjMJU.net]
>例外安全を満たすことができなくなる

へー、どうして?

238 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 18:45:49.56 ID:ABWGqgkn.net]
popでデータを返さないのはコピー時に例外発生したときにコンテナの中身から取り除かれるわpopした中身受け取れないわになるのを防ぐためってのもある
あとtopで参照返すことによりswapなどを使う事により例外発生させることなく受け取ることが可能になる
C++11からmove出来るようになったからほぼいらなくなったけど

239 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 20:20:56.97 ID:M0wiS1Aa.net]
平面を二次元配列で表す時
array[width][height]
array[height][width]
どっちがいいですか?

240 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 20:22:35.56 ID:G58MCBrj.net]
>>236
そんなことはお前のやろうとしていること次第。
ここできくことじゃない。



241 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/09/13(日) 20:25:57.90 ID:io0Trfl5.net]
>>235
横向きに連続してアクセスするなら
array[height][width]
がいい。まあ、その辺はインライン関数で抽象化して、実測すればわかる。

242 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 21:21:42.16 ID:M3GBYhkY.net]
速度の差異を知りたいって事か。
変わるんすかねぇ

243 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 22:47:56.80 ID:q3JnkdTU.net]
何故かわらないと思うんですか?

244 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 23:01:44.40 ID:JxlRVXLx.net]
無礼な奴だな
まず変わると考える根拠を述べよ

245 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 23:26:04.26 ID:q3JnkdTU.net]
変わらないと思う理由が知りたかっただけです
ここ、C++スレですよね

246 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/09/13(日) 23:55:37.85 ID:io0Trfl5.net]
array[height]は、width個の横に連続したデータになるから、
横方向に連続したアクセスなら、早くなるはず。
先読みとかキャッシュも関係するかも。

247 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 23:57:05.44 ID:ABWGqgkn.net]
アクセス方法次第でCPUのキャッシュミスの発生率も変わるから速度も変わる

248 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 01:17:12.52 ID:h9CenDqd.net]
>>235
プログラムが完成したら入れ替えてテストしろよ

249 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 02:27:47.71 ID:WQ7njzDq.net]
なぜcolumn majorにしなかったのか

250 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 19:17:30.03 ID:nW8KHDe7.net]
質問です
template templateという機能がありますが、これをクラステンプレートではなくて
関数テンプレートを渡す機能はありますか?

codepad.org/pYejO9Fn

意図としては、ライブラリを作るにあたって、ユーザーからコールバックとして
関数テンプレートを受け取りたいです。
コードの最初のFooクラスのように、クラスで包んでoperator()を定義すれば
実現できます。しかし不格好なので、 bar のように普通に定義された関数テンプレートを
渡すことはできないでしょうか?



251 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 19:24:44.32 ID:cuv2HbJp.net]
>>246
関数テンプレートを渡す機能はありません

252 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 19:29:09.13 ID:nW8KHDe7.net]
>>247
そうか。あざす。残念。






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

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

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