我将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;。 :)
答案 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)