• [^] # Re: D'autres gros ajouts

    Posté par . En réponse à la dépêche C++ 0xB enfin finalisé ?. Évalué à 0.

    - on ne peut pas ajouter une variable membre privée à une classe sans casser la compatibilité binaire.

    Je comprends mieux pourquoi tu parlais de pimpl. Effectivement, on ne peut pas changer la taille d'un objet sans casser la compatibilité binaire, sauf à ce que les clients n'utilisent que des pointeurs vers ces objets (auquel cas, rajouter un membre à la fin ne casse rien). C'est un peu le lot de tous les langages compilés, cela dit...

    - si les types des membres privés viennent d'une bibliothèque, l'utilisateur de ma classe doit posséder les entêtes cette bibliothèque.

    Ca dépend, là aussi, si les types sont inclus tels quels, oui, si ce sont des références ou des pointeurs, une forward declaration suffit. C'est toujours le même problème de taille d'objet, qui doit être connue pour tout module utilisant l'objet.

    Je ne crois pas qu'il y ait de solution à ce problème (celle de java/c# n'en est pas une, c'est vraiment une approche différente).

    Après, tout dépend du contexte. Personnellement, ça n'a jamais été un problème (forcer tous les utilisateurs de mon code à recompiler n'a jamais été une grosse contrainte, ça l'est par contre pour celui qui fait des bibliothèques).

    Mes commentaires sont en wtfpl. Une licence sur les commentaires, sérieux ? o_0