Предположим, у меня есть два базовых класса с кучей typedefs:
struct X {
typedef int type1;
typedef float type2;
// A bunch of other typedefs.
};
struct Y {
typedef long type1;
typedef char type3;
// Some other typedefs.
};
struct Z : public X, public Y {
};
Как мне указать, я хочу, чтобы Z наследовал все определения типов от X, без разрешения конфликтов для каждого типа вручную? Я имею в виду код O (1) для достижения этой цели вместо O (n), где n - количество типов конфликтов. Также в случае метапрограммирования точные определения типов в X и Y неизвестны, поэтому ручное разрешение конфликта невозможно.
В случае одиночного наследования он автоматически использует typedef базового класса, поэтому мне не нужно указывать их вручную.