Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Compiler Error C2621
Collapse the table of content
Expand the table of content

Compiler Error C2621

member 'identifier' of union 'union' has copy constructor

A union member cannot have a copy constructor.

The following sample generates C2621:

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

C2621 can also be generates for code that compiled in Visual C++ 6.0, but that no longer compiles. The Visual C++ 6.0 Standard C++ Library did not use a union of its template parameters. Class types that have a copy constructor cannot be a template parameter for basic_string.

The following sample generates 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

Community Additions

© 2015 Microsoft