Maison > développement back-end > C++ > Quelles opérations sont valides sur les objets déplacés en C ?

Quelles opérations sont valides sur les objets déplacés en C ?

Barbara Streisand
Libérer: 2024-12-25 17:42:15
original
174 Les gens l'ont consulté

What Operations Are Valid on C   Moved-From Objects?

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 :

  • Destruction
  • Affectation
  • Observateurs de const (par exemple, obtenir, vide, taille)

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal