Я хочу, чтобы шаблон выбирался из двух типов на основе некоторого условия. Например.
struct Base {};
template <typename T1, typename T2>
struct test
{
// e.g. here it should select T1/T2 that is_base_of<Base>
typename select_base<T1, T2>::type m_ValueOfBaseType;
};
Конечно, передать условие select_base (чтобы сделать его общим) было бы полезно, но жестко запрограммированное решение было бы проще и лучше.
Вот пример решения, которое я пробовал, но он всегда выбирает T1: http://ideone.com/EnVT8
Вопрос заключается в том, как реализовать шаблон select_base.