再帰ラムダ関数は、通常の再帰関数と比較してオーバーヘッドを引き起こしますか?(それらをstd ::関数に取り込む必要があるため)
この関数と通常の関数のみを使用する同様の関数との違いは何ですか?それは、コンパイラによって自動的に作成されたいくつかのクラスの)(演算子を呼び出すことと同じになるよう再帰ラムダのオーバーヘッド
int main(int argc, const char *argv[])
{
std::function<void (int)> helloworld = [&helloworld](int count) {
std::cout << "Hello world" << std::endl;
if (count > 1) helloworld(--count);
};
helloworld(2);
return 0;
}
あなたの主な問題はコンパイラの最適化がより少なくなるhttp://ideone.com/QsZVfH – stefan
ニース!なぜアイデアはありますか?コンパイラは、このコードが通常の関数呼び出し(ノーキャプチャ、しかしそれ自体)に似ていると推測できませんでしたか? – 3XX0
@ fscanそれは再帰的なラムダ関数なので、私はする必要があります。型推論はここでは動作しません – 3XX0