lambda函数返回类型不起作用

Sar*_*rah 0 c++ 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;
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到编译错误如下.

error: cannot convert 'main()::<lambda()>' to 'bool' in initialization
     bool isLarger = numberisLarger;
Run Code Online (Sandbox Code Playgroud)

我明确地将它转换为bool,为什么它不起作用?谢谢!

Sto*_*ica 5

你需要执行lambda,就像常规函数一样.

bool isLarger = numberisLarger();
Run Code Online (Sandbox Code Playgroud)