Studio 12.6 is inconsistent about uniform initialization from bool to unsigned types.
bool b;
unsigned u{b};
int i{b};
test.cpp, line 2: Error: Narrowing conversion of 'bool' value to 'unsigned' is not allowed here.
1 Error(s) detected.
Same goes with short and long types.
As the standard dictates, narrowing conversion from a non-constant integral only happens if destination type cannot represent all the values of the original type. Obviously all integer types are able to represent 0 and 1 and this is a bug in CC