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
.