使用相同参数制作功能模板的最佳方法是什么?
例如:
template<class T>
int foo(const T &item) {
// ...
return item;
};
template<class T, class NotUsed>
char foo(const T &item) {
// ...
return item;
};
int main()
{
std::cout << foo(1) << std::endl; // 1
std::cout << foo('1') << std::endl; // 1
return 0;
}
答案 0 :(得分:4)
根据您的尝试,我建议将返回类型设置为模板参数。
template<class T, class Return = int>
Return foo(const T &item) {
// ...
return item;
};
int main()
{
std::cout << foo<int, int>(1) << std::endl; // 1
std::cout << foo<char, char>('1') << std::endl; // 1
return 0;
}