Рассмотрим следующийшаблон подклассов с частичной специализации
template<typename Type, size_t Dimensions>
struct Base
{
Base(/*some args*/) { /*do something*/ }
};
template<size_t Dim>
class Derived : Base<double,Dim> {};
Derived не наследует конструктор базы, поскольку она предполагает, что база является частичной специализации и, следовательно, требует некоторой другой конструктор. Однако это не так в моем случае. В основном я хочу, чтобы у него было другое имя в разных ситуациях. Я ищу решение, отличное от макросов или следующего, если существует.
template<size_t Dim>
struct Derived
{
typedef Base<double, Dim> Type;
}
в основном потому, что я не люблю использовать
Derived<n>::Type
везде и не уверен, что хочу
typedef Derived<n>
для каждого п я использую.
'шаблон с использованием производного = Base ;', теперь просто использовать 'Derived '. –
ildjarn
это помогает, огромное спасибо! –