Non si può fare con uno switch, devi ricorrere ad una serie di if ... else if.
Amaro C++, il gusto pieno dell'undefined behavior.
Regole del Forum