g ++中无用的错误消息

时间:2012-05-22 14:25:32

标签: g++

我在g ++ 4.1.2的所有地方都收到了这些错误信息,而且根本没有帮助:

<file>:<line>: error: expected primary-expression before 'int'
<file>:<line>: error: expected ';' before 'int'
<file>:<line>: error: invalid use of qualified-name '::SuccessCode'

它发生的代码就像这样简单:

class Test
{
  static Status debug_function(void)
  {
    return Status::SuccessCode();   // this would be <file>:<line> mentioned above
    // and this one too:
    // return Status::FailureCode("test");
  }
};

这是Status的代码(,是的,它被正确包含,因为如果包含文件无效我会有错误):

namespace CODES
{
  enum Values { Success = 0, Failed = 1 };
}

class Status
{
private:
  CODES::Values code;
  string msg;
public:
  Status(CODES::Values val, const string &i_msg ): code(val), msg(i_msg) {}

  static Status SuccessCode(void)
  {
    return Status(CODES::Success, "");
  }

  static Status FailureCode(const string &fail_msg)
  {
    return Status(CODES::Failed, fail_msg);
  }
};

那么,这段代码出了什么问题?它在VC ++下正确编译!

编辑:实际上,SuccessCode和FailureCode的代码位于* .cpp文件中。我把它们放在类声明中,因为错误信息仍然是相同的!

1 个答案:

答案 0 :(得分:2)

如果没有完整的程序,我将不得不猜测。我的猜测是:你的程序中有一个#define Status int