Why do unions have a deleted default constructor if just one of its members doesn't have one?
问题 N3797::9.5/2 [class.union] says: If any non-static data member of a union has a non-trivial default constructor (12.1), copy constructor (12.8), move constructor (12.8), copy assignment operator (12.8), move assignment operator (12.8), or destructor (12.4), the corresponding member function of the union must be user-provided or it will be implicitly deleted (8.4.3) for the union I was trying to understand that note by example: #include <iostream> #include <limits> struct A { A(const A&){ std: