编译器错误 C2084

函数“function”已有主体

函数已被定义。

在 Visual Studio 2002 之前,

  • 编译器将接受解析为相同实际类型的多个模板专用化,尽管附加定义永远不可用也是如此。 编译器现在可检测这些多个定义。

  • __int32int 被视为单独的类型。 编译器现在将 __int32 视为 int 的同义词。 这意味着,如果同时在 __int32int 上重载函数,编译器将检测多个定义,并给出错误。

示例

以下示例生成 C2084:

// C2084.cpp
void Func(int);
void Func(int) {}   // define function
void Func(int) {}   // C2084 second definition

若要更正此错误,请删除重复的定义:

// C2084b.cpp
// compile with: /c
void Func(int);
void Func(int) {}