错误:预期')'之前' tokenType'在方法声明中

时间:2015-07-23 11:24:23

标签: c++ enums compiler-errors

我正在尝试使用此方法获取在另一个文件中声明的枚举成员:

inline void register(TokenType tokenType, InfixParselet* parselet)
{
    m_infixMap.insert(tokenType, parselet);
}

在另一个文件中声明TokenType

enum TokenType
{
  // --- Symbols ---
  TOKEN_LEFT_PAREN,
  TOKEN_RIGHT_PAREN,
  TOKEN_LEFT_SQUARE_BRACE,

  // Loads more symbols left out for conciseness

  TOKEN_NEW_LINE,
  TOKEN_ERROR,
  TOKEN_EOF
};

我已经检查过该文件是否正确包含在文件中,但我仍然收到错误:error: expected ‘)’ before ‘tokenType’ inline void register(TokenType tokenType, InfixParselet* parselet) ^

我认为,这个错误在类型没有被正确宣布时很常见,但我无法找到声明的问题。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

register是一个关键字,表示自动存储持续时间,并提示编译器将变量存储在寄存器中。您不应该在代码中将其用作函数名称。将其更改为register_token或其他内容,它应该有效。

答案 1 :(得分:1)

由于register是关键字,因此您对编译器感到困惑。 (它是编译器的优化顾问,用于在CPU寄存器中维护变量。)