ошибка: ожидаемый неквалифицированный идентификатор перед числовой константой: std :: array и std :: vector. - PullRequest
0 голосов
/ 04 июля 2019

Ошибка связана с определением макроса в моем коде:

#define NUM_ROWS 3

Ниже приведена ссылка для вставки исходного кода:

Полный исходный код

Ошибка компиляции

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
                  ^

Ниже приведена ссылка на логин компилятора:

Журнал компилятора

Я искал связанные ошибки в переполнении стека, но в случае этих ошибок контексты кажутся другими. В этом случае я намерен использовать макросы для предварительного определения размера объектов std::array и std::vector. Я думал об использовании макросов, так как я понимаю, что я должен использовать константы для размеров.

ценим ваши мысли

1 Ответ

0 голосов
/ 04 июля 2019

Некоторые указатели, которые могут вам помочь:

vector<array<int,NUM_COLS>>(NUM_ROWS) matrix;

неверно, правильный способ построить std::vector с NUM_ROWS элементами -

vector<array<int,NUM_COLS>> matrix(NUM_ROWS);

Во-вторых, я посмотрел ваш код (вы можете добавить его в вопрос для потомков)

void set_matrix(vector<array<int,NUM_COLS>>(NUM_ROWS)&)

и аналогичные функции не будут работать NUM_ROWS не является частью типа vector, попробуйте

void set_matrix(vector<array<int,NUM_COLS>>&)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...