Maison  >  Article  >  développement back-end  >  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
Linda Hamiltonoriginal
2024-11-23 00:26:11608parcourir

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:
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