Есть ли правильное правило, когда использовать шаблон шаблона вместо использования шаблонов членов? Как я понимаю, ваши вынуждены использовать шаблон класса, если ваш класс содержит шаблоны переменного элемента, но в противном случае вы свободны от выбора, так как это:шаблон шаблона против шаблона члена
template<typename T>
class Foo
{
public:
void someMethod(T x);
};
ведет себя, как это:
class Foo
{
public:
template<typename T>
void someMethod(T x);
};
Is мое требование не так? Или есть какое-нибудь эмпирическое правило, когда нужно использовать что?
Шаблон имеет смысл, если его использование уменьшит дублирование кода. Вы можете рассматривать его как метод, который поможет обобщить функциональность. Используйте шаблон класса, если для каждого набора параметров шаблона требуется другой тип. Используйте шаблон метода, если вам нужен другой метод для каждого набора параметров шаблона. – jxh