ASCII chart Compiler support Headers Named requirements
Language
Basic concepts C++ keywords Preprocessor Expressions Declaration Initialization Functions Statements Classes Templates Exceptions
Concepts library (C++20)
Utilities library
Program utilities Variadic arguments Type operations Relational comparators (C++20) Integer comparison (C++20) String conversions (C++17) Feature test macros (C++20) language − library hash (C++11) bitset initializer_list (C++11) pair − tuple (C++11) integer_sequence (C++14) optional (C++17) variant (C++17) any (C++17) source_location (C++20)
Type support
Fixed width integer types (C++11) byte (C++17) numeric_limits type_info type_index (C++11) integral_constant (C++11) endian (C++20)
Dynamic memory management
allocator
unique_ptr shared_ptr weak_ptr owner_less enable_shared_from_this default_delete allocator_traits pointer_safety scoped_allocator_adaptor
polymorphic_allocator memory_resource pool_options synchronized_pool_resource unsynchronized_pool_resource monotonic_buffer_resource
Error handling
exception exception_ptr (C++11) nested_exception (C++11) logic_error invalid_argument domain_error length_error out_of_range runtime_error range_error overflow_error underflow_error system_error (C++11) error_category (C++11) error_condition (C++11) errc (C++11) error_code (C++11)
Filesystem library (C++17)
path filesystem_error directory_entry directory_iterator recursive_directory_iterator file_status space_info file_type perms perm_options copy_options directory_options file_time_type
Containers library
span (C++20) array (C++11) vector − vector<bool> deque list − forward_list (C++11) set − multiset map − multimap unordered_set (C++11) unordered_multiset (C++11) unordered_map (C++11) unordered_multimap (C++11) stack − queue − priority_queue
Iterators library
iterator_traits incrementable_traits (C++20) readable_traits (C++20) default_sentinel_t (C++20) unreachable_sentinel_t (C++20) common_iterator (C++20) move_iterator (C++11) move_sentinel (C++20) counted_iterator (C++20) reverse_iterator back_insert_iterator front_insert_iterator insert_iterator istream_iterator ostream_iterator istreambuf_iterator ostreambuf_iterator
Ranges library (C++20)
ranges::view_interface ranges::subrange views::empty views::single views::iota views::istream views::all views::filter views::transform views::take − views::take_while views::join views::split − views::lazy_split views::counted views::common views::reverse views::elements − views::keys − views::values ranges::ref_view ranges::owning_view
Input/output library
basic_streambuf basic_filebuf basic_stringbuf basic_syncbuf (C++20) ios_base basic_ios basic_istream – basic_ostream basic_osyncstream (C++20) basic_iostream basic_ifstream – basic_ofstream basic_fstream basic_istringstream – basic_ostringstream basic_stringstream io_errc I/O manipulators C-style I/O
Date and time (C++11)
duration − time_point system_clock − steady_clock high_resolution_clock
utc_clock − tai_clock gps_clock − file_clock local_t clock_time_conversion day − month − year − etc. hh_mm_ss tzdb − tzdb_list sys_info − local_info time_zone zoned_traits zoned_time leap_second time_zone_link nonexistent_local_time ambiguous_local_time
Numerics library
Floating point maths functions Integer maths functions (C++17) Niche maths functions (C++17) Maths constants (C++20) Floating point environment Pseudo-random number generation Compile-time rational arithmetic (C++11) Bit manipulation (C++20) complex valarray
Strings library
char_traits basic_string basic_string_view (C++17) Null-terminated byte strings Null-terminated multibyte strings Null-terminated wide strings
Regular expressions library (C++11)
basic_regex sub_match match_results regex_iterator regex_token_iterator regex_error regex_traits
Formatting library (C++20)
formatter format_parse_context format_context basic_format_arg format_args format_error
Localizations library
locale codecvt_base codecvt_byname codecvt messages_base messages_byname messages ctype_base ctype_byname ctype – ctype<char> time_base time_get – time_put time_get_byname – time_put_byname money_base money_get – money_put moneypunct moneypunct_byname num_get – num_put numpunct numpunct_byname collate collate_byname
Thread support library (C++11)
thread – jthread (C++20) mutex – timed_mutex recursive_mutex – recursive_timed_mutex shared_mutex (C++17) – shared_timed_mutex (C++14) lock_guard scoped_lock (C++17) unique_lock shared_lock (C++14) once_flag condition_variable – condition_variable_any promise packaged_task future – shared_future async launch future_status future_error future_category future_errc stop_token (C++20) stop_source (C++20) stop_callback (C++20) counting_semaphore (C++20) latch (C++20) barrier (C++20)
Atomic operations library (C++11)
atomic atomic_ref (C++20) atomic_flag memory_order
Function objects
function (C++11) default_searcher (C++17) boyer_moore_searcher (C++17) boyer_moore_horspool_searcher (C++17) reference_wrapper (C++11) plus – minus multiplies – divides – modulus negate equal_to – not_equal_to greater – greater_equal less – less_equal logical_and logical_or logical_not bit_and bit_or bit_xor bit_not (C++14)
Constrained algorithms
Algorithms library
sequenced_policy parallel_policy parallel_unsequenced_policy seq – par – par_unseq
all_of() (C++11) – any_of() (C++11) – none_of() (C++11) for_each() – for_each_n() (C++17) count() – count_if() mismatch() find() – find_if() – find_if_not() (C++11) find_end() find_first_of() adjacent_find() search() – search_n()
copy() – copy_n() (C++11) – copy_backward() copy_if() (C++11) move() (C++11) – move_backward() (C++11) fill() – fill_n() transform() generate() – generate_n() remove() – remove_if() remove_copy() – remove_copy_if() replace() – replace_if() replace_copy() – replace_copy_if() swap() – iter_swap() swap_ranges() reverse() – reverse_copy() shift_left() (C++20) – shift_right() (C++20) rotate() – rotate_copy() shuffle() (C++11) sample() (C++17) unique() – unique_copy()
is_partitioned() (C++11) partition() – partition_copy() (C++11) stable_partition() partition_point() (C++11)
is_sorted() (C++11) – is_sorted_until() (C++11) sort() – stable_sort() partial_sort() – partial_sort_copy() nth_element()
equal_range() lower_bound() – upper_bound() binary_search()
merge() – inplace_merge() includes() set_difference() set_intersection() set_symmetric_difference() set_union()
is_heap() (C++11) – is_heap_until() (C++11) make_heap() – sort_heap() push_heap() – pop_heap()
max() – max_element() min() – min_element() minmax() (C++11) – minmax_element() (C++11) clamp() (C++17)
equal() lexicographical_compare() lexicographical_compare_three_way() (C++20)
is_permutation() (C++11) next_permutation() prev_permutation()
iota() (C++11) accumulate() inner_product() adjacent_difference() partial_sum() reduce() (C++17) exclusive_scan() (C++17) inclusive_scan() (C++17) transform_reduce() (C++17) transform_exclusive_scan() (C++17) transform_inclusive_scan() (C++17)
Technical specifications
Standard library extensions v2 (library fundamentals TS v2)
propagate_const observer_ptr source_location ostream_joiner make_array to_array randint reseed sample shuffle detection idiom uniform container erasure
Feature Test Recommendations
Concurrency library extensions (concurrency TS)
future shared_future promise packaged_task latch barrier flex_barrier
Transactional Memory (TM TS)
External Links − Non-ANSI/ISO Libraries − Index − std Symbol Index