Есть такой код:
int main()
{
constexpr int flags = 2;
if constexpr (flags & 3) {
return 0;
}
return 1;
}
prog.cc:5:17: error: constexpr if condition evaluates to 2, which cannot be narrowed to type 'bool' [-Wc++11-narrowing]
if constexpr (flags & 3) {
^
https://wandbox.org/permlink/P4JWOgkWj8veamrfПричем без -Werror. Если подать -Wno-c++11-narrowing то тоже работает (как надо).
Кто прав? Баг ли?
P.S. Наиболее похожее что удалось нагуглить вот: https://stackoverflow.com/questions/41253121/strange-behavior-of-narrowing-in...


