lambda函数返回类型不起作用



我有以下代码,发现我无法将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;

我确实明确将其转换为布尔,为什么它不起作用?谢谢!

您需要执行lambda,就像常规功能一样。

bool isLarger = numberisLarger();

相关内容

最新更新