The C++11 draft says about initializer lists:
"If a narrowing conversion (see below) is required to convert any of
the arguments, the program is ill-formed."
and
"A narrowing conversion is an implicit conversion...
from an integer type or unscoped enumeration type to an integer type
that cannot represent all the values of the original type, except where
the source is a constant expression..."