我有一些A和B类:
struct A
{
typedef int value_type;
};
struct B
{
typedef float value_type;
};
我想通过variadic模板创建一个A :: value_type和B :: value类型的元组。 我期待这样的事情:
template<typename ...T>
struct my_tuple
{
typedef std::tuple<T::value_type...> tuple_type;
};
这不会编译。我怎么能做出这样的元组?
答案 0 :(得分:1)
T
是从属名称,您需要添加typename
。像这样:
template<typename ...T>
struct my_tuple
{
typedef std::tuple<typename T::value_type...> tuple_type;
};