我有以下代码,发现我无法将lambda函数的输出显式转换为bool。我在在线IDE http://ideone.com/上验证了这一点,我选择了C ++ 14。
#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;
我明确地将它转换为bool,为什么它不起作用? 谢谢!
答案 0 :(得分:5)
你需要执行lambda,就像常规函数一样。
bool isLarger = numberisLarger();