L'initialisation d'une union avec un non-trivial constructeur

J'ai une structure qui j'ai créer un constructeur pour initialiser les membres à 0. J'ai vu dans les anciens compilateurs que lorsqu'en mode release, sans en faire un memset à 0, les valeurs ne sont pas initialisés.

Je veux maintenant utiliser cette structure dans une union, mais des erreurs parce que c'est un non-trivial constructeur.

Donc, la question 1. Le compilateur par défaut mis en œuvre constructeur de garantir que tous les membres d'une structure sera initialisé à null? Le non-trivial constructeur a tout simplement un memset de tous les membres de '0' pour assurer la propreté de la structure.

Question 2: Si un constructeur doit être spécifié sur la base de la structure, comment un syndicat soit mis en œuvre pour contenir un élément et d'assurer un 0 initialisé élément de base?

InformationsquelleAutor Superpolock | 2008-11-26