【发布时间】:2019-07-04 09:28:59
【问题描述】:
错误源于我的代码中的宏定义:
#define NUM_ROWS 3
以下是完整源码的pastebin链接:
编译错误是
code.cpp:14:18: error: expected unqualified-id before numeric constant
#define NUM_ROWS 3
^
code.cpp:19:29: note: in expansion of macro ‘NUM_ROWS’
vector<array<int,NUM_COLS>>(NUM_ROWS) matrix;
^~~~~~~~
code.cpp:14:18: error: expected ‘)’ before numeric constant
#define NUM_ROWS 3
^
以下是编译器日志的pastebin链接:
我在 Stack Overflow 上查找了相关错误,但在这些错误的情况下上下文似乎有所不同。在这种情况下,我打算使用宏来预定义std::array 和std::vector 对象的大小。我想过使用宏,因为我的理解是我应该使用常量来表示尺寸。
欣赏你的想法
【问题讨论】:
-
vector
>(NUM_ROWS) 矩阵错误,试试vector > matrix(NUM_ROWS) -
“我想到使用宏,因为我的理解是我应该使用常量来表示尺寸。”当你需要常量时,你应该使用常量而不是宏。
const int num_rows = 3;怎么了? -
请在问题中包含代码和错误。链接可能会中断