Namespaces
Variants
Actions

Zero-overhead principle

From cppreference.com
< cpp‎ | language
 
 
C++ language
General topics
Conditional execution statements
Iteration statements (loops)
Jump statements
Exceptions
Namespaces
Types
Specifiers
decltype (C++11)
auto (C++11)
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Character - String - nullptr (C++11)
User-defined (C++11)
Utilities
Attributes (C++11)
Types
Casts
Memory allocation
Class-specific function properties
Special member functions
Miscellaneous
 

The zero-overhead principle is a C++ design principle that states:

  1. You don't pay for what you don't use.
  2. What you do use is just as efficient as what you could reasonably write by hand.

In general, this means that no feature should be added to C++ that would impose any overhead, whether in time or space, greater than a programmer would introduce without using the feature.

The only two features in the language that do not follow the zero-overhead principle are runtime type identification and exceptions, and are why most compilers include a switch to turn them off.

[edit] External links

1.  Foundations of C++ - Bjarne Stroustrup
2.  C++ exceptions and alternatives - Bjarne Stroustrup
3.  De-fragmenting C++ - Making Exceptions and RTTI More Affordable and Usable - Herb Sutter
Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/language/Zero-overhead_principle&oldid=178602"

AltStyle によって変換されたページ (->オリジナル) /