用于通用数据类型和STL容器的C ++模板

时间:2018-02-24 04:38:46

标签: c++ templates stl containers

是否有办法创建模板函数,使其接受泛型数据类型的参数,如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>();

作品!我找到了一个解决方案,告诉我们如何传递模板模板参数。但像这样的重载是唯一的解决方案吗?

0 个答案:

没有答案