说我有一个我要定义的lambda。我可以这样做,
auto foo = [] (int x)
{
return x == 42;
};
或者,
std::function<bool(int)> foo = [] (int x)
{
return x == 42;
};
第二个是否有任何惩罚? std::function
是否有开销我应该警惕?我不经常使用它;只有在做递归时。
答案 0 :(得分:3)
使用std::function确实需要花费大量费用来讨论这笔费用,您可以阅读Efficient Use of Lambda Expressions and std::function。