Maison > développement back-end > C++ > le corps du texte

Pourquoi ne puis-je pas transmettre des références non-const à `std::async` ?

Mary-Kate Olsen
Libérer: 2024-10-28 06:32:30
original
813 Les gens l'ont consulté

Why Can't I Pass Non-Const References to `std::async`?

Passer des références non-const à std::async

Dans std::async, passer une référence non-const en tant qu'argument dans une erreur. Il s'agit d'un choix de conception délibéré.

Justification

Déterminer si un objet fonction accepte ses arguments par référence n'est pas toujours réalisable. Ainsi, std::async doit soit copier tous les arguments, soit les accepter par référence. La copie des arguments garantit la sécurité car ils ne peuvent pas devenir suspendus ou provoquer des conditions de concurrence.

Exception : std::ref

Pour autoriser les paramètres de référence non const, std::ref peut être utilisé. Il s'agit d'une adhésion explicite à une sémantique de référence potentiellement dangereuse, nécessitant une gestion prudente des références en suspens et des conditions de concurrence.

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