Selection between types is supported by the struct conditional in <type_traits>
We first show an example that uses conditional - after that the struct itself is studied