Namespaces
Variants
Views
Actions

C++ standard libraries extensions

From cppreference.com

Template:cpp/experimental/lib extensions/navbar

The C++ Extensions for Library Fundamentals, ISO/IEC TS 19568:xxxx, defines the following new components for the C++ standard library:

Contents

[edit] optional objects

Class template std::experimental::optional for representing optional objects.

[edit] class any

[edit] class template basic_string_view

[edit] Type-erased and polymorphic allocators

[edit] Sampling and searching algorithms

Defined in header <experimental/algorithm>
selects n random elements from a sequence
(function template)
applies a Searcher to a sequence
(function template)
Defined in header <experimental/functional>
standard C++ library search algorithm implementation
(class template)
helper function to create a default_searcher
(function template)
Boyer-Moore search algorithm implementation
(class template)
helper function to create a boyer_moore_searcher
(function template)
Boyer-Moore-Horspool search algorithm implementation
(class template)
helper function to create a boyer_moore_horspool_searcher
(function template)

[edit] General utilities

Defined in header <experimental/utility>
placeholder type for type erasure, such as in allocators
(class)
Defined in header <experimental/tuple>
exposes std::tuple_size as a variable template
(variable template)
calls a function to a tuple of arguments
(function template)
Metaprogramming and type traits
Defined in header <experimental/type_traits>
exposes std::is_void as a variable template
(variable template)
exposes stdis_null_pointer as a variable template
(variable template)

[edit] Feature test macros

Defined in header <experimental/optional>
__cpp_lib_experimental_optional
a value of at least 201411 indicates that the optional type is supported
(macro constant)
Defined in header <experimental/any>
__cpp_lib_experimental_any
a value of at least 201411 indicates that the any type is supported
(macro constant)
Defined in header <experimental/string_view>
__cpp_lib_experimental_string_view
a value of at least 201411 indicates that basic_string_view template is supported
(macro constant)
Defined in header <experimental/tuple>
__cpp_lib_experimental_apply
a value of at least 201402 indicates that the tuple apply() function is supported
(macro constant)
Defined in header <experimental/type_traits>
__cpp_lib_experimental_type_trait_variable_templates
a value of at least 201402 indicates that variable template type traits are supported
(macro constant)
Defined in header <experimental/type_traits>
__cpp_lib_experimental_invocation_type
a value of at least 201406 indicates that invocation type traits are supported
(macro constant)
Defined in header <experimental/functional>
__cpp_lib_experimental_boyer_moore_searching
a value of at least 201411 indicates that additional searching algorithms are supported
(macro constant)
Defined in header <experimental/functional>
__cpp_lib_experimental_function_erased_allocator
a value of at least 201406 indicates that type-erased allocator for std::function is supported
(macro constant)
Defined in header <experimental/future>
__cpp_lib_experimental_promise_erased_allocator
a value of at least 201406 indicates that type-erased allocator for std::promise is supported
(macro constant)
Defined in header <experimental/future>
__cpp_lib_experimental_packaged_task_erased_allocator
a value of at least 201406 indicates that type-erased allocator for std::packaged_task is supported
(macro constant)
Defined in header <experimental/memory>
__cpp_lib_experimental_shared_ptr_arrays
a value of at least 201406 indicates that shared_ptr arrays are supported
(macro constant)
Defined in header <experimental/memory_resource>
__cpp_lib_experimental_memory_resources
a value of at least 201402 indicates that polymorphic memory resources are supported
(macro constant)
Defined in header <experimental/algorithm>
__cpp_lib_experimental_sample
a value of 201402 indicates that the sample algorithm is supported
(macro constant)