gpt4 book ai didi

c++11 - 声明后定义lambda函数?

转载 作者:行者123 更新时间:2023-12-02 06:59:33 24 4
gpt4 key购买 nike

我想做这样的事情(根据某些条件定义一个 lambda 函数):

auto update;
if(condition)
{
update = [this]() {this->someField += 1;};
}
else
{
update = [this]() {this->someField -= 1;};
}

update();

这真的有可能吗?此代码的 gcc-4.8 错误是

error: declaration of ‘auto update’ has no initializer

最佳答案

这是不可能的,因为 auto 变量需要一个初始化表达式来推断类型,但您可以将更新声明为 std::function。 :

std::function<void()> update;
...

关于c++11 - 声明后定义lambda函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23634924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com