为什么 lambda 返回 bool?

Why lambda returns bool?(为什么 lambda 返回 bool?)

本文介绍了为什么 lambda 返回 bool?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经开始学习 C++11 和 C++14,我有一个问题.为什么 lambda 不返回 23?

I've started learning C++11 and C++14 and i have a question. Why lambda not returns 23?

template<class T>
auto func(T t)
{
    return t;
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    auto abc = []()->auto { return func(23); };
    qDebug() << abc; // output: true

    return a.exec();
}

推荐答案

你需要真正执行 lambda:

You need to actually execute the lambda:

qDebug() << abc();

当前 << 重载正在将 lambda 的 type 转换为 bool,并输出.

Currently the << overload is converting the type of the lambda to a bool, and outputting that.

这篇关于为什么 lambda 返回 bool?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:为什么 lambda 返回 bool?