libstdc++
GNU C++ library
Loading...
Searching...
No Matches
Utilities
Collaboration diagram for Utilities:

Topics

 Concepts
 Function Objects
 Memory
 Metaprogramming
 Rational Arithmetic
 Time

Classes

struct  std::__like_impl< _Tp, _Up >
struct  std::__like_impl< _Tp &&, _Up & >
struct  std::__like_impl< _Tp &, _Up & >
struct  std::__like_impl< const _Tp &&, _Up & >
struct  std::__like_impl< const _Tp &, _Up & >
struct  std::__move_if_noexcept_cond< _Tp >
class  std::bitset< _Nb >
class  std::bitset< _Nb >::reference
struct  std::pair< _T1, _T2 >
struct  std::piecewise_construct_t
class  std::tuple< _Elements >
class  std::tuple< _T1, _T2 >
class  std::tuple<>
struct  std::tuple_element< __i, tuple< _Types... > >
struct  std::tuple_size< tuple< _Elements... > >
struct  std::type_index
struct  std::uses_allocator< tuple< _Types... >, _Alloc >

Typedefs

template<typename _Tp, typename _Up>
using std::__like_t = typename __like_impl<_Tp&&, _Up&>::type

Functions

template<typename... _Args1, typename... _Args2>
constexpr std::pair< _T1, _T2 >::pair (piecewise_construct_t, tuple< _Args1... >, tuple< _Args2... >)
template<typename... _Args1, size_t... _Indexes1, typename... _Args2, size_t... _Indexes2>
constexpr std::pair< _T1, _T2 >::pair (tuple< _Args1... > &, tuple< _Args2... > &, _Index_tuple< _Indexes1... >, _Index_tuple< _Indexes2... >)
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<size_t __i, typename _Head, typename... _Tail>
constexpr _Head & std::__get_helper (_Tuple_impl< __i, _Head, _Tail... > &__t) noexcept
template<size_t __i, typename _Head, typename... _Tail>
constexpr const _Head & std::__get_helper (const _Tuple_impl< __i, _Head, _Tail... > &__t) noexcept
template<size_t __i, typename... _Types>
__enable_if_t<(__i >=sizeof...(_Types))> std::__get_helper (const tuple< _Types... > &)=delete
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 enable_if_t< is_invocable_r_v< _Res, _Callable, _Args... >, _Res > std::__invoke_r (_Callable &&__fn, _Args &&... __args) noexcept(is_nothrow_invocable_r_v< _Res, _Callable, _Args... >)
template<typename _Cat, typename _Tp, typename _Up, typename _IndexSeq>
constexpr _Cat std::__tuple_cmp (const _Tp &__t, const _Up &__u, _IndexSeq __indices)
template<typename _Tp>
constexpr _Tp * std::addressof (_Tp &__r) noexcept
template<typename _Tp>
const _Tp * std::addressof (const _Tp &&)=delete
template<typename _Tp>
auto std::declval () noexcept -> decltype(__declval< _Tp >(0))
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<size_t __i, typename... _Elements>
constexpr const __tuple_element_t< __i, tuple< _Elements... > > && std::get (const tuple< _Elements... > &&__t) noexcept
template<size_t __i, typename... _Elements>
constexpr const __tuple_element_t< __i, tuple< _Elements... > > & std::get (const tuple< _Elements... > &__t) noexcept
template<size_t __i, typename... _Elements>
constexpr __tuple_element_t< __i, tuple< _Elements... > > && std::get (tuple< _Elements... > &&__t) noexcept
template<size_t __i, typename... _Elements>
constexpr __tuple_element_t< __i, tuple< _Elements... > > & std::get (tuple< _Elements... > &__t) noexcept
template<typename _T1, typename _T2>
constexpr pair< typename __decay_and_strip< _T1 >::__type, typename __decay_and_strip< _T2 >::__typestd::make_pair (_T1 &&__x, _T2 &&__y)
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_t< __move_if_noexcept_cond< _Tp >::value, const _Tp &, _Tp && > std::move_if_noexcept (_Tp &__x) noexcept
template<typename... _Tps, typename... _Ups>
constexpr common_comparison_category_t< __detail::__synth3way_t< _Tps, _Ups >... > std::operator<=> (const tuple< _Tps... > &__t, const tuple< _Ups... > &__u)
template<typename... _Tps, typename... _Ups>
constexpr bool std::operator== (const tuple< _Tps... > &__t, const tuple< _Ups... > &__u)
template<typename _Tp>
constexpr void std::swap (_Tp &__a, _Tp &__b) noexcept(/*conditional */) is_nothrow_move_assignable< _Tp > >
template<typename _Tp, size_t _Nm>
constexpr void std::swap (_Tp(&__a)[_Nm], _Tp(&__b)[_Nm]) noexcept(/*conditional */)
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... _UTypes>
 std::tuple (_UTypes...) -> tuple< _UTypes... >
template<typename _Alloc, typename... _UTypes>
 std::tuple (allocator_arg_t, _Alloc, _UTypes...) -> tuple< _UTypes... >
template<typename _Alloc, typename _T1, typename _T2>
 std::tuple (allocator_arg_t, _Alloc, pair< _T1, _T2 >) -> tuple< _T1, _T2 >
template<typename _Alloc, typename... _UTypes>
 std::tuple (allocator_arg_t, _Alloc, tuple< _UTypes... >) -> tuple< _UTypes... >
template<typename _T1, typename _T2>
 std::tuple (pair< _T1, _T2 >) -> tuple< _T1, _T2 >
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

constexpr piecewise_construct_t std::piecewise_construct
template<typename... _Types>
constexpr size_t std::tuple_size_v< const tuple< _Types... > > = sizeof...(_Types)
template<typename... _Types>
constexpr size_t std::tuple_size_v< tuple< _Types... > > = sizeof...(_Types)
template<typename _T1, typename _T2>
 pair (_T1, _T2) -> pair< _T1, _T2 >
template<typename _T1, typename _T2, typename _U1, typename _U2>
constexpr bool operator== (const pair< _T1, _T2 > &__x, const pair< _U1, _U2 > &__y)
template<typename _T1, typename _T2, typename _U1, typename _U2>
constexpr common_comparison_category_t< __detail::__synth3way_t< _T1, _U1 >, __detail::__synth3way_t< _T2, _U2 > > operator<=> (const pair< _T1, _T2 > &__x, const pair< _U1, _U2 > &__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 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, typename _U1, typename _U2>
constexpr bool operator== (const pair< _T1, _T2 > &__x, const pair< _U1, _U2 > &__y)
template<typename _T1, typename _T2, typename _U1, typename _U2>
constexpr common_comparison_category_t< __detail::__synth3way_t< _T1, _U1 >, __detail::__synth3way_t< _T2, _U2 > > operator<=> (const pair< _T1, _T2 > &__x, const pair< _U1, _U2 > &__y)

Detailed Description

Basic function and class templates used with the rest of the library. Includes pair, swap, forward/move helpers, declval, integer_sequence.