制作嵌套类型的元组

时间:2016-11-02 16:47:25

标签: c++ c++11 variadic-templates

我有一些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;
};

这不会编译。我怎么能做出这样的元组?

1 个答案:

答案 0 :(得分:1)

T是从属名称,您需要添加typename。像这样:

template<typename ...T>
struct my_tuple
{
     typedef std::tuple<typename T::value_type...> tuple_type;
};