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!