Можно ли специализировать класс шаблона для принятия дополнительных параметров шаблона?C++ специализирует класс шаблона для принятия дополнительного параметра шаблона
Например:
template <typename T>
struct X {
void foo() { cerr << "Generic" << endl;}
};
template <>
template <bool b>
struct X<int> {
void foo() { cerr << "Specialization" << endl;}
};
Я не мог сделать вышеупомянутую работу с г ++, но может быть, есть какой-то подвох, который сделает эту работу.
Edit: Я не хочу, чтобы переместить шаблон <bool b>
к базовому шаблону X, потому что это особенность только X<int>.
Если я должен, есть способ, которым я могу позволить пользователям не требуется указывать какие-либо значения для этого? Мне бы очень понравился подход, который не идет по этому маршруту.
Слышали ли вы о частичной специализированной специализации? –
"* Если мне нужно, есть ли способ, которым я могу позволить пользователям не указывать какие-либо значения для него? *« Да - параметры шаблона по умолчанию. Например. 'template'. –
ildjarn
Как сказал @ildjarn, вы можете - но я бы предупредил, что в большинстве случаев лучше использовать какой-то другой тип, кроме bool. 'mytempl' vs. 'myempl ' обычно более значим, чем 'mytempl ' vs. 'mytempl '. –