是否有办法创建模板函数,使其接受泛型数据类型的参数,如int和float以及STL容器的参数,如vector和array。
例如,像这样:
template <some template expression X>
T doSomething()
{
//do Something
return T;
}
然后我称之为:
int a = doSomething<int>();
float b = doSomething<float>();
vector<int> c = doSomething<int, std::vector>(); //OR
vector<int> c = doSomething<std::vector<int>>(); //Either this or above
这可能吗?你有默认的模板参数吗?重复相同的功能两次,第一次使用一个模板,第二次使用模板模板参数,然后传递
int a = doSomething<int>();
vector<int> c = doSomething<int, std::vector>();
作品!我找到了一个解决方案,告诉我们如何传递模板模板参数。但像这样的重载是唯一的解决方案吗?