Maison >développement back-end >C++ >Quelles opérations sont valides sur les objets déplacés en C ?
De quels objets peuvent être déplacés ?
La norme C permet de déplacer des objets de types définis dans la bibliothèque standard C. Cela signifie qu'un nouvel objet peut être créé et initialisé avec les données d'un objet existant, qui est ensuite déplacé dans un état non spécifié.
Opérations valides sur les objets déplacés
La norme définit que les objets déplacés doivent être placés dans un état valide mais non spécifié. Cela signifie que toute opération sans conditions préalables peut être effectuée sur un objet déplacé. Ces opérations incluent généralement :
Opérations avec conditions préalables
Opérations qui ont généralement Les conditions préalables, telles que le déréférencement et le pop_back, ne peuvent pas être directement exécutées sur les objets déplacés.
Exemple : modèle de fonction Swap
Le modèle de fonction swap dans la bibliothèque standard démontre la possibilité d'attribuer des objets déplacés. Dans cette fonction, l'objet déplacé est d'abord affecté à une variable temporaire (ligne 1). L'objet d'origine se voit ensuite attribuer la valeur de l'autre objet (ligne 2) avant de se voir attribuer la valeur de la variable temporaire (ligne 3).
Remarque sur la syntaxe d'initialisation
L'utilisation de T c = std::move(a) dans la ligne 1 au lieu de T c(std::move) n'est pas pertinente pour la discussion sur les opérations de déplacement. C'est simplement une question de style et de préférence.
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!