Есть такой код:
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...