Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
たとえば、関数テンプレートがあります
template<class Fun> void Foo(Fun f) { ... }
引数は関数オブジェクトまたは関数ポインタです。通常の関数ポインタの場合、関数をインライン化できないためパフォーマンスが良くありません。ここでラムダ関数を使用するのはどうですか? ありがとう。
あなたが言うように、関数ポインターを介した呼び出しは、ターゲット関数が実行時にしかわからない可能性があるため、インライン化できないことがよくあります。
ここでラムダをインライン化できます。その型 (テンプレート パラメーターとして推定されるFun) はコンパイル時に認識されます。したがって、関数自体 ( Fun::operator()) も既知です。
Fun
Fun::operator()