lambdas 和 `const std::function&` 参数 - 最小化副本

问题描述

如果我有这样的代码

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 (将#修改为@)