Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何减少用户数据类型表示法?(typedef?)_C++_Syntax - Fatal编程技术网

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

C++ 如何减少用户数据类型表示法?(typedef?),c++,syntax,C++,Syntax,我将库用于C++(大NUM)。 我使用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); 我尝试使用typedef: typedef vector < vector < Big

我将库用于
C++
(大NUM)。 我使用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);
我尝试使用typedef:

typedef vector < vector < Big > > Matrix;
typedef向量>矩阵;
但它没有编译

MS VS 2013:

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

错误C2143:语法错误:缺少“;”在“之前,去掉递归宏
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)
typedef ttmath::Big Big_type;
typedef std::向量矩阵_类型;
Marix_A型(n);
对于(i,0,n)
A[i]。调整大小(n)

错误消息是什么?您是否使用了
名称空间std之前?@cad错误C2143:语法错误:缺少“;”“以前”仍然有同样的问题<代码>错误C2143:语法错误:缺少“;”在“ttmath::Big”
之前,当然,我已经评论过在
之前定义Big ttmath::Big
。我认为没关系,因为没有
typedef
,一切都很好。啊哈,保罗,你的答案错了,我只是抄了下来!你输入了“typdef”,没有输入“e”。)现在它工作得很好。泰铢:)如果可能的话,你能解释一下“递归宏大”吗?我的案子发生了什么?很明显。仍然习惯于使用平板电脑:(宏不能是递归的,但如果它的名称出现在替换文本中会让人困惑。最好避免使用宏,因为像
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)