C++相談室 part129 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0728デフォルトの名無しさん (ワッチョイ f35b-tpgq)
2017/03/19(日) 02:14:29.60ID:7dJ8iAqk0じゃあついでに言っておくと、以下だね。
callbacks.push_back([&]{a.func();}); // (O) クロージャ作成が無駄
callbacks.push_back(a->func)); // (P) この書き方は現在出来ないが、こっちの方がいい
JavaScriptでは(O)は無駄だとされる。クロージャが余分にメモリを食うから。
クロージャ無しで書けるならその方がいい。コード領域も無駄だし。
これはC++も同じだし、C++の方が厳しいはずだが。
とはいえstd::bindの仕様が重すぎるのでこちらもイマイチだ。
C++ならどっちが重いかは微妙だね。
なおJavaScriptのbindは「前から順に固定される」だけの仕様なので、
固定した引数分のデータ領域しか各bindインスタンスには必要ない。
というかC++のbindが妙にリッチな仕様なのが謎だが。C++っぽくない。
■ このスレッドは過去ログ倉庫に格納されています