Предположим, у меня есть следующий класс шаблона:
template<unsigned char I, unsigned char F>
class FOO
{
....
}
В основной функции у меня много таких переменных, с разными (I, F), такими как:
int main()
{
.....
FOO<4, 2> a;
FOO<6, 3> b;
......
}
Я хочу сохранить значение I или F для определенных переменных в моей основной функции. Конечно, я могу определить открытые / закрытые члены для FOO и сохранить значение (I, F) внутри конструктора FOO, например
template<I,F>
FOO<I,F>::FOO(){
i = I;
f = F;
}
Недостаток этого метода очевиден: он увеличивает размер FOO. IMO, (I, F) любой переменной может быть определен во время компиляции, поэтому должен быть способ сделать это без создания локальной переменной.