トップページ > プログラム > 2017年03月19日 > F98WB86R0

書き込み順位&時間帯一覧

59 位/273 ID中時間01234567891011121314151617181920212223Total
書き込み数2000000000000000000000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん (ワッチョイ 738b-UnlH)
C++相談室 part129 [無断転載禁止]©2ch.net

書き込みレス一覧

C++相談室 part129 [無断転載禁止]©2ch.net
714 :デフォルトの名無しさん (ワッチョイ 738b-UnlH)[sage]:2017/03/19(日) 00:13:07.69 ID:F98WB86R0
>>710-712
長文乙だがstd::bind()が(テンプレート関数なので)インライン展開されるということが何を含意し、
関数オブジェクトと組み合わせたときどういう効果があるかあんまお分かりではなさげ

std::bind()内の第1引数への操作がインライン展開されるならば(そのようにstd::bind()自体が書かれているならば
第1引数の操作に関して
>人間が見れば簡単に分かること
は、
>コンパイラが見れば簡単に分かること
と一致する(>>709の「std::bind()自体の書き方(中略)がよほどアレでない限りは」がソレを指してゐる

で、第1引数が関数オブジェクトでありかつF::calc()が仮想関数で無い限りは、F::calc()というシンボルのアドレスが
コンパイル時に決まるから、直接呼出しのコードにできる
第1引数がポインタの場合はそうとは限らず、std::bind()の呼び出しの外もみてポインタが指すシンボルが一意であることまで
確認しないとコンパイラはF::calc(this, x, 2)というcallで済むところを(*p)(this, x, 2)的なコードにしかできない
C++相談室 part129 [無断転載禁止]©2ch.net
716 :デフォルトの名無しさん (ワッチョイ 738b-UnlH)[sage]:2017/03/19(日) 00:18:40.25 ID:F98WB86R0
訂正
誤: F::calc()というシンボルのアドレスがコンパイル時に決まるから、直接呼出しのコードにできる
正: F::calc()というシンボルの呼び出しであることがコンパイル時に確定するから、直接呼出しのコードにできる


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。