preguntar acerca de unions

4
réponses

Initialisation de l’Union en C++ et C

J'ai construit une bibliothèque C de travail, qui utilise des constantes, dans les fichiers d'en-tête définis comme typedef struct Y { union { struct bit_field bits; uint8_t raw[4]; } X; } CardInfo; static const CardInfo Y_CONSTANT = { …
demandé sur 1970-01-01 00:33:32
5
réponses

Comment vérifier quel type est actuellement utilisé dans union?

Disons que nous avons une union: typedef union someunion { int a; double b; } myunion; Est-il possible de vérifier quel type est dans union après avoir défini par exemple A = 123? Mon approche est d'ajouter cette union à une structure et …
demandé sur 1970-01-01 00:33:33
2
réponses

Union’ punning ‘structs w / » common initial sequence»: pourquoi C (99+), mais pas C++, stipule-t-il une ‘déclaration visible du type union’?

Contexte Les Discussions sur la nature essentiellement non définie ou définie par l'implémentation du punning de type via un union citent généralement les bits suivants, ici via @ecatmur ( https://stackoverflow.com/a/31557852/2757035 ), sur une exem …
demandé sur 1970-01-01 00:33:36
7
réponses

gcc, aliasing strict, et la diffusion à travers une union

avez-vous des histoires d'horreur à raconter? Le manuel GCC a récemment ajouté un avertissement concernant-fstrict-aliasing et lancer un pointeur à travers une union: [...] En prenant l'adresse, en moulant le pointeur résultant et en …
demandé sur 1970-01-01 00:33:30
1
réponses

Présentation des données internes du vecteur statique — ‘union’ vs ‘ std:: aligned storage t` — énorme différence de performance

suppose que vous devez mettre en œuvre une classe static_vector<T, N> , qui est un capacité fixe conteneur qui vit entièrement sur la pile et n'allaite jamais, et expose une interface std::vector comme. (Boost fournit boost::static_v …
demandé sur 1970-01-01 00:33:38
5
réponses

Accès à un membre inactif du syndicat et à un comportement non défini?

j'avais l'impression que l'accès à un membre union autre que le dernier ensemble est UB, mais je n'arrive pas à trouver une référence solide (autre que des réponses affirmant que c'est UB mais sans aucun support de la norme). donc, est-ce u …
demandé sur 1970-01-01 00:33:32