Я хочу шаблонировать одну функцию для повторного использования и специализации кода.
Сигнатура функции - это что-то вроде int DoStuff(FooBar &a);
, где FooBar - Foo<BarX>
, то есть экземпляр шаблона, который я не могу набрать typedefзаранее.
Я пытался сделать template <class T> int DoStuff(Foo<T> &a);
и template <class T> int DoStuff(T &a);
, но я получаю обычные ошибки зашифрованного компоновщика, которые даже немного не помогают.
Не удалось найтиучебники по этой теме, которые можно найти только для упрощенного использования шаблонов.
Код будет называться так:
Foo<Bar1> var1;
int res1 = DoStuff(var1);
Foo<Bar2> var2;
int res2 = DoStuff(var2);
etc.
Я пытаюсь сделать что-то невозможное?