Поделиться через


Ошибка компилятора C2079

"идентификатор" использует неопределенный класс/структуру/объединение "name"

Указанный идентификатор является неопределенным классом, структурой или объединением.

Эта ошибка может быть вызвана инициализацией анонимного объединения.

Следующий пример приводит к возникновению ошибки C2079:

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

Возможное решение

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

C2079 также может возникать, если вы пытаетесь объявить объект в стеке типа, объявление пересылки которого находится только в области.

// C2079c.cpp
class A;

class B {
   A a;   // C2079
};

class A {};

Возможное решение

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

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

class A {};