加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 为什么lambda会返回bool?

发布时间:2020-12-16 06:47:15 所属栏目:百科 来源:网络整理
导读:我已经开始学习C 11和C 14,我有一个问题.为什么lambda不会返回23? templateclass Tauto func(T t){ return t;}int main(int argc,char *argv[]){ QCoreApplication a(argc,argv); auto abc = []()-auto { return func(23); }; qDebug() abc; // output: tru
我已经开始学习C 11和C 14,我有一个问题.为什么lambda不会返回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:

qDebug() << abc();

目前<<重载是将lambda的类型转换为bool,然后输出.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读