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 1581 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().