неожиданная ошибка компиляции при вызове функции (C ++)

У меня есть функция шаблона makeMatrix(), код:

template<size_t N>
void makeMatrix(string dataFilePath, int adjcMatrix[N][N])
{
fstreamExtension fe("adj.txt", ios::in|ios::binary);
string s;
vector<int> temp;
int i = 0;

while(!fe.eof())
{
getline(fe, s);
temp = tokenizeToInt(s, ",\n")); //error: expected ';' before ')' token|

for(int j = 0; j < N; j++)
adjcMatrix[i][j] = temp[j];

i += 1;
}
}

fstreamExtension — это класс, который я создал и включен в программу через заголовок
#include "fstreamExtension.h"Другие включенные заголовки iostream string а также boost/tokenizer.hpp,

код для tokenizeToInt():

vector<int> tokenizeToInt(string& intString, const char* seperators)
{
vector<int> intValues;

boost::char_separator<char> delims(seperators);
boost::tokenizer<boost::char_separator<char>> tokens(intString, delims);

for (const auto& t : tokens) {
intValues.push_back(atoi(t.c_str()));
}

return intValues;

}

Почему это вызывает ошибку компиляции в makeMatrix(), синтаксис кажется правильным, я не звонил в main(), компилировал какой-то другой код, и эта ошибка появилась, когда я начал сборку.

IDE: кодовые блоки 16.01, gcc.

-2

Решение

Вы должны слушать то, что говорит вам компилятор. Часто ошибка проще, чем вы думаете:

temp = tokenizeToInt(s, ",\n")); //error: expected ';' before ')' token|

Дополнительная правая скобка. Ошибка компилятора означает «Я думал, что вы закончили с этой командой, почему вы пытаетесь закрыть другую пару скобок?»

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector