C++相談室 part129 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0733デフォルトの名無しさん (ワッチョイ f35b-tpgq)
2017/03/19(日) 02:51:38.54ID:7dJ8iAqk0あーお前がアホだということはよく分かったわ。
まともに議論する気なら、お互いが見ているものが同一であることを確認しないといけない。
>>727を見たらアホかと思うのは道理だろ。
そして>>732もアホかと思うよ。関数内部で何を作ってもそれは最適化されるよ。
それは一時変数を除去すればいいだけなのだから。
そうではなくて、例えば以下にしないといけない。
int main(){
auto f = std::bind(&something::func,ptr);
bind(f);
}
int bind(std::function<...> f){
return f(); // bind済みのfを呼ぶコストをここで計測する
}
再度言うが、関数ポインタは外部から与えないと意味無いんだよ。
てかお前ら実は全く関数ポインタ使ってないだろ。
だから使い方自体を知らないんだよ。
これで、bind/関数オブジェクト/クロージャで呼び出しコストを比べてみなよ。
当たり前だが上記だとbind呼んで終わりになるけど、
もちろんその先のターゲット(something::func)が呼ばれるまで見るんだよ。
つまりstd::bind内部のコードもね。それが呼び出しコストなんだから。
それで、あらかじめ計算済みとかいうアホなオチはマジで止めてくれ。
一般的にポインタを与えた場合、それが無理なことくらい分かるだろ。
■ このスレッドは過去ログ倉庫に格納されています