std::experimental Namespace Reference

## Classes

class | any
class | bad_any_cast
class | bad_optional_access
class | basic_string_view
struct | in_place_t
struct | nullopt_t
class | optional
class | ostream_joiner
struct | owner_less< shared_ptr< _Tp > >
struct | owner_less< weak_ptr< _Tp > >
class | propagate_const

## Typedefs

template<typename _RAIter , typename _Hash , typename _Pred , typename _Val = typename iterator_traits<_RAIter>::value_type, typename _Diff = typename iterator_traits<_RAIter>::difference_type>
using | __boyer_moore_base_t = std::conditional_t< std::__is_byte_like< _Val, _Pred >::value, __boyer_moore_array_base< _Diff, 256, _Pred >, __boyer_moore_map_base< _Val, _Diff, _Hash, _Pred > >
using | erased_type = std::__erased_type
using | string_view = basic_string_view< char >
using | u16string_view = basic_string_view< char16_t >
using | u32string_view = basic_string_view< char32_t >
using | wstring_view = basic_string_view< wchar_t >

## Functions

template<typename _Fn , typename _Tuple , std::size_t... _Idx>
constexpr decltype(auto) | __apply_impl (_Fn &&__f, _Tuple &&__t, std::index_sequence< _Idx... >)
template<typename _Tp , size_t _Nm, size_t... _Idx>
constexpr array< remove_cv_t< _Tp >, _Nm > | __to_array (_Tp(&__a)[_Nm], index_sequence< _Idx... >)
std::default_random_engine & | _S_randint_engine ()
template<typename _ValueType >
_ValueType | any_cast (const any &__any)
template<typename _Fn , typename _Tuple >
constexpr decltype(auto) | apply (_Fn &&__f, _Tuple &&__t)
template<typename _Tp >
bool | atomic_compare_exchange_strong (shared_ptr< _Tp > *__p, shared_ptr< _Tp > *__v, shared_ptr< _Tp > __w)
template<typename _Tp >
bool | atomic_compare_exchange_strong_explicit (shared_ptr< _Tp > *__p, shared_ptr< _Tp > *__v, shared_ptr< _Tp > __w, memory_order __success, memory_order __failure)
template<typename _Tp >
bool | atomic_compare_exchange_weak (shared_ptr< _Tp > *__p, shared_ptr< _Tp > *__v, shared_ptr< _Tp > __w)
template<typename _Tp >
bool | atomic_compare_exchange_weak_explicit (shared_ptr< _Tp > *__p, shared_ptr< _Tp > *__v, shared_ptr< _Tp > __w, memory_order __success, memory_order __failure)
template<typename _Tp >
void | atomic_exchange (shared_ptr< _Tp > *__p, shared_ptr< _Tp > __r)
template<typename _Tp >
shared_ptr< _Tp > | atomic_exchange_explicit (const shared_ptr< _Tp > *__p, shared_ptr< _Tp > __r, memory_order __mo)
template<typename _Tp >
bool | atomic_is_lock_free (const shared_ptr< _Tp > *__p)
template<typename _Tp >
shared_ptr< _Tp > | atomic_load (const shared_ptr< _Tp > *__p)
template<typename _Tp >
shared_ptr< _Tp > | atomic_load_explicit (const shared_ptr< _Tp > *__p, memory_order __mo)
template<typename _Tp >
void | atomic_store (shared_ptr< _Tp > *__p, shared_ptr< _Tp > __r)
template<typename _Tp >
shared_ptr< _Tp > | atomic_store_explicit (const shared_ptr< _Tp > *__p, shared_ptr< _Tp > __r, memory_order __mo)
template<typename _Tp , typename _Tp1 >
shared_ptr< _Tp > | const_pointer_cast (const shared_ptr< _Tp1 > &__r) noexcept
template<typename _Tp , typename _Tp1 >
shared_ptr< _Tp > | dynamic_pointer_cast (const shared_ptr< _Tp1 > &__r) noexcept
template<typename _CharT , typename _Traits , typename _Alloc , typename _Up >
void | erase (basic_string< _CharT, _Traits, _Alloc > &__cont, const _Up &__value)
template<typename _Tp , typename _Alloc , typename _Up >
void | erase (deque< _Tp, _Alloc > &__cont, const _Up &__value)
template<typename _Tp , typename _Alloc , typename _Up >
void | erase (forward_list< _Tp, _Alloc > &__cont, const _Up &__value)
template<typename _Tp , typename _Alloc , typename _Up >
void | erase (list< _Tp, _Alloc > &__cont, const _Up &__value)
template<typename _Tp , typename _Alloc , typename _Up >
void | erase (vector< _Tp, _Alloc > &__cont, const _Up &__value)
template<typename _CharT , typename _Traits , typename _Alloc , typename _Predicate >
void | erase_if (basic_string< _CharT, _Traits, _Alloc > &__cont, _Predicate __pred)
template<typename _Tp , typename _Alloc , typename _Predicate >
void | erase_if (deque< _Tp, _Alloc > &__cont, _Predicate __pred)
template<typename _Tp , typename _Alloc , typename _Predicate >
void | erase_if (forward_list< _Tp, _Alloc > &__cont, _Predicate __pred)
template<typename _Tp , typename _Alloc , typename _Predicate >
void | erase_if (list< _Tp, _Alloc > &__cont, _Predicate __pred)
template<typename _Key , typename _Tp , typename _Compare , typename _Alloc , typename _Predicate >
void | erase_if (map< _Key, _Tp, _Compare, _Alloc > &__cont, _Predicate __pred)
template<typename _Key , typename _Tp , typename _Compare , typename _Alloc , typename _Predicate >
void | erase_if (multimap< _Key, _Tp, _Compare, _Alloc > &__cont, _Predicate __pred)
template<typename _Key , typename _Compare , typename _Alloc , typename _Predicate >
void | erase_if (multiset< _Key, _Compare, _Alloc > &__cont, _Predicate __pred)
template<typename _Key , typename _Compare , typename _Alloc , typename _Predicate >
void | erase_if (set< _Key, _Compare, _Alloc > &__cont, _Predicate __pred)
template<typename _Key , typename _Tp , typename _Hash , typename _CPred , typename _Alloc , typename _Predicate >
void | erase_if (unordered_map< _Key, _Tp, _Hash, _CPred, _Alloc > &__cont, _Predicate __pred)
template<typename _Key , typename _Tp , typename _Hash , typename _CPred , typename _Alloc , typename _Predicate >
void | erase_if (unordered_multimap< _Key, _Tp, _Hash, _CPred, _Alloc > &__cont, _Predicate __pred)
template<typename _Key , typename _Hash , typename _CPred , typename _Alloc , typename _Predicate >
void | erase_if (unordered_multiset< _Key, _Hash, _CPred, _Alloc > &__cont, _Predicate __pred)
template<typename _Key , typename _Hash , typename _CPred , typename _Alloc , typename _Predicate >
void | erase_if (unordered_set< _Key, _Hash, _CPred, _Alloc > &__cont, _Predicate __pred)
template<typename _Tp , typename _Alloc , typename _Predicate >
void | erase_if (vector< _Tp, _Alloc > &__cont, _Predicate __pred)
template<typename _Mn , typename _Nn >
constexpr common_type_t< _Mn, _Nn > | gcd (_Mn __m, _Nn __n) noexcept
template<typename _Del , typename _Tp >
_Del * | get_deleter (const shared_ptr< _Tp > &__p) noexcept
template<typename _Tp >
constexpr const _Tp & | get_underlying (const propagate_const< _Tp > &__pt) noexcept
template<typename _Tp >
constexpr _Tp & | get_underlying (propagate_const< _Tp > &__pt) noexcept
template<typename _Mn , typename _Nn >
constexpr common_type_t< _Mn, _Nn > | lcm (_Mn __m, _Nn __n)
template<typename _Dest = void, typename... _Types>
constexpr array< typename __make_array_elem< _Dest, _Types... >::type, sizeof...(_Types)> | make_array (_Types &&... __t)
template<typename _RAIter , typename _Hash = std::hash<typename std::iterator_traits<_RAIter>::value_type>, typename _BinaryPredicate = equal_to<>>
boyer_moore_horspool_searcher< _RAIter, _Hash, _BinaryPredicate > | make_boyer_moore_horspool_searcher (_RAIter __pat_first, _RAIter __pat_last, _Hash __hf=_Hash(), _BinaryPredicate __pred=_BinaryPredicate())
template<typename _RAIter , typename _Hash = std::hash<typename std::iterator_traits<_RAIter>::value_type>, typename _BinaryPredicate = equal_to<>>
boyer_moore_searcher< _RAIter, _Hash, _BinaryPredicate > | make_boyer_moore_searcher (_RAIter __pat_first, _RAIter __pat_last, _Hash __hf=_Hash(), _BinaryPredicate __pred=_BinaryPredicate())
template<typename _ForwardIterator , typename _BinaryPredicate = std::equal_to<>>
default_searcher< _ForwardIterator, _BinaryPredicate > | make_default_searcher (_ForwardIterator __pat_first, _ForwardIterator __pat_last, _BinaryPredicate __pred=_BinaryPredicate())
template<typename _Tp >
observer_ptr< _Tp > | make_observer (_Tp *__p) noexcept
template<typename _CharT , typename _Traits , typename _DelimT >
ostream_joiner< decay_t< _DelimT >, _CharT, _Traits > | make_ostream_joiner (basic_ostream< _CharT, _Traits > &__os, _DelimT &&__delimiter)
template<typename _Fn >
auto | not_fn (_Fn &&__fn) noexcept(std::is_nothrow_constructible< std::decay_t< _Fn >, _Fn && >::value)
template<typename _CharT , typename _Traits >
constexpr bool | operator!= (__type_identity_t< basic_string_view< _CharT, _Traits >> __x, basic_string_view< _CharT, _Traits > __y) noexcept
template<typename _CharT , typename _Traits >
constexpr bool | operator!= (basic_string_view< _CharT, _Traits > __x, __type_identity_t< basic_string_view< _CharT, _Traits >> __y) noexcept
template<typename _CharT , typename _Traits >
constexpr bool | operator!= (basic_string_view< _CharT, _Traits > __x, basic_string_view< _CharT, _Traits > __y) noexcept
template<typename _Tp , typename _Up >
constexpr bool | operator!= (const _Tp &__t, const propagate_const< _Up > &__pu)
template<typename _Tp , typename _Up >
constexpr bool | operator!= (const propagate_const< _Tp > &__pt, const _Up &__u)
template<typename _Tp , typename _Up >
constexpr bool | operator!= (const propagate_const< _Tp > &__pt, const propagate_const< _Up > &__pu)
template<typename _Tp >
constexpr bool | operator!= (const propagate_const< _Tp > &__pt, nullptr_t)
template<typename _Tp >
bool | operator!= (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
template<typename _Tp1 , typename _Tp2 >
bool | operator!= (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept
template<typename _Tp >
constexpr bool | operator!= (nullptr_t, const propagate_const< _Tp > &__pu)
template<typename _Tp >
bool | operator!= (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
template<typename _Tp >
bool | operator!= (nullptr_t, observer_ptr< _Tp > __p) noexcept
template<typename _Tp >
bool | operator!= (observer_ptr< _Tp > __p, nullptr_t) noexcept
template<typename _Tp , typename _Up >
bool | operator!= (observer_ptr< _Tp > __p1, observer_ptr< _Up > __p2)
constexpr basic_string_view< char > | operator""sv (const char *__str, size_t __len) noexcept
constexpr basic_string_view< char16_t > | operator""sv (const char16_t *__str, size_t __len) noexcept
constexpr basic_string_view< char32_t > | operator""sv (const char32_t *__str, size_t __len) noexcept
constexpr basic_string_view< wchar_t > | operator""sv (const wchar_t *__str, size_t __len) noexcept
template<typename _CharT , typename _Traits >
constexpr bool | operator< (__type_identity_t< basic_string_view< _CharT, _Traits >> __x, basic_string_view< _CharT, _Traits > __y) noexcept
template<typename _CharT , typename _Traits >
constexpr bool | operator< (basic_string_view< _CharT, _Traits > __x, __type_identity_t< basic_string_view< _CharT, _Traits >> __y) noexcept
template<typename _CharT , typename _Traits >
constexpr bool | operator< (basic_string_view< _CharT, _Traits > __x, basic_string_view< _CharT, _Traits > __y) noexcept
template<typename _Tp , typename _Up >
constexpr bool | operator< (const _Tp &__t, const propagate_const< _Up > &__pu)
template<typename _Tp , typename _Up >
constexpr bool | operator< (const propagate_const< _Tp > &__pt, const _Up &__u)
template<typename _Tp , typename _Up >
constexpr bool | operator< (const propagate_const< _Tp > &__pt, const propagate_const< _Up > &__pu)
template<typename _Tp >
bool | operator< (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
template<typename _Tp1 , typename _Tp2 >
bool | operator< (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept
template<typename _Tp >
bool | operator< (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
template<typename _Tp , typename _Up >
bool | operator< (observer_ptr< _Tp > __p1, observer_ptr< _Up > __p2)
template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & | operator<< (basic_ostream< _CharT, _Traits > &__os, basic_string_view< _CharT, _Traits > __str)
template<typename _Ch , typename _Tr , typename _Tp >
std::basic_ostream< _Ch, _Tr > & | operator<< (std::basic_ostream< _Ch, _Tr > &__os, const shared_ptr< _Tp > &__p)
template<typename _CharT , typename _Traits >
constexpr bool | operator<= (__type_identity_t< basic_string_view< _CharT, _Traits >> __x, basic_string_view< _CharT, _Traits > __y) noexcept
template<typename _CharT , typename _Traits >
constexpr bool | operator<= (basic_string_view< _CharT, _Traits > __x, __type_identity_t< basic_string_view< _CharT, _Traits >> __y) noexcept
template<typename _CharT , typename _Traits >
constexpr bool | operator<= (basic_string_view< _CharT, _Traits > __x, basic_string_view< _CharT, _Traits > __y) noexcept
template<typename _Tp , typename _Up >
constexpr bool | operator<= (const _Tp &__t, const propagate_const< _Up > &__pu)
template<typename _Tp , typename _Up >
constexpr bool | operator<= (const propagate_const< _Tp > &__pt, const _Up &__u)
template<typename _Tp , typename _Up >
constexpr bool | operator<= (const propagate_const< _Tp > &__pt, const propagate_const< _Up > &__pu)
template<typename _Tp >
bool | operator<= (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
template<typename _Tp1 , typename _Tp2 >
bool | operator<= (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept
template<typename _Tp >
bool | operator<= (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
template<typename _Tp , typename _Up >
bool | operator<= (observer_ptr< _Tp > __p1, observer_ptr< _Up > __p2)
template<typename _CharT , typename _Traits >
constexpr bool | operator== (__type_identity_t< basic_string_view< _CharT, _Traits >> __x, basic_string_view< _CharT, _Traits > __y) noexcept
template<typename _CharT , typename _Traits >
constexpr bool | operator== (basic_string_view< _CharT, _Traits > __x, __type_identity_t< basic_string_view< _CharT, _Traits >> __y) noexcept
template<typename _CharT , typename _Traits >
constexpr bool | operator== (basic_string_view< _CharT, _Traits > __x, basic_string_view< _CharT, _Traits > __y) noexcept
template<typename _Tp , typename _Up >
constexpr bool | operator== (const _Tp &__t, const propagate_const< _Up > &__pu)
template<typename _Tp , typename _Up >
constexpr bool | operator== (const propagate_const< _Tp > &__pt, const _Up &__u)
template<typename _Tp , typename _Up >
constexpr bool | operator== (const propagate_const< _Tp > &__pt, const propagate_const< _Up > &__pu)
template<typename _Tp >
constexpr bool | operator== (const propagate_const< _Tp > &__pt, nullptr_t)
template<typename _Tp >
bool | operator== (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
template<typename _Tp1 , typename _Tp2 >
bool | operator== (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept
template<typename _Tp >
constexpr bool | operator== (nullptr_t, const propagate_const< _Tp > &__pu)
template<typename _Tp >
bool | operator== (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
template<typename _Tp >
bool | operator== (nullptr_t, observer_ptr< _Tp > __p) noexcept
template<typename _Tp >
bool | operator== (observer_ptr< _Tp > __p, nullptr_t) noexcept
template<typename _Tp , typename _Up >
bool | operator== (observer_ptr< _Tp > __p1, observer_ptr< _Up > __p2)
template<typename _CharT , typename _Traits >
constexpr bool | operator> (__type_identity_t< basic_string_view< _CharT, _Traits >> __x, basic_string_view< _CharT, _Traits > __y) noexcept
template<typename _CharT , typename _Traits >
constexpr bool | operator> (basic_string_view< _CharT, _Traits > __x, __type_identity_t< basic_string_view< _CharT, _Traits >> __y) noexcept
template<typename _CharT , typename _Traits >
constexpr bool | operator> (basic_string_view< _CharT, _Traits > __x, basic_string_view< _CharT, _Traits > __y) noexcept
template<typename _Tp , typename _Up >
constexpr bool | operator> (const _Tp &__t, const propagate_const< _Up > &__pu)
template<typename _Tp , typename _Up >
constexpr bool | operator> (const propagate_const< _Tp > &__pt, const _Up &__u)
template<typename _Tp , typename _Up >
constexpr bool | operator> (const propagate_const< _Tp > &__pt, const propagate_const< _Up > &__pu)
template<typename _Tp >
bool | operator> (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
template<typename _Tp1 , typename _Tp2 >
bool | operator> (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept
template<typename _Tp >
bool | operator> (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
template<typename _Tp , typename _Up >
bool | operator> (observer_ptr< _Tp > __p1, observer_ptr< _Up > __p2)
template<typename _CharT , typename _Traits >
constexpr bool | operator>= (__type_identity_t< basic_string_view< _CharT, _Traits >> __x, basic_string_view< _CharT, _Traits > __y) noexcept
template<typename _CharT , typename _Traits >
constexpr bool | operator>= (basic_string_view< _CharT, _Traits > __x, __type_identity_t< basic_string_view< _CharT, _Traits >> __y) noexcept
template<typename _CharT , typename _Traits >
constexpr bool | operator>= (basic_string_view< _CharT, _Traits > __x, basic_string_view< _CharT, _Traits > __y) noexcept
template<typename _Tp , typename _Up >
constexpr bool | operator>= (const _Tp &__t, const propagate_const< _Up > &__pu)
template<typename _Tp , typename _Up >
constexpr bool | operator>= (const propagate_const< _Tp > &__pt, const _Up &__u)
template<typename _Tp , typename _Up >
constexpr bool | operator>= (const propagate_const< _Tp > &__pt, const propagate_const< _Up > &__pu)
template<typename _Tp >
bool | operator>= (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
template<typename _Tp1 , typename _Tp2 >
bool | operator>= (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept
template<typename _Tp >
bool | operator>= (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
template<typename _Tp , typename _Up >
bool | operator>= (observer_ptr< _Tp > __p1, observer_ptr< _Up > __p2)
template<typename _IntType >
_IntType | randint (_IntType __a, _IntType __b)
template<typename _Tp , typename _Tp1 >
shared_ptr< _Tp > | reinterpret_pointer_cast (const shared_ptr< _Tp1 > &__r) noexcept
void | reseed ()
void | reseed (default_random_engine::result_type __value)
template<typename _PopulationIterator , typename _SampleIterator , typename _Distance >
_SampleIterator | sample (_PopulationIterator __first, _PopulationIterator __last, _SampleIterator __out, _Distance __n)
template<typename _PopulationIterator , typename _SampleIterator , typename _Distance , typename _UniformRandomNumberGenerator >
_SampleIterator | sample (_PopulationIterator __first, _PopulationIterator __last, _SampleIterator __out, _Distance __n, _UniformRandomNumberGenerator &&__g)
template<typename _ForwardIterator , typename _Searcher >
_ForwardIterator | search (_ForwardIterator __first, _ForwardIterator __last, const _Searcher &__searcher)
template<typename _RandomAccessIterator >
void | shuffle (_RandomAccessIterator __first, _RandomAccessIterator __last)
template<typename _Tp , typename _Tp1 >
shared_ptr< _Tp > | static_pointer_cast (const shared_ptr< _Tp1 > &__r) noexcept
void | swap (any &__x, any &__y) noexcept
template<typename _Tp >
void | swap (observer_ptr< _Tp > &__p1, observer_ptr< _Tp > &__p2) noexcept
template<typename _Tp >
constexpr enable_if_t< __is_swappable< _Tp >::value, void > | swap (propagate_const< _Tp > &__pt, propagate_const< _Tp > &__pt2) noexcept(__is_nothrow_swappable< _Tp >::value)
template<typename _Tp >
void | swap (shared_ptr< _Tp > &__a, shared_ptr< _Tp > &__b) noexcept
template<typename _Tp >
void | swap (weak_ptr< _Tp > &__a, weak_ptr< _Tp > &__b) noexcept
template<typename _Tp , size_t _Nm>
constexpr array< remove_cv_t< _Tp >, _Nm > | to_array (_Tp(&__a)[_Nm]) noexcept(is_nothrow_constructible< remove_cv_t< _Tp >, _Tp & >::value)
template<typename _ValueType >
_ValueType | any_cast (any &__any)
template<typename _ValueType , typename enable_if<!is_move_constructible< _ValueType >::value||is_lvalue_reference< _ValueType >::value, bool >::type = true>
_ValueType | any_cast (any &&__any)
template<typename _ValueType , typename enable_if< is_move_constructible< _ValueType >::value &&!is_lvalue_reference< _ValueType >::value, bool >::type = false>
_ValueType | any_cast (any &&__any)
template<typename _ValueType >
const _ValueType * | any_cast (const any *__any) noexcept
template<typename _ValueType >
_ValueType * | any_cast (any *__any) noexcept

## Variables

template<typename _Yp , typename _Tp >
constexpr bool | __sp_compatible_v
template<typename _Tp , typename _Yp >
constexpr bool | __sp_is_constructible_v
constexpr in_place_t | in_place
template<typename _Tp >
constexpr bool | is_bind_expression_v
template<typename _Tp >
constexpr bool | is_error_code_enum_v
template<typename _Tp >
constexpr bool | is_error_condition_enum_v
template<typename _Tp >
constexpr int | is_placeholder_v
constexpr nullopt_t | nullopt
template<typename _R1 , typename _R2 >
constexpr bool | ratio_equal_v
template<typename _R1 , typename _R2 >
constexpr bool | ratio_greater_equal_v
template<typename _R1 , typename _R2 >
constexpr bool | ratio_greater_v
template<typename _R1 , typename _R2 >
constexpr bool | ratio_less_equal_v
template<typename _R1 , typename _R2 >
constexpr bool | ratio_less_v
template<typename _R1 , typename _R2 >
constexpr bool | ratio_not_equal_v
template<typename _Tp >
constexpr size_t | tuple_size_v
template<typename _Tp >
constexpr bool | is_void_v
template<typename _Tp >
constexpr bool | is_null_pointer_v
template<typename _Tp >
constexpr bool | is_integral_v
template<typename _Tp >
constexpr bool | is_floating_point_v
template<typename _Tp >
constexpr bool | is_array_v
template<typename _Tp >
constexpr bool | is_pointer_v
template<typename _Tp >
constexpr bool | is_lvalue_reference_v
template<typename _Tp >
constexpr bool | is_rvalue_reference_v
template<typename _Tp >
constexpr bool | is_member_object_pointer_v
template<typename _Tp >
constexpr bool | is_member_function_pointer_v
template<typename _Tp >
constexpr bool | is_enum_v
template<typename _Tp >
constexpr bool | is_union_v
template<typename _Tp >
constexpr bool | is_class_v
template<typename _Tp >
constexpr bool | is_function_v
template<typename _Tp >
constexpr bool | is_reference_v
template<typename _Tp >
constexpr bool | is_arithmetic_v
template<typename _Tp >
constexpr bool | is_fundamental_v
template<typename _Tp >
constexpr bool | is_object_v
template<typename _Tp >
constexpr bool | is_scalar_v
template<typename _Tp >
constexpr bool | is_compound_v
template<typename _Tp >
constexpr bool | is_member_pointer_v
template<typename _Tp >
constexpr bool | is_const_v
template<typename _Tp >
constexpr bool | is_volatile_v
template<typename _Tp >
constexpr bool | is_trivial_v
template<typename _Tp >
constexpr bool | is_trivially_copyable_v
template<typename _Tp >
constexpr bool | is_standard_layout_v
template<typename _Tp >
constexpr bool | is_pod_v
template<typename _Tp >
constexpr bool | is_literal_type_v
template<typename _Tp >
constexpr bool | is_empty_v
template<typename _Tp >
constexpr bool | is_polymorphic_v
template<typename _Tp >
constexpr bool | is_abstract_v
template<typename _Tp >
constexpr bool | is_final_v
template<typename _Tp >
constexpr bool | is_signed_v
template<typename _Tp >
constexpr bool | is_unsigned_v
template<typename _Tp , typename... _Args>
constexpr bool | is_constructible_v
template<typename _Tp >
constexpr bool | is_default_constructible_v
template<typename _Tp >
constexpr bool | is_copy_constructible_v
template<typename _Tp >
constexpr bool | is_move_constructible_v
template<typename _Tp , typename _Up >
constexpr bool | is_assignable_v
template<typename _Tp >
constexpr bool | is_copy_assignable_v
template<typename _Tp >
constexpr bool | is_move_assignable_v
template<typename _Tp >
constexpr bool | is_destructible_v
template<typename _Tp , typename... _Args>
constexpr bool | is_trivially_constructible_v
template<typename _Tp >
constexpr bool | is_trivially_default_constructible_v
template<typename _Tp >
constexpr bool | is_trivially_copy_constructible_v
template<typename _Tp >
constexpr bool | is_trivially_move_constructible_v
template<typename _Tp , typename _Up >
constexpr bool | is_trivially_assignable_v
template<typename _Tp >
constexpr bool | is_trivially_copy_assignable_v
template<typename _Tp >
constexpr bool | is_trivially_move_assignable_v
template<typename _Tp >
constexpr bool | is_trivially_destructible_v
template<typename _Tp , typename... _Args>
constexpr bool | is_nothrow_constructible_v
template<typename _Tp >
constexpr bool | is_nothrow_default_constructible_v
template<typename _Tp >
constexpr bool | is_nothrow_copy_constructible_v
template<typename _Tp >
constexpr bool | is_nothrow_move_constructible_v
template<typename _Tp , typename _Up >
constexpr bool | is_nothrow_assignable_v
template<typename _Tp >
constexpr bool | is_nothrow_copy_assignable_v
template<typename _Tp >
constexpr bool | is_nothrow_move_assignable_v
template<typename _Tp >
constexpr bool | is_nothrow_destructible_v
template<typename _Tp >
constexpr bool | has_virtual_destructor_v
template<typename _Tp >
constexpr size_t | alignment_of_v
template<typename _Tp >
constexpr size_t | rank_v
template<typename _Tp , unsigned _Idx = 0>
constexpr size_t | extent_v
template<typename _Tp , typename _Up >
constexpr bool | is_same_v
template<typename _Base , typename _Derived >
constexpr bool | is_base_of_v
template<typename _From , typename _To >
constexpr bool | is_convertible_v
template<typename... _Bn>
constexpr bool | conjunction_v
template<typename... _Bn>
constexpr bool | disjunction_v
template<typename _Pp >
constexpr bool | negation_v
template<typename... >
using | void_t = void
template<template< typename... > class _Op, typename... _Args>
using | is_detected = typename std::__detector< nonesuch, void, _Op, _Args... >::value_t
template<template< typename... > class _Op, typename... _Args>
using | detected_t = typename std::__detector< nonesuch, void, _Op, _Args... >::type
template<typename _Default , template< typename... > class _Op, typename... _Args>
using | detected_or = std::__detected_or< _Default, _Op, _Args... >
template<typename _Default , template< typename... > class _Op, typename... _Args>
using | detected_or_t = typename detected_or< _Default, _Op, _Args... >::type
template<typename _Expected , template< typename... > class _Op, typename... _Args>
using | is_detected_exact = is_same< _Expected, detected_t< _Op, _Args... > >
template<typename _To , template< typename... > class _Op, typename... _Args>
using | is_detected_convertible = is_convertible< detected_t< _Op, _Args... >, _To >
template<template< typename... > class _Op, typename... _Args>
constexpr bool | is_detected_v
template<typename _Expected , template< typename... > class _Op, typename... _Args>
constexpr bool | is_detected_exact_v
template<typename _To , template< typename... > class _Op, typename... _Args>
constexpr bool | is_detected_convertible_v

## Detailed Description

Namespace for features defined in ISO Technical Specifications.

## Function Documentation

## gcd()

template<typename _Mn , typename _Nn >

constexpr common_type_t<_Mn, _Nn> std::experimental::fundamentals_v2::gcd | ( | _Mn | __m,
|  | _Nn | __n
| ) |  |

constexpr noexcept

Greatest common divisor.

Definition at line 57 of file experimental/numeric.

## get_deleter()

template<typename _Del , typename _Tp >

_Del* std::experimental::fundamentals_v2::get_deleter | ( | const shared_ptr< _Tp > & | __p | ) |

inline noexcept

C++14 20.8.2.2.10.

Definition at line 492 of file experimental/bits/shared_ptr.h.

## lcm()

template<typename _Mn , typename _Nn >

constexpr common_type_t<_Mn, _Nn> std::experimental::fundamentals_v2::lcm | ( | _Mn | __m,
|  | _Nn | __n
| ) |  |

constexpr

Least common multiple.

Definition at line 73 of file experimental/numeric.

## make_boyer_moore_horspool_searcher()

template<typename _RAIter , typename _Hash = std::hash<typename std::iterator_traits<_RAIter>::value_type>, typename _BinaryPredicate = equal_to<>>

boyer_moore_horspool_searcher<_RAIter, _Hash, _BinaryPredicate> std::experimental::fundamentals_v1::make_boyer_moore_horspool_searcher | ( | _RAIter | __pat_first,
|  | _RAIter | __pat_last,
|  | _Hash | __hf = `_Hash()`,
|  | _BinaryPredicate | __pred = `_BinaryPredicate()`
| ) |  |

inline

Generator function for boyer_moore_horspool_searcher.

Definition at line 303 of file experimental/functional.

## make_boyer_moore_searcher()

template<typename _RAIter , typename _Hash = std::hash<typename std::iterator_traits<_RAIter>::value_type>, typename _BinaryPredicate = equal_to<>>

boyer_moore_searcher<_RAIter, _Hash, _BinaryPredicate> std::experimental::fundamentals_v1::make_boyer_moore_searcher | ( | _RAIter | __pat_first,
|  | _RAIter | __pat_last,
|  | _Hash | __hf = `_Hash()`,
|  | _BinaryPredicate | __pred = `_BinaryPredicate()`
| ) |  |

inline

Generator function for boyer_moore_searcher.

Definition at line 293 of file experimental/functional.

## make_default_searcher()

template<typename _ForwardIterator , typename _BinaryPredicate = std::equal_to<>>

default_searcher<_ForwardIterator, _BinaryPredicate> std::experimental::fundamentals_v1::make_default_searcher | ( | _ForwardIterator | __pat_first,
|  | _ForwardIterator | __pat_last,
|  | _BinaryPredicate | __pred = `_BinaryPredicate()`
| ) |  |

inline

Generator function for default_searcher.

Definition at line 283 of file experimental/functional.

## make_ostream_joiner()

template<typename _CharT , typename _Traits , typename _DelimT >

ostream_joiner<decay_t<_DelimT>, _CharT, _Traits> std::experimental::fundamentals_v2::make_ostream_joiner | ( | basic_ostream< _CharT, _Traits > & | __os,
|  | _DelimT && | __delimiter
| ) |  |

inline

Object generator for ostream_joiner.

Definition at line 104 of file experimental/iterator.

## not_fn()

template<typename _Fn >

auto std::experimental::fundamentals_v2::not_fn | ( | _Fn && | __fn | ) |

inline noexcept

[func.not_fn] Function template not_fn

Definition at line 372 of file experimental/functional.

## sample()

template<typename _PopulationIterator , typename _SampleIterator , typename _Distance , typename _UniformRandomNumberGenerator >

_SampleIterator std::experimental::fundamentals_v2::sample | ( | _PopulationIterator | __first,
|  | _PopulationIterator | __last,
|  | _SampleIterator | __out,
|  | _Distance | __n,
|  | _UniformRandomNumberGenerator && | __g
| ) |  |

Take a random sample from a population.

Definition at line 61 of file experimental/algorithm.

## Variable Documentation

## is_bind_expression_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_bind_expression_v

constexpr

Variable template for std::is_bind_expression.

Definition at line 61 of file experimental/functional.

## is_placeholder_v

template<typename _Tp >

constexpr int std::experimental::fundamentals_v1::is_placeholder_v

constexpr

Variable template for std::is_placeholder.

Definition at line 65 of file experimental/functional.