J'utilise boost :: variant pour le stockage et un membre de données possible est une grande structure. Donc, la taille de la variante binaire est au moins cette taille de structure. Tous les autres membres sont très petits comme int ou double dans mon cas. Pour éviter la mise en page de base, y at-il un moyen de forcer boost :: variant à stocker l'élément comme pointeur? Bien sûr, je pourrais utiliser un pointeur intelligent pour stocker ce grand struct mais dans ce cas, le get Methode fonctionne également comme un accès pointeur .. ce n'est pas si gentilVariation de boost de force pour stocker le pointeur
boost::variant<int,double,large_struct>>
taille de 500 octets
ou l'autre petite solution, mais chaque accès doit traiter avec le pointeur
boost::variant<int,double,shared_ptr<large_struct>
sIZEOF 40 Octets
alors où allez-vous stocker votre 'large_struct' afin qu'il n'occupe pas les mêmes 500 octets de mémoire? –