about
10/27/2022
C++ Bites Survey
CppBites - Survey
C++ Core, C++11, C++14, C++17, C++20
Table 1. - C++ core features
Feature | Contents |
---|---|
memory model | static, stack, heap |
type system | primitive, library, user-defined |
Classes | layout, anatomy, default operations |
Templates | template functions and classes |
Standard Template Library | containers, iterators, and algorithms |
Table 2. - C++ feature additions
C++ 11 | Contents |
---|---|
auto | type inference declaration |
shared_ptr | reference counting smart pointer |
range-based for loops | iterations over collections |
move | transfer ownership of resources |
lambdas | local anonymous functions |
variadic templates | auto generated template arguments |
more things | more additions and refinements |
C++ 14 | Contents |
function return type deduction | declare type deduced by compiler |
variable templates | variables with template types |
aggregate member initialization | initializes aggregate from braced initialization list |
generic lambdas | declare parameter type deduced by compiler (auto, auto&) |
shared_mutex | provides both shared and exclusive access |
tuple addressing via type | access members by type, not position |
quoted stream | read and write quoted strings without editing |
more things | more additions and refinements |
C++ 17 | Contents |
if constexpr | compile time switch |
structured bindings | bind bracketed list to aggregate, yields named member values |
fold expression | expands parameter pack (from variadic) over binary operator |
std::filesystem() | library for managing directory access |
std::apply() | invoke callable object with tuple of arguments |
std::any() | type-safe container for any copy-able type |
more things | more additions and refinements |
C++ 20 | contents |
concepts | type bounds for template arguments |
ranges | interator-like object that contains members that are return types for iterator methods, e.g., begin for begin(), end for end() |
std::format | string formatting library |
modules | share declarations and definitions across translation units |
coroutines | function that can suspend execution to be resumed later |
operator <=> declaration | provides defaulted operations for <, =, > |
__FILE__ and __LINE__ | compile-time constants for current file and source line |
more things | more additions and refinements |
References
reference | comments |
---|---|
Wikipedia C++ | Survey of language origin, evolution, and properties |
C++ 11 - Herb Sutter video | Survey of important advancements |
Back to Basics - Herb Sutter video | Thoughtful advice about developing with C++ |
C++ 11 - Wikipedia | Survey of C++ 11 standard |
Writing good C++14 by default - Herb Sutter video | Writing relatively simple and clear C++ using features of C++14 |
C++ 14 - Wikipedia | Survey of C++ 14 standard |
C++ 17 the good and ugly - Nicolai Josuttis video | Informed opinions about C++ 17 |
C++ 17 features - Bryce Lelbach video | Survey of selected features |
C++ 17 - Wikipedia | Survey of C++ 17 standard |
Almost complete overview of C++20 - Marc Gregoire video | Survey of C++ 20 standard |
C++ 20 - Wikipedia | Survey of C++ 20 standard |