Предположим, у меня есть следующие классы:
struct baseA {
virtual int foo() {return 0;}
};
struct baseB {
virtual int bar() {return 1;}
};
struct derived : public baseA, public baseB {
typedef std::tuple<baseA, baseB> base_types;
virtual int buzz() {return 2;}
};
И я хочу получить базовые классы derived
по шаблону, я могу использовать такой код:
template <typename T>
struct basetraits{
typedef T::base_types types;
};
std::tuple_element<0,basetraits<derived>::types>::type
std::tuple_element<1,basetraits<derived>::types>::type
Если я не определяю base_types
в классе derived
или не использую какой-либо макрос, возможно ли получить baseA
и baseB
другими методами?