如何声明类型的容器

问题描述 投票:0回答:1

我有几个模板类/函数应该只用一个简短的类型列表实例化。我想做一个类型的向量(或任何容器),但我找不到怎么做,我期待这样的事情:

std::vector<std::type_info> myTypes = {typeid(int)};
template void myFunc<myTypes[0]>();

此代码无法编译!我正在为此寻找正确的语法。

c++ templates
1个回答
1
投票

您可以使用

std::tuple
创建类型列表,例如

using type_list = std::tuple<int, double>;
template <std::size_t I>
using type_list_element_t = std::tuple_element_t<I, type_list>;

然后你可以用它来实例化你的模板

template void myFunc<type_list_element_t<0>>();

myFunc
.
实例化
int

© www.soinside.com 2019 - 2024. All rights reserved.