我猜这很简单,只是想不出该怎么做-假设作为参数传入的每个类型都有一个成员typedef称为“ t”,我该如何构成该成员的元组?
#include <tuple>
template <typename T>
struct A{
typedef T t;
};
template <typename ...Ts>
struct B{
std::tuple<Ts::t...> ts; // I want a tuple of Ts::t type...
};
int main()
{
B<A<int>,A<float>> b;
return 0;
}
答案 0 :(得分:0)
类模板std::tuple
的参数是类型。
Ts::t
是dependent name
。
要声明从属名称是一种类型,必须在其之前使用typename
关键字。
现在您知道为什么typename Ts::t...
有效而Ts::t...
无效的原因。