Compartir a través de


Error del compilador C2079

"identifier" usa una clase/estructura/unión "name" sin definir

El identificador especificado es una clase, estructura o unión.

Este error puede deberse a la inicialización de una unión anónima.

El ejemplo siguiente genera C2079:

// C2079.cpp
// compile with: /EHsc
#include <iostream>
int main() {
   std::ifstream g;   // C2079
}

Posible solución:

// C2079b.cpp
// compile with: /EHsc
#include <fstream>
int main( ) {
   std::ifstream g;
}

También se puede producir C2079 si intenta declarar un objeto en la pila de un tipo cuya declaración de reenvío solo está en el ámbito.

// C2079c.cpp
class A;

class B {
   A a;   // C2079
};

class A {};

Posible solución:

// C2079d.cpp
// compile with: /c
class A;
class C {};

class B {
   A * a;
   C c;
};

class A {};