Maison >développement back-end >C++ >Quand les compilateurs C génèrent-ils automatiquement des constructeurs de déplacement et des opérateurs d'affectation ?
Génération automatique d'opérations de déplacement en C
En C 98, le compilateur pouvait générer automatiquement des constructeurs de copie et des opérateurs d'affectation de copie pour les classes. Cependant, avec l'introduction de la sémantique de déplacement dans C 11, des questions se posent concernant la génération automatique d'opérations de déplacement.
Les constructeurs de déplacement et les opérateurs d'affectation de déplacement génèrent-ils automatiquement ?
Non, contrairement aux constructeurs de copie et aux opérateurs d'affectation de copie, le compilateur ne génère pas automatiquement d'opérations de déplacement pour les classes avec des constructeurs ou des affectations définis par l'utilisateur. opérateurs.
Cas où les opérations de déplacement ne sont pas automatiquement générées
Les opérations de déplacement ne sont pas automatiquement générées si :
Détermination de la génération automatique du mouvement Opérations
Pour déterminer si les opérations de déplacement sont automatiquement générées pour une classe, considérez les éléments suivants :
Dépréciation d'Automatic Génération d'opérations de déplacement
En C 20, la génération automatique des opérations de déplacement est obsolète si la classe déclare un destructeur ou tout membre de copie (constructeur de copie, opérateur d’affectation de copie). Pour assurer la compatibilité avec les futures versions de C , il est recommandé de déclarer explicitement les opérations de déplacement pour les classes qui les nécessitent.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!