A switch is a decision construct, but I would argue that it's not a conditional construct, because there are expressions involving == that cannot be mapped to a switch.
1 2 3 4 5 6 7 8 9 10
std::string s = "hello";
// Valid:
if (s == "hello"){
}
// Invalid:
switch (s){
case"hello":
break;
}
A switch is a selection statement and is 'none of the above'.
http://www.cplusplus.com/doc/tutorial/control/
http://en.cppreference.com/w/cpp/language/switch