This question already has answers here:
Where and why do I have to put the “template” and “typename” keywords?
(6个答案)
3年前关闭。
我有一些班级A和B:
我想通过可变参数模板制作一个A :: value_type和B :: value类型的元组。
我期望这样的事情:
这不会编译。我该如何制作这样的元组?
(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