title: Initializing a union with a non-trivial constructor
body: <p>I have a structure which I create a custom constructor to initialize the members to 0's.  I've seen in older compilers that when in release mode, without doing a memset to 0, the values are not initialized.</p>
  
  <p>I now want to use this structure in a union, but get errors because it has a non-trivial constructor.</p>
  
  <p>So, question 1.  Does the default compiler implemented constructor guarantee that all members of a structure will be null initialized?  The non-trivial constructor just does a memset of all the members to '0' to ensure a clean structure.</p>
  
  <p>Question 2:  If a constructor must be specified on the base structure, how can a union be implemented to contain that element and ensure a 0 initialized base element?</p>