#include <iostream>
void IsTrue(const bool value) {
if (value) {
std::cout << "value is True!\n";
}
}
int main()
{
IsTrue([]() { ; /* some lambda */ });
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
value is True!
Run Code Online (Sandbox Code Playgroud)
为什么lambda会评估trueGCC和Clang?MSVC无法构建此(无法将lambda转换为bool).
这是编译器错误吗?或者标准的哪一段允许这个?