Génération automatique d'opérations de déplacement
En C 11, l'introduction de la sémantique de déplacement a soulevé des questions sur les circonstances dans lesquelles les constructeurs de déplacement et l'affectation de déplacement les opérateurs sont automatiquement générés.
Sous C 11, les opérations de déplacement ne sont pas automatiquement générées comme les constructeurs de copie et les opérateurs d'affectation de copie. Le compilateur ne génère une sémantique de déplacement que si certaines conditions sont remplies :
Comprendre ces règles aide à guider la mise en œuvre de classes qui utilisent la sémantique de déplacement. Le tableau de la présentation de Howard Hinnant donne un aperçu concis de la génération automatique de membres spéciaux, y compris les opérations de déplacement :
Déclaration | Copier le constructeur | Opérateur d'affectation de copie | Déplacer le constructeur et déplacer l'affectation Opérateur |
---|---|---|---|
Aucun | Généré | Généré | Non généré |
Copier le constructeur | Non Généré | Généré | Non généré |
Opérateur d'affectation de copie | Non généré | Non généré | Non généré |
Déplacer le constructeur | Non Généré | Non généré | Non généré |
Opérateur d'affectation de déplacement | Non généré | Non généré | Non généré |
Destructeur | Non Généré | Non généré | Non généré |
Constructeur de copie et opérateur d'affectation de copie | Non généré | Non Généré | Non généré |
Copier le constructeur et déplacer Constructeur | Non généré | Non généré | Non généré |
Copier le constructeur et déplacer l'opérateur d'affectation | Non Généré | Non généré | Non généré Généré |
Opérateur d'affectation de copie et constructeur de déplacement | Non généré | Non généré | Non généré |
Opérateur d'affectation de copie et opérateur d'affectation de déplacement | Non généré | Non Généré | Non généré |
Déplacer le constructeur et le destructeur | Non généré | Non généré | Non généré |
Déplacer l'opérateur et le destructeur d'affectation | Non Généré | Non généré | Non généré |
Constructeur de copie et opérateur d'affectation de copie et constructeur de déplacement | Non généré | Non généré | Non généré |
Copier le constructeur et copier Opérateur d'affectation et opérateur d'affectation de déplacement | Non généré | Non généré | Non généré |
Constructeur de copie et constructeur de déplacement et affectation de déplacement Opérateur | Non généré | Non Généré | Généré |
Opérateur d'affectation de copie et constructeur de déplacement et opérateur d'affectation de déplacement | Non généré | Non généré | Généré |
En reconnaissant ces règles, les développeurs peuvent s'assurer que leurs classes utilisent correctement déplacer la sémantique et atteindre une efficacité optimale.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3