gpt4 book ai didi

c++ - 未在 lambda 内部调用显式运算符 bool — MSVC 错误?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:23 24 4
gpt4 key购买 nike

#include <functional>

struct T {
explicit operator bool() { return true; }
};

int main() {
T t;

if(t) {} // OK

auto l = [&]() {
if (t) {} // Error
};
}

MSVC 的行为在这里似乎奇怪地不一致; OK 行和 Error 行之间的唯一区别是它们在 lambda 中。这是错误吗?

最佳答案

Is this a bug?

是的,绝对是。您的程序没有任何问题,bool 转换运算符在两种情况下都应被调用。

关于c++ - 未在 lambda 内部调用显式运算符 bool — MSVC 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16467780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com