More on this book
Kindle Notes & Highlights
Read between
April 23 - September 22, 2024
An executable program is created for a specific hardware/system
When we talk about portability of C++ programs, we usually mean portability of source code;
A function declaration gives the name of the function, the type of the value returned (if any), and the number and types of the arguments that must be supplied in a call.
The number of errors in code correlates strongly with the amount of code and the complexity of the code. Both problems can be addressed by using more and shorter functions.
Defining multiple functions with the same name is known as function overloading and is one of the essential parts of generic programming
A coroutine is a function that maintains its state between calls.
One way to organize such a system is for each task to place itself on an event queue waiting for more work after producing a result. A scheduler then picks the next task to run from the event queue when needed. This is a form of cooperative multitasking.
For more information, and in particular for more names of people who contributed, see my three papers from the ACM History of Programming Languages conferences [Stroustrup, 1993] [Stroustrup, 2007] [Stroustrup, 2020] and my Design and Evolution of C++ book (known as “D&E”) [Stroustrup, 1994].
One reason for the long gap between the two standards is that most members of the committee (including me) were under the mistaken impression that the ISO rules required a “waiting period” after a standard was issued before starting work on new features.
C++17 was meant to be a major release. By “major,” I mean containing features that will change the way we think about the structure of our software and about how we design it. By this definition, C++17 was at best a medium release.
C++20 offers long-promised and much-needed major features, such as modules (§3.2.2), concepts (§8.2), coroutines (§18.6), ranges (§14.5), and many minor features. It is as major an upgrade to C++ as was C++11.
together with people from many parts of the world, notably from Microsoft, Red Hat, and Facebook, started the “C++ Core Guidelines” project [Stroustrup,2015].
C++ is primarily an industrial language; that is, it is more prominent in industry than in education or programming language research.
Don’t declare a variable before you need it, and initialize it immediately.
For learning C++, use the most up-to-date and complete implementation of Standard C++ that you can get access to.

