在'&'之前预期的不合格身份令牌(Mininet VM,在std :: invalid_argument上尝试/捕获)

时间:2018-02-16 06:37:06

标签: c++ mininet

使用g ++编译Mininet虚拟机时出现以下错误。

error: expected unqualified-id before '&' token
} catch (const std::invalid_argument& ia) {
                                    ^

代码:

try {
  port = std::stoi(argv[3]);
  if (port < 1024 || port > 65535) {
    cerr << "Error: port number must be in the range 1024 to 65535";
    exit(1);
  }
} catch (const std::invalid_argument& ia) {
  cerr << "Error: missing or additional arguments: Expected number for port" << endl;
}

在使用相同设置在macOS上编译时,我没有收到错误。删除const或&amp;只会导致另一个错误;执行std::invalid_argument ia会导致&#34;错误:期望的类型说明符&#34;

由于我无法在我的Mac上复制这个,而这只发生在Mininet虚拟机上,我对原因和潜在的修复都感到茫然。

注意:为了澄清,我今天在虚拟机上运行了sudo apt-get install g++,我正在使用以下代码编译C ++ 11:`g ++ -std = c ++ 11 -Wall -Wextra -pedantic - O -o code_name code_name.cpp

1 个答案:

答案 0 :(得分:-1)

在Mininet的VM上,需要#include <stdexcept>才能使用问题中详述的功能。在macOS上不需要这个包含文件(以及其他文件),默认情况下包含该文件。

#include <stdexcept>解决了这个具体问题。