1
我有以下一段代码,发现我无法将lambda函数的输出显式转换为bool。我在在线IDE http://ideone.com/上验证了这一点,并选择了C++ 14。lambda函数返回类型不工作
#include <iostream>
using namespace std;
int main() {
int number = 10;
int bar = 6;
auto numberisLarger = [&]() -> bool {return number > bar;};
bool isLarger = numberisLarger;
return 0;
}
但是,我收到编译错误如下。
error: cannot convert 'main()::<lambda()>' to 'bool' in initialization
bool isLarger = numberisLarger;
我明确地将其转换为布尔,为什么它不工作? 谢谢!
'numberisLarger'是一个函数。 –
这样称呼:'bool isLarger = numberisLarger();' – Amadeus
投票结束为“一个简单的印刷错误”,因为你的代码缺乏是parens。如果您来自Pascal背景:所有函数都需要在C(++)中显式调用。 – kay