class A{ typedef tuple<int, double, int> list; };
class B{ typedef tuple<int, int> list; };
class C{ typedef tuple<int, double, char> list; };
template <typename... args>
class My_class{
//need a tuple type that is combination of all the tuple named list in the class A B C
};
My_class<A, B, C> obj;
My_class에 typedef를 작성하여 tuple<int, double, int, int, int, int, double, char>
과 같도록하려면 어떻게해야합니까?다른 튜플을 연결 한 튜플을 typedef하는 방법은 무엇입니까?
template <typename... Args>
class My_class{
typedef decltype(tuple_cat(declval<typename Args::list>()...)) list;
};
그것은 추한 보이지만, 불행히도 C++ 표준에서 튜플 타입에 가입 할 수있는 방법이 없다 : 당신은 당신이 원하는, A::list
, B::list
및 C::list
공개적으로 액세스 할 수 있습니다 가정
[std :: tuple_cat] (http://en.cppreference.com/w/cpp/utility/tuple/tuple_cat)? – Bernard