Le langage de programmation C permet aux références const de prolonger la durée de vie des objets temporaires. Ce comportement a fait l'objet de nombreux débats, certains affirmant qu'il permet d'améliorer les performances et la flexibilité dans la conception du code.
L'origine de cette fonctionnalité du langage remonte à 1993, lorsqu'elle a été proposée comme solution à une incohérence dans la gestion des temporaires lorsqu'ils sont liés à des références. En l'absence d'optimisation de la valeur de retour (RVO), interdire la liaison d'un temporaire à une référence aurait imposé des pénalités de performances.
En autorisant les références const à prolonger la durée de vie des temporaires, le comité visait à éliminer cette incohérence. , tout en préservant les avantages potentiels en termes de performances. Ce choix de conception a permis aux fonctions membres de basculer de manière transparente entre le renvoi d'une valeur ou une référence const à une valeur interne existante, sans nécessiter de modifications du code client.
Par exemple, considérons une classe matricielle qui peut renvoyer des vecteurs de ligne ou de colonne. vecteurs. Pour optimiser les performances, l'un ou l'autre type de vecteur pourra être renvoyé comme référence, en fonction de l'organisation interne de l'implémentation (stockage ligne majeure ou colonne majeure). Cette flexibilité permet au rédacteur de la bibliothèque de modifier l'implémentation à l'avenir sans affecter le code client, qui autrement nécessiterait une gestion explicite du type de valeur de retour.
En conséquence, la décision du comité de prolonger la durée de vie des temporaires lorsque lié aux références const a un double objectif : il garantit la cohérence du comportement de liaison de référence et permet la mise en œuvre de conceptions de code optimisées et adaptables.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3