gpt4 book ai didi

c++ - 将 lambda 函数指定为默认参数

转载 作者:IT老高 更新时间:2023-10-28 12:37:39 35 4
gpt4 key购买 nike

如何将 lambda 指定为默认参数?我想这样做:

int foo(int i, std::function<int(int)> f = [](int x) -> int { return x / 2; })
{
return f(i);
}

但我的编译器(Mac OS X 上的 g++ 4.6)提示:

error: local variable 'x' may not appear in this context

编辑:事实上,这是一个编译器错误。上述代码适用于最新版本的 gcc (4.7-20120225)。

最佳答案

你可以使用重载:

int foo(int i)
{
return foo(i, [](int x) -> int { return x / 2; });
}

int foo(int i, std::function<int(int)> f)
{
return f(i);
}

关于c++ - 将 lambda 函数指定为默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6025118/

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