This question already has answers here:
Where and why do I have to put the “template” and “typename” keywords?
                                
                                    (6个答案)
                                
                        
                                3年前关闭。
            
                    
我有一些班级A和B:

struct A
{
    typedef int value_type;
};
struct B
{
    typedef float value_type;
};


我想通过可变参数模板制作一个A :: value_type和B :: value类型的元组。
我期望这样的事情:

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


这不会编译。我该如何制作这样的元组?

最佳答案

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

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

关于c++ - 制作一个嵌套类型的元组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40385347/

10-13 07:05