I recently developed the C ++ 11 library, and I came to use this template a couple of times when the class that will actually be exposed to the user defines its inherited classes based on. I reproduced here the variational metaphor va_if that I use for this, but this could be done using boost::mpl::if_c or std::conditional .
template<typename bool_type, typename result_type, typename... Ts> struct va_if; template<typename result_type, typename... Ts> struct va_if<std::true_type, result_type, Ts...> { typedef result_type type; }; template<typename result_type, typename... Ts> struct va_if<std::false_type, result_type, Ts...> { typedef typename va_if<Ts...>::type type; }; template<typename T> class container_base { }; template<typename T> class container_integral_base : public container_base<T> { }; template<typename T> class container_floating_point_base : public container_base<T> { };
I am wondering if this inheritance definition template has a compile time name?
source share