#include <functional>
struct T {
explicit operator bool() { return true; }
};
int main() {
T t;
if(t) {} // OK
auto l = [&]() {
if (t) {} // Error
};
}
ここでの MSVC の動作は奇妙に一貫性がないように見えます。OK 行とエラー行の唯一の違いは、一方がラムダにあることです。これはバグですか?