У меня есть функции-члены шаблона, но я не могу понять, как их можно создать, когда я их правильно использую. Структура выглядит следующим образом:
// foo.h
class Foo {
template<typename T>
T Func(T);
}
#include "foo.tpp"
// foo.tpp
template<typename T>
T Func(T input) {return(input);}
Как создать экземпляр шаблона, если я хочу реализовать следующий код в основной функции?
//main.cpp
#include "foo.h"
int main()
{
Foo obj;
int int_input, int_output;
int_output = obj.Func(int_input);
double double_input, double_output;
double_output = obj.Func(double_input);
return 0;
}
Я проверил ответы для похожих вопросов, таких как Создание экземпляра функции-члена шаблона , но я не хочу создавать экземпляры всех функций-членов для всех комбинаций каждый раз, когда я их использую. Другим вариантом может быть определение класса как класса шаблона и создание экземпляров различных классов с помощью template class Foo<int>;
. Однако это вынуждает меня определять разные классы для разных типов функций-членов, что я не предпочитаю. Есть ли другое решение? Большое спасибо!