函数调用中的意外编译错误(C ++)

时间:2018-06-13 10:32:07

标签: c++ function codeblocks boost-tokenizer

我有一个模板函数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 stringboost/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。

1 个答案:

答案 0 :(得分:1)

你应该听听编译器告诉你的内容。错误往往比你想象的更简单:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/some_id"
        android:title="Some Text"/>
    <item
        android:id="@+id/some_id"
        android:title="Some Text"/>
    <item
        android:id="@+id/some_id"
        android:title="Some Text"/>
    <item
        android:id="@+id/some_id"
        android:title="Some Text>
        <menu>
            <item
                android:id="@+id/some_id"
                android:title="Some Text"/>
            <item
                android:id="@+id/some_id"
                android:title="Some Text"/>
            <item
                android:id="@+id/some_id"
                android:title="Some Text"/>
            <item
                android:id="@+id/some_id"
                android:title="Some Text"/>
            <item
                android:id="@+id/some_id"
                android:title="Some Text"/>
        </menu>
    </item>
    <item android:title="Some Text>
        <menu>
            <item
                android:id="@+id/some_id"
                android:title="Some Text"/>

            <item
                android:id="@+id/some_id"
                android:title="Some Text"/>
            <item
                android:id="@+id/some_id"
                android:title="Some Text"/>
        </menu>
    </item>
</menu>

额外的右括号。编译器错误意味着“我以为你完成了这个命令,你为什么要关闭另一个括号对?”