Je me demandais quelles sont les conséquences pour compiler une classe A avec un compilateur qui ne permet pas l'héritage multiple, et compiler une classe B qui le supporte (et la classe B dérivée de la classe A).C++ Séparer les compilateurs pour les classes (vtables)?
Je ne comprends pas vraiment le processus de liaison ... serait-il possible d'utiliser les deux ensemble? Quels sont les inconvénients de l'utilisation de compilateurs séparés dans cette situation, avec vtables? Serait-il impossible que le code utilisant la classe B fonctionne correctement?
Merci.
Il peut se résumer ainsi: Chaque constructeur de compilateur est autorisé à définir son propre ABI. Puisque les différences dans l'ABI rendent le code d'un compilateur inutilisable par un autre, cela rend ces processus inutilisables. Le fait d'utiliser du code compilé avec le même compilateur et des drapeaux différents peut entraîner le même problème (les binaires de débogage et de relâchement ne sont pas compatibles avec certains compilateurs). Donc, techniquement, toutes les unités de compilation devraient être compilées avec le même compilateur en utilisant les mêmes drapeaux (sinon vous demandez des problèmes). –