Compartir vía


Error del compilador C2084

la función 'función' ya tiene un cuerpo

La función ya se ha definido.

Antes de Visual Studio 2002:

  • El compilador aceptaba varias especializaciones de plantilla que se resolvieran con el mismo tipo real, aunque las definiciones adicionales nunca estuvieran disponibles. El compilador ahora detecta estas definiciones múltiples.

  • __int32 y int se trataban como tipos diferentes. El compilador ahora trata __int32 como sinónimo de int. Esto significa que el compilador detecta varias definiciones si una función está sobrecargada en __int32 y int, y produce un error.

Ejemplo

El ejemplo siguiente genera el error C2084:

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

Para corregir este error, quite la definición duplicada:

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