Предположим, у меня есть этот класс:
template</*some other parameters here */class toggle>
class Foo
{
void function();
//Lots of other non-parametrized member functions
}
Теперь, если переключатель имеет некоторый определенный тип, я хочу, чтобы функция использовала альтернативную реализацию, а во всех других случаях я хочу, чтобы она использовала стандартную реализацию,Это должно быть сделано полностью во время компиляции, так как внешние пользователи класса должны иметь возможность создавать этот шаблон, который (намеренно, для экономии памяти и небольшой производительности) испытывает недостаток в некоторой функциональности.
Подвох: Простая специализация всего класса нереалистична, поскольку у Foo будет много других методов, не зависящих от этого переключателя, которые также должны будут быть реализованы снова, что делает все огромной тратойпространства.