#include <iostream>
void IsTrue(const bool value) {
if (value) {
std::cout << "value is True!\n";
}
}
int main()
{
IsTrue([]() { ; /* some lambda */ });
return 0;
}
Вывод:
value is True!
Почему лямбда оценивается до true
на GCC и Clang? MSVC не может построить это (не может преобразовать lambda в bool).
Это ошибка компилятора? Или какой пункт стандарта позволяет это?