Est-ce que toutes les fonctionnalités Standard C ++ fonctionnent en C ++ / CLI? [dupliquer]
Question
Cette question a déjà une réponse ici:
- C ++ CLI est-il un sur-ensemble du C ++? 6 réponses
Si je viens d'inclure la classe Standard C ++ existante dans le programme C ++ / CLI, cela fonctionnera-t-il?
Dans mes tests, tout a bien fonctionné, mais est-ce vrai pour tous les programmes?
La solution
C’est ce que Microsoft promet, oui. (J'ai regardé cette vidéo hier, dans laquelle ils l'ont explicitement mentionné - en particulier parce que l'ajout de nullptr
en C ++ 0x le compromettrait)
Alors oui, si vous prenez un programme C ++ natif et le compilez en tant que C ++ / CLI, avec des non changements de code, alors oui, cela fonctionnera toujours.
Et bien sûr, si vous modifiez votre code (gcnew au lieu de nouveaux et d'autres changements "gérés", alors bien sûr, tous les paris sont désactivés et vous risquez ou non de casser le code)
Autres conseils
Si vous changez réellement la classe pour qu'elle soit une classe gérée (gc), alors non, il y aura parfois une rupture. En particulier, la sémantique de l'opérateur de suppression est modifiée car les objets sont désormais gérés par le garbage collector; la suppression d'un objet peut ne libérer aucune mémoire.