diff --git a/MODERNCPP_REMINDER.txt b/MODERNCPP_REMINDER.txt index 7f5aee0..257f340 100644 --- a/MODERNCPP_REMINDER.txt +++ b/MODERNCPP_REMINDER.txt @@ -298,7 +298,6 @@ [PHASES OF TRANSLATION] -[STANDARD LIBRARY] [LIFETIME] * Automatic: created when its definition is encountered and destroyed when its name goes out of scope. @@ -315,6 +314,124 @@ * violating noexcept * calling quick_exit() +[STANDARD LIBRARY] +* Concepts library + - Fundamental library concepts. (C++20) +* Coroutines library + - Coroutine support library. (C++20) +* Utilities library + - General purpose utilities: program control, dynamic memory allocation, random numbers, sort and search. + - Functions and macro constants for signal management. + - Macro (and function) that saves (and jumps) to an execution context. + - Handling of variable length argument lists. + - Runtime type information utilities. + - std::type_index. (C++11) + - Compile-time type information. (C++11) + - std::bitset class template. + - Function objects, Function invocations, Bind operations and Reference wrappers. + - Various utility components. + - C-style time/date utilites. + - C++ time utilites. (C++11) + - Standard macros and typedefs. + - std::initializer_list class template. (C++11) + - std::tuple class template. (C++11) + - std::any class. (C++17) + - std::optional class template. (C++17) + - std::variant class template. (C++17) + - Three-way comparison operator support. (C++20) + - Supplies implementation-dependent library information. (C++20) + - Supplies means to obtain source code location. (C++20) +* Dynamic memory management + - Low-level memory management utilities. + - High-level memory management utilities. + - Nested allocator class. (C++11) + - Polymorphic allocators and memory resources. (C++17) +* Numeric limits + - Limits of integral types. + - Limits of floating-point types. + - Fixed-width integer types and limits of other types. (C++11) + - Formatting macros, intmax_t and uintmax_t math and conversions. (C++11) + - Uniform way to query properties of arithmetic types. +* Error handling + - Exception handling utilities. + - Standard exception objects. + - Conditionally compiled macro that compares its argument to zero. + - Defines std::error_code, a platform-dependent error code. (C++11) + - Macro containing the last error number. +* Strings library + - Functions to determine the category of narrow characters. + - Functions to determine the category of wide characters. + - Various narrow character string handling functions. + - Various wide and multibyte string handling functions. + - C-style Unicode character conversion functions. (C++11) + - std::basic_string class template. + - std::basic_string_view class template. (C++17) + - std::to_chars and std::from_chars. (C++17) + - Formatting library including std::format. (C++20) +* Containers library + - std::array container. (C++11) + - std::vector container. + - std::deque container. + - std::list container. + - std::forward_list container. (C++11) + - std::set and std::multiset associative containers. + - std::map and std::multimap associative containers. + - std::unordered_set and std::unordered_multiset unordered associative containers. (C++11) + - std::unordered_map and std::unordered_multimap unordered associative containers. (C++11) + - std::stack container adaptor. + - std::queue and std::priority_queue container adaptors. + - std::span view. (C++20) +* Iterators library + - Range iterators. +* Ranges library + - Range access, primitives, requirements, utilities and adaptors. (C++20) +* Algorithms library + - Algorithms that operate on ranges. + - Predefined execution policies for parallel versions of the algorithms. (C++17) +* Numerics library + - Common mathematics functions. + - Complex number type. + - Class for representing and manipulating arrays of values. + - Random number generators and distributions. (C++11) + - Numeric operations on values in ranges. + - Compile-time rational arithmetic. (C++11) + - Floating-point environment access functions. (C++11) + - Bit manipulation functions. (C++20) + - (C++20)Math constants. +* Localization library + - Localization utilities. + - C localization utilities. + - Unicode conversion facilities.(C++11, deprecated in C++17) +* Input/output library + - Forward declarations of all classes in the input/output library. + - std::ios_base class, std::basic_ios class template and several typedefs. + - std::basic_istream class template and several typedefs. + - std::basic_ostream, std::basic_iostream class templates and several typedefs. + - Several standard stream objects. + - std::basic_fstream, std::basic_ifstream, std::basic_ofstream class templates and several typedefs. + - std::basic_stringstream, std::basic_istringstream, std::basic_ostringstream class templates and several typedefs. + - std::basic_osyncstream, std::basic_syncbuf, and typedefs. (C++20) + - std::strstream, std::istrstream, std::ostrstream. (deprecated in C++98) + - Helper functions to control the format of input and output. + - std::basic_streambuf class template. + - C-style input-output functions. +* Filesystem library + - std::path class and supporting functions. (C++17) +* Regular Expressions library + - Classes, algorithms and iterators to support regular expression processing. (C++11) +* Atomic Operations library + - Atomic operations library. (C++11) +* Thread support library + - std::thread class and supporting functions. (C++11) + - Stop tokens for std::jthread. (C++20) + - Mutual exclusion primitives. (C++11) + - Shared mutual exclusion primitives. (C++14) + - Primitives for asynchronous computations. (C++11) + - Thread waiting conditions. (C++11) + - Semaphores. (C++20) + - Latches. (C++20) + - Barriers. (C++20) + [NOTES] * prefer {} initialization over alternatives unless you have strong reason not to. * prefer = when using auto rather than {} for initialization.