Difference between revisions of "cpp/language/Zero-overhead principle"
From cppreference.com
(Undo revision 158902 by Andreas Krug (talk)) |
|||
Line 13: | Line 13: | ||
===External links=== | ===External links=== | ||
{{elink begin}} | {{elink begin}} | ||
− | {{elink|num=1|[ | + | {{elink|num=1|[https://www.stroustrup.com/ETAPS-corrected-draft.pdf Foundations of C++] - Bjarne Stroustrup}} |
{{elink|num=2|{{stddoc|p1947|C++ exceptions and alternatives}} - Bjarne Stroustrup}} | {{elink|num=2|{{stddoc|p1947|C++ exceptions and alternatives}} - Bjarne Stroustrup}} | ||
{{elink|num=3|[https://youtu.be/ARYP83yNAWk De-fragmenting C++] - Making {{rlp|exceptions|Exceptions}} and {{rlp|types|RTTI}} More Affordable and Usable - Herb Sutter}} | {{elink|num=3|[https://youtu.be/ARYP83yNAWk De-fragmenting C++] - Making {{rlp|exceptions|Exceptions}} and {{rlp|types|RTTI}} More Affordable and Usable - Herb Sutter}} |
Revision as of 15:30, 12 September 2023
The zero-overhead principle is a C++ design principle that states:
- You don't pay for what you don't use.
- 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.
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 |
4. | Bjarne Stroustrup: C++ on Artificial Intelligence (AI) Podcast |