可能重复:
函数模板的部分特化
我在任何地方都找不到我的问题的解决方案,因为如果我用我想出的关键字进行搜索,我会得到适合不同问题的解决方案。我知道这必须以前问过,只是找不到解决方案。
假设我有一个函数模板:
template<class any> print(any value);
我可以像这样专门化它,比如说int
:
template<> print<int>(int value)
{
std::cout << value;
}
但是现在的问题是,我希望它也可以与向量一起使用。由于向量类是模板类,因此变得很困难。
像这样专门化功能:
template<class any> print<vector<any> >(vector<any> value) {}
会产生以下错误(MinGW g++):
FILE: error: function template partial specialization 'print<vector<any> >' is not allowed
请注意,函数 print 只是一个示例。
我该如何解决这个问题?