如何减少用户数据类型表示法? (的typedef?)

时间:2015-12-05 11:37:31

标签: c++ syntax

我将ttmath库用于C++(大号)。 我使用2D数组(矩阵)。 例如:

#define FOR(i,a,b) for(int (i)=(a); i<(b) ; ++(i))
#define Big ttmath::Big<2, 2>
vector < vector < Big > > A(n);
FOR(i, 0, n) 
   A[i].resize(n);

其中A - 方阵NxN。 但我想要打字:

Matrix A(n);
FOR(i, 0, n) 
   A[i].resize(n)

我尝试使用typedef:

typedef vector < vector < Big > > Matrix;

但它没有编译。

MS VS 2013:

error C2143: syntax error : missing ';' before '<'

(与typedef一致)。

整个&#34; project&#34;。 :)

1 个答案:

答案 0 :(得分:1)

摆脱递归宏Big并使用typedef代替:

typedef ttmath::Big<2, 2> Big_type;
typedef std::vector<std::vector<Big_type> > Matrix_type;
Marix_type A(n);
FOR(i, 0, n) 
    A[i].resize(n)