The value of a 
condition
that is an initialized declaration
is the value of the declared variable,
or the value of the 
expression otherwise
.The value of the condition shall be of integral type, enumeration type, or class
type
.If of class type, the
condition is contextually implicitly converted (
[conv]) to
an integral or enumeration type
.If the (possibly converted) type is subject to integral
promotions (
[conv.prom]), the condition is converted
to the promoted type
.Any
statement within the 
switch statement can be labeled with one or
more case labels as follows:
where the 
constant-expression shall be
a converted constant expression (
[expr.const]) of the
adjusted type of the switch condition
.No two of the case constants in
the same switch shall have the same value after conversion
.