我上课了
template<size_t N, size_t M>
class Matrix {
// ....
};
Run Code Online (Sandbox Code Playgroud)
我想typedef创建一个Vector(列向量),它相当于一个Matrix大小为N和1的东西.这样的东西:
typedef Matrix<N,1> Vector<N>;
Run Code Online (Sandbox Code Playgroud)
这会产生编译错误.以下内容创建了类似的内容,但并不完全符合我的要求:
template <size_t N>
class Vector: public Matrix<N,1>
{ };
Run Code Online (Sandbox Code Playgroud)
是否有解决方案或不太昂贵的解决方法/最佳实践?
我什么时候应该将尾随添加_t到typedef'ed类型?
例如,我应该这样做:
typedef struct image image_t;
Run Code Online (Sandbox Code Playgroud)
或这个:
typedef struct image image;
Run Code Online (Sandbox Code Playgroud)
一般规则是什么?
另一个例子,我应该这样做:
typdef enum { ARRAY_CLOSED, ARRAY_OPEN, ARRAY_HALFOPEN } array_type_t;
Run Code Online (Sandbox Code Playgroud)
或这个:
typdef enum { ARRAY_CLOSED, ARRAY_OPEN, ARRAY_HALFOPEN } array_type;
Run Code Online (Sandbox Code Playgroud)
请赐教.
谢谢,Boda Cydo.