One of the very basic techniques of C++ meta-programming is to provide simple selector classes that provide to refer to a type from a (public) typedef member.
The basic pattern for type selections based on a condition applied to the template parameters passed, or even independently looks like the following code demonstrates:
A compiled and running example of the above code can be found here.