другой, если тип первой специализации наследуется от типа второй
Или придётся всё время самостоятельно прописывать наследование следующим образом?
template<class T>
class A
{
T value;
}
template<>
class A<MyInt> :
public A<int>
{
}
У вас MyInt наследуется от int?
Расскажите как это работает :)
А что должно происходить с множественным наследованием?
Как вариант - несколько соответствующих наследований, например ``` template<> class A<MyInt1> : public A<int> { } class A<MyInt1> : public A<MyInt2> { } ``` Почему бы и нет?
Чисто технически, для этого нужно для типа T уметь получать список и типов его баз. Кажется, что без ввода рефлексии такой список не получить (или же будет открыта багофича в стандарте вроде magic get). Но, с другой стороны, кажется, что для решаемой задачи (кастить к контейнерам над базами) оно и не нужно
В gcc есть интринсики для получения баз, кстати.
Ну это не интересно, компайлерспецифик
Обсуждают сегодня