2013-04-11 1 views

ответ

27

Вы можете использовать std::tuple:

#include<tuple> 

template<typename... Args> 
class MyClass 
{ 
    typename std::tuple_element<0, std::tuple<Args...> >::type mA; 
}; 
5

Если вы хотите что-то без использования 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; 
}; 

Чем

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; 
}; 
+0

версия с 'std :: tuple_element <> :: type' более удобна. – 23W

 Смежные вопросы

  • Нет связанных вопросов^_^