C++ C++;嵌套结构&x27;typedefs(元类)编译错误

C++ C++;嵌套结构&x27;typedefs(元类)编译错误,c++,template-meta-programming,C++,Template Meta Programming,我想创建嵌套的模板结构typedef来创建一个带有元方法的元类,它可以有不同的参数。示例代码如下: #include <iostream> using namespace std; template <int one, int two, int three> struct vector_c{ enum{ v1 = one, v2 = two, v3 = three }; template <typename vec

我想创建嵌套的模板结构typedef来创建一个带有元方法的元类,它可以有不同的参数。示例代码如下:

#include <iostream>
using namespace std;

template <int one, int two, int three>
struct vector_c{
    enum{
    v1 = one,
    v2 = two,
    v3 = three
    };

    template <typename vector>
    struct sum{
        typedef vector_c<
            one+vector::v1,
            two+vector::v2,
            three+vector::v3
        > type;
    };
};


int main() {
    vector_c<1,2,3>::sum<vector_c<3,2,1>>::type asdf;
    return 0;
}
#包括
使用名称空间std;
模板
结构向量{
枚举{
v1=1,
v2=2,
v3=三
};
模板
结构和{
类型定义向量<
一+向量::v1,
二+向量::v2,
三+向量::v3
>类型;
};
};
int main(){
向量c::sum::类型asdf;
返回0;
}
这给了我以下错误:

prog.cpp:24:error:“::type”尚未声明prog.cpp:24:error: 模板参数3是无效的程序cpp:24:错误:模板参数1 无效

示例可在此处找到:


我怎样才能实现我的目标?有可能吗?

这在C++11中应该可以工作,看起来您使用了一个非常旧的编译器

vector_c<1,2,3>::sum<vector_c<3,2,1>>::type asdf;
vector_c<1,2,3>::sum<vector_c<3,2,1> >::type asdf;
//                                  ^