C++ 获取第n种类型的可变模板?
如何获得第n种类型的可变模板?比如说C++ 获取第n种类型的可变模板?,c++,variadic-templates,C++,Variadic Templates,如何获得第n种类型的可变模板?比如说 template<typename... Args> class MyClass { Args[0] mA; // This is wrong. How to get the type? }; 模板 类MyClass { Args[0]mA;//这是错误的。如何获取类型? }; 您可以使用std::tuple: #include<tuple> template<typename... Args> class
template<typename... Args>
class MyClass
{
Args[0] mA; // This is wrong. How to get the type?
};
模板
类MyClass
{
Args[0]mA;//这是错误的。如何获取类型?
};
您可以使用std::tuple
:
#include<tuple>
template<typename... Args>
class MyClass
{
typename std::tuple_element<0, std::tuple<Args...> >::type mA;
};
#包括
模板
类MyClass
{
typename std::tuple_元素::类型mA;
};
如果您想要不使用std::tuple的东西
template<std::size_t N, typename T, typename... types>
struct get_Nth_type
{
using type = typename get_Nth_type<N - 1, types...>::type;
};
template<typename T, typename... types>
struct get_Nth_type<0, T, types...>
{
using type = T;
};
模板
结构获取第n个类型
{
使用type=typename获取第n个类型::type;
};
模板
结构获取第n个类型
{
使用类型=T;
};
模板
使用get=typename get\n\u type::type;
模板
类MyClass
{
获得硕士学位;
};
检查std::tuple实现(使用混合模板的继承)
template<std::size_t N, typename... Args>
using get = typename get_Nth_type<N, Args...>::type;
template<typename... Args>
class MyClass
{
get<0, Args...> mA;
};