编译器错误 C2084
函数“function”已有主体
函数已被定义。
在 Visual Studio 2002 之前,
编译器将接受解析为相同实际类型的多个模板专用化,尽管附加定义永远不可用也是如此。 编译器现在可检测这些多个定义。
__int32
和int
被视为单独的类型。 编译器现在将__int32
视为int
的同义词。 这意味着,如果同时在__int32
和int
上重载函数,编译器将检测多个定义,并给出错误。
示例
以下示例生成 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) {}