Pourquoi std :: type_info noncopyable? Suis-je autorisé à stocker quelque part?
Question
La classe std::type_info
est non copiable. Cela rend difficile de le stocker dans un objet pour une utilisation ultérieure. Que dois-je faire?
La solution
Il y a une solution beaucoup mieux en C ++ 11. Une nouvelle enveloppe copiable appelé std :: type_index. Vous devez inclure en-tête « typeindex » pour l'utiliser.
Autres conseils
Vous pouvez stocker un pointeur vers un objet std::type_info
constant.
De MSDN et < a href = "http://publib.boulder.ibm.com/infocenter/comphelp/v9v111/index.jsp?topic=/com.ibm.xlcpp9.aix.doc/standlib/header_typeinfo.htm" rel = "nofollow" > IBM documentation en ligne :
La classe
type_info
décrit les informations de type généré dans le programme par le compilateur. Les objets de cette classe stocker efficacement une pointeur sur un nom pour le type. La classetype_info
stocke également une valeur codée adaptée pour comparer deux types d'égalité ou ordre d'assemblage. Les règles de codage et la séquence de classement pour les types ne sont pas spécifiés et peuvent différer entre les programmes.