C++ 复杂模板Typename的别名

C++ 复杂模板Typename的别名,c++,templates,typename,C++,Templates,Typename,我在文件段.h中有以下定义 template<typename T, typename VecType = mat::vec3_gen<T> > class Segment { // class } 我不想使用typename VecType=mat::vec3\u gen,而是想为类型使用一些别名 并且能够在文件之外使用它。如何操作?由于类型VecType依赖于T,因此可以将类型别名设置为段的成员 现在,您可以在其他代码中使用它: auto vec = Seg

我在文件段.h中有以下定义

template<typename T, typename VecType = mat::vec3_gen<T> > class Segment
{
    // class
}
我不想使用typename VecType=mat::vec3\u gen,而是想为类型使用一些别名 并且能够在文件之外使用它。如何操作?

由于类型VecType依赖于T,因此可以将类型别名设置为段的成员

现在,您可以在其他代码中使用它:

auto vec = Segment<int>::VecType;
由于类型VecType依赖于T,因此可以将类型别名设置为段的成员

现在,您可以在其他代码中使用它:

auto vec = Segment<int>::VecType;

在课堂上创造一个答案?我不理解这个问题。只需编写typename VecType=SomeAlias即可。或者您只是希望能够在段类之外引用VecType?只需使用AVecType=VecType在模板内部编写。在类中创建一个?我不理解这个问题。只需编写typename VecType=SomeAlias即可。或者您只是希望能够在段类之外引用VecType?只需使用AVecType=VecType在模板内部编写即可。为什么我们不能使用VecType=mat::vec3\u gen来编写模板,而只需使用VecType@康斯特:哦,你也可以这么做!我假设OP有一个有点复杂的段类,别名驻留在类中是有意义的。为什么我们不能使用VecType=mat::vec3_-gen做模板,而只使用VecType某物@康斯特:哦,你也可以这么做!我假设OP有一个比较复杂的段类,并且别名驻留在该类中是有意义的。