Maison > développement back-end > C++ > L'idiome Safe-Bool est-il toujours nécessaire en C 11 ?

L'idiome Safe-Bool est-il toujours nécessaire en C 11 ?

Linda Hamilton
Libérer: 2024-11-23 00:26:11
original
704 Les gens l'ont consulté

Is the Safe-Bool Idiom Still Necessary in C  11?

L'idiome Safe-Bool obsolète en C 11

En C 11, la nécessité de l'idiome Safe-bool a été rendue obsolète par l'introduction de l'opérateur explicite bool () const. Selon le standard C Section 4 [conv] p3 :

Une expression e peut être implicitement convertie en un type T si et seulement si la déclaration T t=e ; est bien formé [...]

Cela signifie qu'une expression peut être convertie contextuellement en bool si la déclaration bool t(e); est bien formé.

Certaines constructions de langage nécessitent de telles conversions implicites, notamment :

  • if, while, pour
  • opérateurs logiques binaires & et ||
  • opérateur de négation logique !
  • opérateur conditionnel ?:
  • static_assert
  • nosauf

Ainsi, avec la disponibilité d'opérateurs de conversion explicites, il devient inutile de recourir à des implémentations alambiquées de Safe-bool. Cela simplifie et clarifie considérablement le code, car les conversions explicites fournissent des conversions de type claires et intentionnelles par rapport aux mécanismes implicites de l'idiome safe-bool.

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!

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