Chapter Notes
Chapter 1: The Nature of the Beast
C++ feature
A key feature of C++ is the ability of programmers to create their own types, call user-defined types (UDTs), which can have the power and expressiveness of build-in types or fundamentals.
Chapter 3: The Origin Story
The importance of performance improvement
James Hamilton ... broke the costs down into servers, power distribution & colling, power, networking equipment, and other infrastructure. ... A 1% performance improvement in code will almost produce a 1% cost savings, which for a data center at scale will be a significant amount of money. Reference
C++ Tooling
- Clang & LLVM
- such as various kinds of sanitiziers.
- Clang's own standard library implementation: libc++
- Metashell is an interactive environment for template metaprogramming
- American fuzzy lop is a security-oriented fuzzer that users code-coverage information from the binary under test to guide its generation of test cases.
- DXR is a source code indexer for large code bases by Mozilla
Chapter 4: The Beast Roars Back
- Clang as the latest import new tool.
- Osv is an operating system written in C++ and optimized for Cloud.
- Standard C++ Foundation, see also C++ ISO Faq
- Bjarne Stroustrup's FAQ
- Conferences
- C++Now
- CppCon
- Meeting C++
- BoostCon
- Videos
- CppCon, BoostCon, Meeting C++ all have official Youtube channel
- Channel 9: C9::GoingNative
Chapter 5: Digging Deep on Modern C++
- Type Inference:
autoanddecltype. (seeuniq.cc,lenminmax.cc) - Move Semantics (see
uniq.cc) - No More Output Parameteres, multiple return and structured binding (see
lenminmax.cc) - Inner Function with Lambdas (see
merge_sort.cc) - Lambdas as a Scope with a Return Value (see
producer_consumer.cc)
Chapter 6: The Future of C++
C++ Working Groups
- Concurrency
- Modules
- File System
- work based on
Boost.Filesystemv3.
- work based on
- Networking (inactive)
- TS: A small set of network-related libraries
- Transactional Memory
- Numerics
- Reflection
- Concepts
- Range
- Feature Test
- Database (inactive, handed by the Library Evolution working group)
- Undefined and Unspecified Behaviors
- I/O
- Library Evolution