C++ 错误:应为';)';在'之前;令牌类型';在方法声明中

C++ 错误:应为';)';在'之前;令牌类型';在方法声明中,c++,enums,compiler-errors,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, T

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

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
};
我已经检查了该文件是否正确地包含在中包含方法的文件中,但我仍然在“tokenType”之前得到错误:
error:expected')
内联无效寄存器(令牌类型令牌类型,InfixParselet*parselet)
^



我相信,当类型没有被正确声明时,这个错误是很常见的,但是我找不到声明的问题。有什么想法吗?

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

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

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

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

您混淆了编译器,因为
register
是一个关键字。(在CPU寄存器中维护一个变量是编译器的优化顾问。)

您混淆了编译器,因为
寄存器是一个关键字。(在CPU寄存器中维护一个变量是编译器的优化顾问。)

您混淆了编译器,因为
寄存器是一个关键字。(在CPU寄存器中维护一个变量是编译器的优化顾问。)

您混淆了编译器,因为
寄存器是一个关键字。(它是编译器在CPU寄存器中维护变量的优化顾问。)

我相信
寄存器
是一个。@VictorPolevoy我相信
寄存器
是一个。@VictorPolevoy我相信
寄存器
是一个。@VictorPolevoy我相信
寄存器
是一个。@VictorPolevoy好的,谢谢。我知道,
register
是一个关键字,但我认为编译器会足够聪明地识别出它是一个方法签名(或者至少给出一个智能错误消息)。谢谢关键字标识符被无条件地视为关键字,属性标记除外。好的,谢谢。我知道,
register
是一个关键字,但我认为编译器会足够聪明地识别出它是一个方法签名(或者至少给出一个智能错误消息)。谢谢关键字标识符被无条件地视为关键字,属性标记除外。好的,谢谢。我知道,
register
是一个关键字,但我认为编译器会足够聪明地识别出它是一个方法签名(或者至少给出一个智能错误消息)。谢谢关键字标识符被无条件地视为关键字,属性标记除外。好的,谢谢。我知道,
register
是一个关键字,但我认为编译器会足够聪明地识别出它是一个方法签名(或者至少给出一个智能错误消息)。谢谢关键字标识符被无条件地视为关键字,属性标记除外。好的-谢谢!我没有意识到这一点(双关语不是故意的),我希望编译器能够足够聪明地理解这一点。再次感谢。因为登记器> /Cuff>与C++语法相当硬,编译器很难确定您实际上想用它作为函数名。我没有意识到这一点(双关语不是故意的),我希望编译器能够足够聪明地理解这一点。再次感谢。因为登记器> /Cuff>与C++语法相当硬,编译器很难确定您实际上想用它作为函数名。我没有意识到这一点(双关语不是故意的),我希望编译器能够足够聪明地理解这一点。再次感谢。因为登记器> /Cuff>与C++语法相当硬,编译器很难确定您实际上想用它作为函数名。我没有意识到这一点(双关语不是故意的),我希望编译器能够足够聪明地理解这一点。再次感谢。因为登记器> /Cuff>与C++语法相当硬,编译器很难确定您实际上想用它作为函数名。