I believe this is a compiler bug. But more debugging is needed. There's a problem with how MSVC handles macros.
The macro et_check(false, "foobar error") is expended correctly to if((false) == false) {throw EtError("foobar error")} ... by GCC and clang and older versions of MSVC. But the latest MSVC does this if((false, "foobar error") == false) {throw EtError("foobar error")} ...
This is kinda weird. Properly worth a bug report to MSVC.
I believe this is a compiler bug. But more debugging is needed. There's a problem with how MSVC handles macros.
The macro
et_check(false, "foobar error")
is expended correctly toif((false) == false) {throw EtError("foobar error")} ...
by GCC and clang and older versions of MSVC. But the latest MSVC does thisif((false, "foobar error") == false) {throw EtError("foobar error")} ...
This is kinda weird. Properly worth a bug report to MSVC.