문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문
Visual Studio 2017을 사용하는 것이 좋습니다.

컴파일러 오류 C2621

'identifier'(공용 구조체 'union'의 멤버)에 복사 생성자가 있습니다.

공용 구조체 멤버는 복사 생성자를 사용할 수 없습니다.

다음 샘플에서는 C2621 오류가 발생하는 경우를 보여 줍니다.

// C2621.cpp
class A {
   A( const A& );   // A has a copy constructor
};
union U {
   A a;   // C2621
};

Visual C++ 6.0에서는 컴파일되지만 이후 버전에서는 컴파일되지 않는 코드에 대해서도 C2621이 발생할 수 있습니다. Visual C++ 6.0 표준 C++ 라이브러리에서는 템플릿 매개 변수로 공용 구조체를 사용하지 않습니다. 복사 생성자가 있는 클래스 형식은 basic_string에 대한 템플릿 매개 변수가 될 수 없습니다.

다음 샘플에서는 C2621 오류가 발생하는 경우를 보여 줍니다.

// C2621b.cpp
// compile with: /EHsc
#include <vector>
#include <string>
using namespace std;
typedef vector<int> mytype;

int main() {
   basic_string < mytype > b;   // C2621 class type (vector) with
                               //  copy constructor as template param
   basic_string < char > c;   // OK
}
표시: