Namespaces
Variants

Zero-overhead principle

From cppreference.net
C++ language
General topics
Flow control
Conditional execution statements
Iteration statements (loops)
Jump statements
Functions
Function declaration
Lambda function expression
inline specifier
Dynamic exception specifications ( until C++17* )
noexcept specifier (C++11)
Exceptions
Namespaces
Types
Specifiers
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Storage duration specifiers
Initialization
Expressions
Alternative representations
Literals
Boolean - Integer - Floating-point
Character - String - nullptr (C++11)
User-defined (C++11)
Utilities
Attributes (C++11)
Types
typedef declaration
Type alias declaration (C++11)
Casts
Memory allocation
Classes
Class-specific function properties
Special member functions
Templates
Miscellaneous

Le principe de coût nul est un principe de conception C++ qui stipule :

  1. Vous ne payez pas pour ce que vous n'utilisez pas.
  2. Ce que vous utilisez est tout aussi efficace que ce que vous pourriez raisonnablement écrire à la main.

En général, cela signifie qu'aucune fonctionnalité ne devrait être ajoutée à C++ qui imposerait une surcharge, qu'elle soit temporelle ou spatiale, supérieure à ce qu'un programmeur introduirait sans utiliser cette fonctionnalité.

Les deux seules fonctionnalités du langage qui ne respectent pas le principe du coût nul sont runtime type identification et exceptions , ce qui explique pourquoi la plupart des compilateurs incluent une option pour les désactiver.

Liens externes

1. Fondations du C++ - Bjarne Stroustrup
2. Exceptions C++ et alternatives - Bjarne Stroustrup
3. Défragmentation du C++ - Rendre les Exceptions et le RTTI Plus Accessibles et Utilisables - Herb Sutter
4. Bjarne Stroustrup : C++ sur le Podcast d'Intelligence Artificielle (IA)