问题描述
int executeTypeErased(const std::function<int()>& f)
{
return f();
}
void test()
{
executeTypeErased([] {
return 42;
});
}
当我调用 test()
时,我能保证不会因为 std::function
而发生堆分配吗?我知道如果我将它包装在 std::reference_wrapper
中,我可以保证不会发生堆分配,但是我不太确定将未修饰的 lambda 作为参数,提升为 std::function
。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)