This question already has answers here:
What are some uses of template template parameters?
(10个回答)
5年前关闭。
简单来说,我可以将
我希望通过container_types生成最后两个数据类型。
如果这不可行,那我该如何实现。
请注意,我必须用
(10个回答)
5年前关闭。
简单来说,我可以将
std::vector
作为模板参数传递。以下示例列表用法tempate<typename container_t, typename value_t>
struct container_types
{
typedef container_t<value_t> value_container_t;
typedef container_t<pair<value_t> pair_container_t;
};
我希望通过container_types生成最后两个数据类型。
如果这不可行,那我该如何实现。
最佳答案
是的,像这样
#include <iostream>
#include <vector>
template <template<typename T> class container_t, typename value_t>
struct container_types
{
typedef container_t<value_t> value_container_t;
typedef container_t<std::pair<value_t,value_t > > pair_container_t;
};
template <typename T>
using my_vector = std::vector<T>;
int main(int argc,char** argv)
{
container_types<my_vector,int>::value_container_t buff(100);
std::cout << buff[50] << std::endl;
}
请注意,我必须用
std::vector
包装my_vector
,因为std::vector
实际上有几个模板参数。关于c++ - 部分类型作为模板参数c++ ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22387356/
10-11 23:15