Appendix 3: Modern C++ Feature Index

June 7, 2026 · View on GitHub

This appendix groups the main features covered in this book by standard version and notes the chapter where each appears, so you can browse "by version" or quickly locate a feature later. If you are already familiar with the content of a given version, feel free to jump straight to the section you need.

C++11 / C++14

FeatureChapter
nullptrChapter 2
constexpr (relaxed in C++14)Chapter 2
Initializer lists (std::initializer_list)Chapter 2
auto type deductionChapter 2
decltype / decltype(auto) (C++14)Chapter 2
Tail return typeChapter 2
Range-based for loopChapter 2
External / alias / default / variadic templatesChapter 2
Delegating and inheriting constructorsChapter 2
Explicit override / finalChapter 2
Explicit = default / = deleteChapter 2
Strongly-typed enums (enum class)Chapter 2
SFINAE and std::enable_ifChapter 2
Lambda expressions, generic lambdas (C++14)Chapter 3
std::function, std::bindChapter 3
Rvalue references, move semantics, perfect forwardingChapter 3
std::array, std::forward_list, unordered containers, std::tupleChapter 4
Smart pointers shared_ptr / unique_ptr / weak_ptr, make_unique (C++14)Chapter 5
Regular expressions (std::regex)Chapter 6
Threads, mutexes, futures, condition variables, atomics & memory modelChapter 7
long long, noexcept, raw/user-defined literals, memory alignmentChapter 9

C++17

FeatureChapter
Structured bindingsChapter 2
if / switch init-statementsChapter 2
if constexprChapter 2
Fold expressions, auto non-type template parametersChapter 2
Inline variables, nested namespaces, constexpr lambdaChapter 2
Single-argument static_assert, new aggregate rulesChapter 2
Boolean logic metafunctions, __has_includeChapter 2
Guaranteed copy elisionChapter 3
std::string_view, std::byteChapter 4
Associative container improvements (try_emplace / merge …), std::pmrChapter 4
std::filesystemChapter 8
new for over-aligned typesChapter 9
Mathematical special functionsChapter 9

C++20

FeatureChapter
Concepts and constraintsChapter 10
ModulesChapter 10
RangesChapter 10
CoroutinesChapter 10
std::bit_castChapter 9

C++23

FeatureChapter
Deducing this (explicit object parameter)Chapter 11
if consteval, multidimensional subscriptChapter 11
auto(x), static operator(), [[assume]]Chapter 11
std::expectedChapter 11
std::print / std::printlnChapter 11
std::mdspan, std::flat_map / std::flat_setChapter 11
Ranges additions (zip …), string::contains, std::byteswapChapter 11

C++26 (outlook)

FeatureChapter
Static reflectionChapter 12
ContractsChapter 12
Pack indexing, = delete with a reason, the placeholder _Chapter 12
std::execution (senders / receivers)Chapter 12
Saturation arithmeticChapter 12

Table of Content | Previous Chapter

Licenses

Creative Commons License
This work was written by Ou Changkun and licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. The code of this repository is open sourced under the MIT license.