Last edit
Summary: = Unrestricted Unions Unions is somewhat of a white area on the C++ map for me. I can't remember that I have ever used a union in a C++ program. . . .
Changed:
< What it is all about is that before C++11 unions could not have members that had non-trival constructors. So if you had a union like this:
to
> What it is all about is that before C++11 unions could not have members that had non-trival constructors. So if you had a union like this
Changed:
< and C had a non-trivial constructor it would be illegal. In C++11 it is not so.
to
> and class Class had a non-trivial constructor, it would be illegal. In C++11 this restriction is lifted and the code is legal.
Unions is somewhat of a white area on the C++ map for me. I can't remember that I have ever used a union in a C++ program. Nevertheless C++11 have introduced a way to improve unions.
What it is all about is that before C++11 unions could not have members that had non-trival constructors. So if you had a union like this
union U { int i; Class c; };
and class Class had a non-trivial constructor, it would be illegal. In C++11 this restriction is lifted and the code is legal.