|
libstdc++
|
Modules | |
| Function Objects | |
| Memory | |
| Metaprogramming | |
| Rational Arithmetic | |
| Time | |
Classes | |
| struct | std::_Tuple_impl< _Idx, _Elements > |
| struct | std::_Tuple_impl< _Idx, _Head, _Tail... > |
| class | std::bitset< _Nb > |
| struct | std::pair< _T1, _T2 > |
| struct | std::piecewise_construct_t |
| class | std::bitset< _Nb >::reference |
| class | std::tuple< _Elements > |
| class | std::tuple< _T1, _T2 > |
| struct | std::tuple_element< 0, tuple< _Head, _Tail... > > |
| struct | std::tuple_element< __i, tuple< _Head, _Tail... > > |
| struct | std::tuple_element< __i, tuple<> > |
| struct | std::tuple_size< tuple< _Elements... > > |
| struct | std::type_index |
| struct | std::uses_allocator< tuple< _Types... >, _Alloc > |
Macros | |
| #define | __cpp_lib_tuples_by_type |
Typedefs | |
| template<typename _Res , typename _Callable , typename... _Args> | |
| using | std::__can_invoke_as_nonvoid = __enable_if_t< __and_< __not_< is_void< _Res > >, is_convertible< typename __invoke_result< _Callable, _Args... >::type, _Res > >::value, _Res > |
| template<typename _Res , typename _Callable , typename... _Args> | |
| using | std::__can_invoke_as_void = __enable_if_t< __and_< is_void< _Res >, __is_invocable< _Callable, _Args... > >::value, _Res > |
| template<typename _Tp > | |
| using | std::__empty_not_final = typename conditional< __is_final(_Tp), false_type, __is_empty_non_tuple< _Tp > >::type |
| typedef _T1 | std::pair< _T1, _T2 >::first_type |
| typedef _T2 | std::pair< _T1, _T2 >::second_type |
Functions | |
| template<typename _U1 = _T1, typename _U2 = _T2, typename enable_if< __and_< __is_implicitly_default_constructible< _U1 >, __is_implicitly_default_constructible< _U2 >> ::value, bool >::type = true> | |
| constexpr | std::pair< _T1, _T2 >::pair () |
| template<typename _U1 , typename _U2 , typename enable_if< _PCCP::template _MoveConstructiblePair< _U1, _U2 >() &&_PCCP::template _ImplicitlyMoveConvertiblePair< _U1, _U2 >(), bool >::type = true> | |
| constexpr | std::pair< _T1, _T2 >::pair (_U1 &&__x, _U2 &&__y) |
| template<typename _U1 , typename enable_if< _PCCP::template _MoveCopyPair< true, _U1, _T2 >(), bool >::type = true> | |
| constexpr | std::pair< _T1, _T2 >::pair (_U1 &&__x, const _T2 &__y) |
| template<typename _U1 = _T1, typename _U2 = _T2, typename enable_if< _PCCP::template _ConstructiblePair< _U1, _U2 >() &&_PCCP::template _ImplicitlyConvertiblePair< _U1, _U2 >(), bool >::type = true> | |
| constexpr | std::pair< _T1, _T2 >::pair (const _T1 &__a, const _T2 &__b) |
| template<typename _U2 , typename enable_if< _PCCP::template _CopyMovePair< true, _T1, _U2 >(), bool >::type = true> | |
| constexpr | std::pair< _T1, _T2 >::pair (const _T1 &__x, _U2 &&__y) |
| constexpr | std::pair< _T1, _T2 >::pair (const pair &)=default |
| template<typename _U1 , typename _U2 , typename enable_if< _PCCFP< _U1, _U2 >::template _ConstructiblePair< _U1, _U2 >() &&_PCCFP< _U1, _U2 >::template _ImplicitlyConvertiblePair< _U1, _U2 >(), bool >::type = true> | |
| constexpr | std::pair< _T1, _T2 >::pair (const pair< _U1, _U2 > &__p) |
| constexpr | std::pair< _T1, _T2 >::pair (pair &&)=default |
| template<typename _U1 , typename _U2 , typename enable_if< _PCCFP< _U1, _U2 >::template _MoveConstructiblePair< _U1, _U2 >() &&_PCCFP< _U1, _U2 >::template _ImplicitlyMoveConvertiblePair< _U1, _U2 >(), bool >::type = true> | |
| constexpr | std::pair< _T1, _T2 >::pair (pair< _U1, _U2 > &&__p) |
| template<typename... _Args1, typename... _Args2> | |
| constexpr | std::pair< _T1, _T2 >::pair (piecewise_construct_t, tuple< _Args1... >, tuple< _Args2... >) |
| template<typename _Tp > | |
| constexpr _Tp * | std::__addressof (_Tp &__r) noexcept |
| template<typename _Tp , typename _Up = _Tp> | |
| constexpr _Tp | std::__exchange (_Tp &__obj, _Up &&__new_val) |
| template<std::size_t __i, typename _Head , typename... _Tail> | |
| constexpr _Head & | std::__get_helper (_Tuple_impl< __i, _Head, _Tail... > &__t) noexcept |
| template<std::size_t __i, typename _Head , typename... _Tail> | |
| constexpr const _Head & | std::__get_helper (const _Tuple_impl< __i, _Head, _Tail... > &__t) noexcept |
| template<typename _Head , size_t __i, typename... _Tail> | |
| constexpr _Head & | std::__get_helper2 (_Tuple_impl< __i, _Head, _Tail... > &__t) noexcept |
| template<typename _Head , size_t __i, typename... _Tail> | |
| constexpr const _Head & | std::__get_helper2 (const _Tuple_impl< __i, _Head, _Tail... > &__t) noexcept |
| template<typename _Tp , typename _Up = typename __inv_unwrap<_Tp>::type> | |
| constexpr _Up && | std::__invfwd (typename remove_reference< _Tp >::type &__t) noexcept |
| template<typename _Callable , typename... _Args> | |
| constexpr __invoke_result< _Callable, _Args... >::type | std::__invoke (_Callable &&__fn, _Args &&... __args) noexcept(__is_nothrow_invocable< _Callable, _Args... >::value) |
| template<typename _Res , typename _MemFun , typename _Tp , typename... _Args> | |
| constexpr _Res | std::__invoke_impl (__invoke_memfun_deref, _MemFun &&__f, _Tp &&__t, _Args &&... __args) |
| template<typename _Res , typename _MemFun , typename _Tp , typename... _Args> | |
| constexpr _Res | std::__invoke_impl (__invoke_memfun_ref, _MemFun &&__f, _Tp &&__t, _Args &&... __args) |
| template<typename _Res , typename _MemPtr , typename _Tp > | |
| constexpr _Res | std::__invoke_impl (__invoke_memobj_deref, _MemPtr &&__f, _Tp &&__t) |
| template<typename _Res , typename _MemPtr , typename _Tp > | |
| constexpr _Res | std::__invoke_impl (__invoke_memobj_ref, _MemPtr &&__f, _Tp &&__t) |
| template<typename _Res , typename _Fn , typename... _Args> | |
| constexpr _Res | std::__invoke_impl (__invoke_other, _Fn &&__f, _Args &&... __args) |
| template<typename _Res , typename _Callable , typename... _Args> | |
| constexpr __can_invoke_as_nonvoid< _Res, _Callable, _Args... > | std::__invoke_r (_Callable &&__fn, _Args &&... __args) |
| template<typename _Tp > | |
| constexpr _Tp * | std::addressof (_Tp &__r) noexcept |
| template<typename _Tp > | |
| const _Tp * | std::addressof (const _Tp &&)=delete |
| template<typename _Tp > | |
| constexpr _Tp && | std::forward (typename std::remove_reference< _Tp >::type &&__t) noexcept |
| template<typename _Tp > | |
| constexpr _Tp && | std::forward (typename std::remove_reference< _Tp >::type &__t) noexcept |
| template<typename... _Elements> | |
| constexpr tuple< _Elements &&... > | std::forward_as_tuple (_Elements &&... __args) noexcept |
| template<std::size_t __i, typename... _Elements> | |
| constexpr const __tuple_element_t< __i, tuple< _Elements... > > && | std::get (const tuple< _Elements... > &&__t) noexcept |
| template<std::size_t __i, typename... _Elements> | |
| constexpr const __tuple_element_t< __i, tuple< _Elements... > > & | std::get (const tuple< _Elements... > &__t) noexcept |
| template<typename _Tp , typename... _Types> | |
| constexpr const _Tp && | std::get (const tuple< _Types... > &&__t) noexcept |
| template<typename _Tp , typename... _Types> | |
| constexpr const _Tp & | std::get (const tuple< _Types... > &__t) noexcept |
| template<std::size_t __i, typename... _Elements> | |
| constexpr __tuple_element_t< __i, tuple< _Elements... > > && | std::get (tuple< _Elements... > &&__t) noexcept |
| template<std::size_t __i, typename... _Elements> | |
| constexpr __tuple_element_t< __i, tuple< _Elements... > > & | std::get (tuple< _Elements... > &__t) noexcept |
| template<typename _Tp , typename... _Types> | |
| constexpr _Tp && | std::get (tuple< _Types... > &&__t) noexcept |
| template<typename _Tp , typename... _Types> | |
| constexpr _Tp & | std::get (tuple< _Types... > &__t) noexcept |
| template<typename... _Elements> | |
| constexpr tuple< typename __decay_and_strip< _Elements >::__type... > | std::make_tuple (_Elements &&... __args) |
| template<typename _Tp > | |
| constexpr std::remove_reference< _Tp >::type && | std::move (_Tp &&__t) noexcept |
| template<typename _Tp > | |
| constexpr conditional< __move_if_noexcept_cond< _Tp >::value, const _Tp &, _Tp && >::type | std::move_if_noexcept (_Tp &__x) noexcept |
| template<typename... _TElements, typename... _UElements> | |
| constexpr bool | std::operator!= (const tuple< _TElements... > &__t, const tuple< _UElements... > &__u) |
| template<typename... _TElements, typename... _UElements> | |
| constexpr bool | std::operator< (const tuple< _TElements... > &__t, const tuple< _UElements... > &__u) |
| template<typename... _TElements, typename... _UElements> | |
| constexpr bool | std::operator<= (const tuple< _TElements... > &__t, const tuple< _UElements... > &__u) |
| template<typename _U1 , typename _U2 > | |
| constexpr enable_if< __and_< is_assignable< _T1 &, const _U1 & >, is_assignable< _T2 &, const _U2 & > >::value, pair & >::type | std::pair< _T1, _T2 >::operator= (const pair< _U1, _U2 > &__p) |
| template<typename _U1 , typename _U2 > | |
| constexpr enable_if< __and_< is_assignable< _T1 &, _U1 && >, is_assignable< _T2 &, _U2 && > >::value, pair & >::type | std::pair< _T1, _T2 >::operator= (pair< _U1, _U2 > &&__p) |
| constexpr pair & | std::pair< _T1, _T2 >::operator= (typename conditional< __and_< is_copy_assignable< _T1 >, is_copy_assignable< _T2 >>::value, const pair &, const __nonesuch & >::type __p) |
| constexpr pair & | std::pair< _T1, _T2 >::operator= (typename conditional< __and_< is_move_assignable< _T1 >, is_move_assignable< _T2 >>::value, pair &&, __nonesuch && >::type __p) noexcept(__and_< is_nothrow_move_assignable< _T1 >, is_nothrow_move_assignable< _T2 >>::value) |
| template<typename... _TElements, typename... _UElements> | |
| constexpr bool | std::operator== (const tuple< _TElements... > &__t, const tuple< _UElements... > &__u) |
| template<typename... _TElements, typename... _UElements> | |
| constexpr bool | std::operator> (const tuple< _TElements... > &__t, const tuple< _UElements... > &__u) |
| template<typename... _TElements, typename... _UElements> | |
| constexpr bool | std::operator>= (const tuple< _TElements... > &__t, const tuple< _UElements... > &__u) |
| template<typename _Tp > | |
| constexpr enable_if< __and_< __not_< __is_tuple_like< _Tp > >, is_move_constructible< _Tp >, is_move_assignable< _Tp > >::value >::type | std::swap (_Tp &__a, _Tp &__b) noexcept(/*conditional */) is_nothrow_move_assignable< _Tp >> |
| template<typename _Tp , size_t _Nm> | |
| constexpr enable_if< __is_swappable< _Tp >::value >::type | std::swap (_Tp(&__a)[_Nm], _Tp(&__b)[_Nm]) noexcept(/*conditional */) |
| constexpr void | std::pair< _T1, _T2 >::swap (pair &__p) noexcept(__and_< __is_nothrow_swappable< _T1 >, __is_nothrow_swappable< _T2 >>::value) |
| template<typename... _Elements> | |
| constexpr enable_if< __and_< __is_swappable< _Elements >... >::value >::type | std::swap (tuple< _Elements... > &__x, tuple< _Elements... > &__y) noexcept(noexcept(__x.swap(__y))) |
| template<typename... _Elements> | |
| constexpr tuple< _Elements &... > | std::tie (_Elements &... __args) noexcept |
| template<typename... _Tpls, typename = typename enable_if<__and_<__is_tuple_like<_Tpls>...>::value>::type> | |
| constexpr auto | std::tuple_cat (_Tpls &&... __tpls) -> typename __tuple_cat_result< _Tpls... >::__type |
Variables | |
| _T1 | std::pair< _T1, _T2 >::first |
| constexpr _Swallow_assign | std::ignore |
| constexpr piecewise_construct_t | std::piecewise_construct |
| _T2 | std::pair< _T1, _T2 >::second |
| template<typename _T1 , typename _T2 > | |
| constexpr bool | operator== (const pair< _T1, _T2 > &__x, const pair< _T1, _T2 > &__y) |
| template<typename _T1 , typename _T2 > | |
| constexpr bool | operator< (const pair< _T1, _T2 > &__x, const pair< _T1, _T2 > &__y) |
| template<typename _T1 , typename _T2 > | |
| constexpr bool | operator!= (const pair< _T1, _T2 > &__x, const pair< _T1, _T2 > &__y) |
| template<typename _T1 , typename _T2 > | |
| constexpr bool | operator> (const pair< _T1, _T2 > &__x, const pair< _T1, _T2 > &__y) |
| template<typename _T1 , typename _T2 > | |
| constexpr bool | operator<= (const pair< _T1, _T2 > &__x, const pair< _T1, _T2 > &__y) |
| template<typename _T1 , typename _T2 > | |
| constexpr bool | operator>= (const pair< _T1, _T2 > &__x, const pair< _T1, _T2 > &__y) |
| template<typename _T1 , typename _T2 > | |
| constexpr enable_if< __and_< __is_swappable< _T1 >, __is_swappable< _T2 > >::value >::type | swap (pair< _T1, _T2 > &__x, pair< _T1, _T2 > &__y) noexcept(noexcept(__x.swap(__y))) |
| template<typename _T1 , typename _T2 > | |
| constexpr pair< typename __decay_and_strip< _T1 >::__type, typename __decay_and_strip< _T2 >::__type > | make_pair (_T1 &&__x, _T2 &&__y) |
Components deemed generally useful. Includes pair, tuple, forward/move helpers, ratio, function object, metaprogramming and type traits, time, date, and memory functions.
| typedef _T1 std::pair< _T1, _T2 >::first_type |
The type of the first member.
Definition at line 213 of file stl_pair.h.
| typedef _T2 std::pair< _T1, _T2 >::second_type |
The type of the second member.
Definition at line 214 of file stl_pair.h.
|
inlineconstexpr |
The default constructor creates first and second using their respective default constructors.
Definition at line 231 of file stl_pair.h.
|
inlineconstexpr |
Construct from two const lvalues, allowing implicit conversions.
Definition at line 265 of file stl_pair.h.
|
constexprdefault |
Copy constructor.
|
constexprdefault |
Move constructor.
|
inlineconstexpr |
"piecewise construction" using a tuple of arguments for each member.
| __first | Arguments for the first member of the pair. |
| __second | Arguments for the second member of the pair. |
The elements of each tuple will be used as the constructor arguments for the data members of the pair.
|
inlineconstexprnoexcept |
Same as C++11 std::addressof.
Definition at line 49 of file move.h.
Referenced by std::_Destroy(), __gnu_debug::_Safe_sequence< map< _Key, _Tp, _Compare, _Allocator > >::_M_transfer_from_if(), std::addressof(), std::begin(), std::call_once(), std::end(), std::list< __inp, __rebind_inp >::merge(), std::sub_match< _Bi_iter >::operator<(), std::forward_list< _Tp, _Alloc >::operator=(), std::list< __inp, __rebind_inp >::operator=(), std::sub_match< _Bi_iter >::operator==(), std::forward_list< _Tp, _Alloc >::remove(), std::list< __inp, __rebind_inp >::remove(), std::rethrow_if_nested(), and std::list< __inp, __rebind_inp >::splice().
|
constexprnoexcept |
|
inlineconstexprnoexcept |
Returns the actual address of the object or function referenced by r, even in the presence of an overloaded operator&.
| __r | Reference to an object or function. |
Definition at line 140 of file move.h.
References std::__addressof().
Referenced by std::pointer_traits< _Tp * >::pointer_to().
|
constexprnoexcept |
|
constexprnoexcept |
|
constexprnoexcept |
|
constexprnoexcept |
|
constexprnoexcept |
|
constexprnoexcept |
|
constexprnoexcept |
|
related |
A convenience wrapper for creating a pair from two objects.
| __x | The first object. |
| __y | The second object. |
The C++98 standard says the objects are passed by reference-to-const, but C++03 says they are passed by value (this was LWG issue #181).
Since C++11 they have been passed by forwarding reference and then forwarded to the new members of the pair. To create a pair with a member of reference type, pass a reference_wrapper to this function.
Definition at line 566 of file stl_pair.h.
|
constexprnoexcept |
Convert a value to an rvalue.
| __t | A thing of arbitrary type. |
Definition at line 101 of file move.h.
Referenced by std::experimental::fundamentals_v1::any::_Manager_internal< _Tp >::_S_manage(), std::basic_regex< _Ch_type, _Rx_traits >::assign(), std::shared_ptr< _State >::atomic_compare_exchange_strong_explicit(), std::basic_istream< char >::basic_istream(), std::basic_ostream< char >::basic_ostream(), std::function< _Res(_ArgTypes...)>::function(), std::future< _Res >::get(), std::multimap< _Key, _Tp, _Compare, _Alloc >::insert(), std::map< _Key, _Tp, _Compare, _Alloc >::insert(), std::vector< sub_match< _Bi_iter >, allocator< sub_match< _Bi_iter > > >::insert(), std::list< __inp, __rebind_inp >::insert(), std::deque< _StateSeqT >::insert(), std::experimental::fundamentals_v1::make_boyer_moore_horspool_searcher(), std::experimental::fundamentals_v1::make_boyer_moore_searcher(), std::forward_list< _Tp, _Alloc >::merge(), std::move_if_noexcept(), std::function< _Res(_ArgTypes...)>::operator=(), std::basic_regex< _Ch_type, _Rx_traits >::operator=(), std::forward_list< _Tp, _Alloc >::operator=(), std::vector< sub_match< _Bi_iter >, allocator< sub_match< _Bi_iter > > >::operator=(), std::list< __inp, __rebind_inp >::operator=(), std::deque< _StateSeqT >::operator=(), std::experimental::filesystem::v1::path::operator>>(), std::unique_ptr< _Result< _Res > >::reset(), std::unique_ptr< _Tp[], _Dp >::reset(), std::list< __inp, __rebind_inp >::splice(), and std::unique_ptr< _Result< _Res > >::~unique_ptr().
|
constexprnoexcept |
Conditionally convert a value to an rvalue.
| __x | A thing of arbitrary type. |
Same as std::move unless the type's move constructor could throw and the type is copyable, in which case an lvalue-reference is returned instead.
Definition at line 121 of file move.h.
References std::move().
|
related |
Uses operator== to find the result.
Definition at line 495 of file stl_pair.h.
|
related |
Defines a lexicographical order for pairs.
For two pairs of the same type, P is ordered before Q if P.first is less than Q.first, or if P.first and Q.first are equivalent (neither is less than the other) and P.second is less than Q.second.
Definition at line 488 of file stl_pair.h.
|
related |
Uses operator< to find the result.
Definition at line 507 of file stl_pair.h.
|
related |
Two pairs of the same type are equal iff their members are equal.
Definition at line 465 of file stl_pair.h.
|
related |
Uses operator< to find the result.
Definition at line 501 of file stl_pair.h.
|
related |
Uses operator< to find the result.
Definition at line 513 of file stl_pair.h.
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
Swap the first members and then the second members.
Definition at line 438 of file stl_pair.h.
Referenced by std::pair< _BiIter, _BiIter >::swap().
|
related |
Swap overload for pairs. Calls std::pair::swap().
Definition at line 532 of file stl_pair.h.
|
constexprnoexcept |
tie
Definition at line 1614 of file tuple.
Referenced by std::basic_ios< char, _Traits >::copyfmt(), std::lock(), and std::try_lock().
|
constexpr |
| _T1 std::pair< _T1, _T2 >::first |
The first member.
Definition at line 216 of file stl_pair.h.
Referenced by __gnu_parallel::__find_template(), std::__sample(), std::_Temporary_buffer< _ForwardIterator, _Tp >::_Temporary_buffer(), std::set< _Key, _Compare, _Alloc >::insert(), std::pair< _BiIter, _BiIter >::operator<(), std::pair< _BiIter, _BiIter >::operator==(), and std::pair< _BiIter, _BiIter >::swap().
|
inlineconstexpr |
Tag for piecewise construction of std::pair objects.
Definition at line 82 of file stl_pair.h.
| _T2 std::pair< _T1, _T2 >::second |
The second member.
Definition at line 217 of file stl_pair.h.
Referenced by std::__sample(), std::set< _Key, _Compare, _Alloc >::insert(), std::pair< _BiIter, _BiIter >::operator<(), std::pair< _BiIter, _BiIter >::operator==(), and std::pair< _BiIter, _BiIter >::swap().