.
│ │ │ │ DDeeffiinniittiioonn _e_x_t_/_n_u_m_e_r_i_c___t_r_a_i_t_s_._h_:_1_3_4
│ │ │ │ _n_u_m_e_r_i_c___t_r_a_i_t_s_._h
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00143_source.html
│ │ │ @@ -99,15 +99,15 @@
│ │ │
│ │ │
│ │ │ 44#pragma GCC diagnostic push
│ │ │ 45#pragma GCC diagnostic ignored "-Wpedantic"
│ │ │ 46#pragma GCC diagnostic ignored "-Wlong-long"
│ │ │ 47#pragma GCC diagnostic ignored "-Wc++23-extensions"
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -2334,15 +2334,15 @@
│ │ │
│ │ │ 2234#undef __glibcxx_digits
│ │ │ 2235#undef __glibcxx_digits10
│ │ │ 2236#undef __glibcxx_max_digits10
│ │ │
│ │ │ 2238#pragma GCC diagnostic pop
│ │ │
│ │ │ -
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ float_round_style
Describes the rounding style for floating-point types.
│ │ │ @ round_toward_zero
To zero.
│ │ │ @ round_toward_infinity
To infinity.
│ │ │ @ round_to_nearest
To the nearest representable value.
│ │ │ @ round_toward_neg_infinity
To negative infinity.
│ │ │ @ round_indeterminate
Intermediate.
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00146_source.html
│ │ │ @@ -112,37 +112,37 @@
│ │ │
│ │ │ 56#define _GLIBCXX_LIST 1
│ │ │
│ │ │
│ │ │ 59#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 74#define __glibcxx_want_algorithm_default_value_type
│ │ │ 75#define __glibcxx_want_allocator_traits_is_always_equal
│ │ │ 76#define __glibcxx_want_containers_ranges
│ │ │ 77#define __glibcxx_want_erase_if
│ │ │ 78#define __glibcxx_want_incomplete_container_elements
│ │ │ 79#define __glibcxx_want_list_remove_return_type
│ │ │ 80#define __glibcxx_want_nonmember_container_access
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 83#if __cplusplus >= 201703L
│ │ │ -
│ │ │ +
│ │ │ 85namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 87_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ 90 template<
typename _Tp>
│ │ │ 91 using list = std::list<_Tp, polymorphic_allocator<_Tp>>;
│ │ │ @@ -172,22 +172,22 @@
│ │ │
│ │ │
│ │ │ 117_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -118,20 +118,20 @@
│ │ │ │ 115 });
│ │ │ │ 116 }
│ │ │ │ 117_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 118} // namespace std
│ │ │ │ 119#endif // __cpp_lib_erase_if
│ │ │ │ 120
│ │ │ │ 121#endif /* _GLIBCXX_LIST */
│ │ │ │ +_v_e_r_s_i_o_n_._h
│ │ │ │ _s_t_l___l_i_s_t_._h
│ │ │ │ +_a_l_l_o_c_a_t_o_r_._h
│ │ │ │ _r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ +_s_t_l___a_l_g_o_b_a_s_e_._h
│ │ │ │ _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h
│ │ │ │ _l_i_s_t_._t_c_c
│ │ │ │ -_v_e_r_s_i_o_n_._h
│ │ │ │ -_s_t_l___a_l_g_o_b_a_s_e_._h
│ │ │ │ _r_a_n_g_e___a_c_c_e_s_s_._h
│ │ │ │ -_a_l_l_o_c_a_t_o_r_._h
│ │ │ │ _s_t_d
│ │ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ │ _l_i_s_t
│ │ │ │ * _l_i_s_t
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00149_source.html
│ │ │ @@ -90,31 +90,31 @@
│ │ │
33#ifndef _GLIBCXX_LOCALE
│ │ │
34#define _GLIBCXX_LOCALE 1
│ │ │
│ │ │
│ │ │
37#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
46#if __cplusplus >= 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - locale
│ │ │ ├── html2text {}
│ │ │ │ @@ -47,15 +47,15 @@
│ │ │ │ 44#include <_b_i_t_s_/_l_o_c_a_l_e___f_a_c_e_t_s_._h>
│ │ │ │ 45#include <_b_i_t_s_/_l_o_c_a_l_e___f_a_c_e_t_s___n_o_n_i_o_._h>
│ │ │ │ 46#if __cplusplus >= 201103L
│ │ │ │ 47# include <_b_i_t_s_/_l_o_c_a_l_e___c_o_n_v_._h>
│ │ │ │ 48#endif
│ │ │ │ 49
│ │ │ │ 50#endif /* _GLIBCXX_LOCALE */
│ │ │ │ -_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ -_l_o_c_a_l_e_f_w_d_._h
│ │ │ │ +_l_o_c_a_l_e___c_l_a_s_s_e_s_._h
│ │ │ │ _l_o_c_a_l_e___f_a_c_e_t_s___n_o_n_i_o_._h
│ │ │ │ +_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ _l_o_c_a_l_e___f_a_c_e_t_s_._h
│ │ │ │ +_l_o_c_a_l_e_f_w_d_._h
│ │ │ │ _l_o_c_a_l_e___c_o_n_v_._h
│ │ │ │ -_l_o_c_a_l_e___c_l_a_s_s_e_s_._h
│ │ │ │ * _l_o_c_a_l_e
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00152_source.html
│ │ │ @@ -112,39 +112,39 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 59#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 74#define __glibcxx_want_allocator_traits_is_always_equal
│ │ │ 75#define __glibcxx_want_containers_ranges
│ │ │ 76#define __glibcxx_want_erase_if
│ │ │ 77#define __glibcxx_want_generic_associative_lookup
│ │ │ 78#define __glibcxx_want_map_try_emplace
│ │ │ 79#define __glibcxx_want_node_extract
│ │ │ 80#define __glibcxx_want_nonmember_container_access
│ │ │ 81#define __glibcxx_want_tuple_like
│ │ │ 82#define __glibcxx_want_associative_heterogeneous_erasure
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 85#if __cplusplus >= 201703L
│ │ │ -
│ │ │ +
│ │ │ 87namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 89_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ 92 template<
typename _Key,
typename _Tp,
typename _Cmp = std::less<_Key>>
│ │ │
│ │ │ @@ -178,24 +178,24 @@
│ │ │
│ │ │ 122 {
return __detail::__erase_nodes_if(__cont, __cont, __pred); }
│ │ │ 123_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -Class template polymorphic_allocator.
│ │ │ +Class template polymorphic_allocator.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -124,21 +124,21 @@
│ │ │ │ 121 _Predicate __pred)
│ │ │ │ 122 { return __detail::__erase_nodes_if(__cont, __cont, __pred); }
│ │ │ │ 123_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 124} // namespace std
│ │ │ │ 125#endif // __cpp_lib_erase_if
│ │ │ │ 126
│ │ │ │ 127#endif /* _GLIBCXX_MAP */
│ │ │ │ +_v_e_r_s_i_o_n_._h
│ │ │ │ _s_t_l___t_r_e_e_._h
│ │ │ │ _s_t_l___m_u_l_t_i_m_a_p_._h
│ │ │ │ _s_t_l___m_a_p_._h
│ │ │ │ _r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ -_m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h
│ │ │ │ _e_r_a_s_e___i_f_._h
│ │ │ │ -_v_e_r_s_i_o_n_._h
│ │ │ │ +_m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h
│ │ │ │ _r_a_n_g_e___a_c_c_e_s_s_._h
│ │ │ │ _s_t_d
│ │ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ │ _s_t_d_:_:_p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r
│ │ │ │ Class template polymorphic_allocator.
│ │ │ │ DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_1_2_3
│ │ │ │ _m_a_p
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00155_source.html
│ │ │ @@ -94,26 +94,26 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 41#define __glibcxx_want_mdspan
│ │ │ 42#define __glibcxx_want_aligned_accessor
│ │ │ 43#define __glibcxx_want_submdspan
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 46#if __glibcxx_aligned_accessor
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 50#if __glibcxx_submdspan
│ │ │
│ │ │
│ │ │
│ │ │ 54#if __cplusplus > 202302L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 58#ifdef __glibcxx_mdspan
│ │ │
│ │ │ 60namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 62_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ @@ -3509,23 +3509,23 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -constexpr _Tp * assume_aligned(_Tp *__ptr) noexcept
Inform the compiler that a pointer is aligned.
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +constexpr _Tp * assume_aligned(_Tp *__ptr) noexcept
Inform the compiler that a pointer is aligned.
│ │ │ constexpr tuple< typename __decay_and_strip< _Elements >::__type... > make_tuple(_Elements &&... __args)
Create a tuple containing copies of the arguments.
│ │ │ -constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ +constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -make_integer_sequence< size_t, _Num > make_index_sequence
Alias template make_index_sequence.
│ │ │ -integer_sequence< size_t, _Idx... > index_sequence
Alias template index_sequence.
│ │ │ +make_integer_sequence< size_t, _Num > make_index_sequence
Alias template make_index_sequence.
│ │ │ +integer_sequence< size_t, _Idx... > index_sequence
Alias template index_sequence.
│ │ │ __numeric_traits_integer< _Tp > __int_traits
Convenience alias for __numeric_traits<integer-type>.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00158_source.html
│ │ │ @@ -115,51 +115,51 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 74#if __cplusplus >= 201103L
│ │ │
│ │ │ -
│ │ │ +
│ │ │ 77# include <bits/uses_allocator.h>
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ 87#if __cplusplus < 201103L || _GLIBCXX_USE_DEPRECATED
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 91#if __cplusplus > 201703L
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │ 96#if __cplusplus > 202002L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 100#if __cplusplus > 202302L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 104#define __glibcxx_want_addressof_constexpr
│ │ │ 105#define __glibcxx_want_algorithm_iterator_requirements
│ │ │ 106#define __glibcxx_want_allocator_traits_is_always_equal
│ │ │ 107#define __glibcxx_want_assume_aligned
│ │ │ 108#define __glibcxx_want_atomic_shared_ptr
│ │ │ @@ -178,15 +178,15 @@
│ │ │ 121#define __glibcxx_want_shared_ptr_arrays
│ │ │ 122#define __glibcxx_want_shared_ptr_weak_type
│ │ │ 123#define __glibcxx_want_smart_ptr_for_overwrite
│ │ │ 124#define __glibcxx_want_start_lifetime_as
│ │ │ 125#define __glibcxx_want_to_address
│ │ │ 126#define __glibcxx_want_transparent_operators
│ │ │ 127#define __glibcxx_want_smart_ptr_owner_equality
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 130#if __cplusplus >= 201103L && __cplusplus <= 202002L && _GLIBCXX_HOSTED
│ │ │ 131namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 133_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ @@ -240,30 +240,30 @@
│ │ │
│ │ │ 184# include <pstl/glue_memory_defs.h>
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ void declare_reachable(void *)
Inform a garbage collector that an object is still in use.
│ │ │ pointer_safety get_pointer_safety() noexcept
The type of pointer safety supported by the implementation.
│ │ │ void undeclare_no_pointers(char *, size_t)
Unregister a range previously registered with declare_no_pointers.
│ │ │ void declare_no_pointers(char *, size_t)
Inform a garbage collector that a region of memory need not be traced.
│ │ │ pointer_safety
Constants representing the different types of pointer safety.
│ │ │ _Tp * undeclare_reachable(_Tp *__p)
Unregister an object previously registered with declare_reachable.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ ├── html2text {}
│ │ │ │ @@ -186,28 +186,28 @@
│ │ │ │ 183// Otherwise just pull in forward declarations
│ │ │ │ 184# include
│ │ │ │ 185# endif
│ │ │ │ 186#endif // __cpp_lib_parallel_algorithm
│ │ │ │ 187
│ │ │ │ 188#endif /* _GLIBCXX_MEMORY */
│ │ │ │ _t_y_p_e___t_r_a_i_t_s
│ │ │ │ -_s_t_l___t_e_m_p_b_u_f_._h
│ │ │ │ _s_h_a_r_e_d___p_t_r___a_t_o_m_i_c_._h
│ │ │ │ -_i_n_d_i_r_e_c_t_._h
│ │ │ │ -_u_s_e_s___a_l_l_o_c_a_t_o_r___a_r_g_s_._h
│ │ │ │ -_u_n_i_q_u_e___p_t_r_._h
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ -_s_t_l___u_n_i_n_i_t_i_a_l_i_z_e_d_._h
│ │ │ │ _s_t_l___r_a_w___s_t_o_r_a_g_e___i_t_e_r_._h
│ │ │ │ -_s_t_l___c_o_n_s_t_r_u_c_t_._h
│ │ │ │ -_r_a_n_g_e_s___u_n_i_n_i_t_i_a_l_i_z_e_d_._h
│ │ │ │ -_o_u_t___p_t_r_._h
│ │ │ │ _m_e_m_o_r_y_f_w_d_._h
│ │ │ │ -_a_l_l_o_c_a_t_o_r_._h
│ │ │ │ +_s_t_l___u_n_i_n_i_t_i_a_l_i_z_e_d_._h
│ │ │ │ _a_l_i_g_n_._h
│ │ │ │ +_i_n_d_i_r_e_c_t_._h
│ │ │ │ +_o_u_t___p_t_r_._h
│ │ │ │ +_r_a_n_g_e_s___u_n_i_n_i_t_i_a_l_i_z_e_d_._h
│ │ │ │ +_s_t_l___c_o_n_s_t_r_u_c_t_._h
│ │ │ │ +_a_l_l_o_c_a_t_o_r_._h
│ │ │ │ +_s_t_l___t_e_m_p_b_u_f_._h
│ │ │ │ +_u_s_e_s___a_l_l_o_c_a_t_o_r___a_r_g_s_._h
│ │ │ │ +_u_n_i_q_u_e___p_t_r_._h
│ │ │ │ _a_u_t_o___p_t_r_._h
│ │ │ │ _d_e_b_u_g_._h
│ │ │ │ _s_t_d_:_:_d_e_c_l_a_r_e___r_e_a_c_h_a_b_l_e
│ │ │ │ void declare_reachable(void *)
│ │ │ │ Inform a garbage collector that an object is still in use.
│ │ │ │ DDeeffiinniittiioonn _m_e_m_o_r_y_:_1_5_3
│ │ │ │ _s_t_d_:_:_g_e_t___p_o_i_n_t_e_r___s_a_f_e_t_y
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00161_source.html
│ │ │ @@ -89,19 +89,19 @@
│ │ │ 32#ifndef _GLIBCXX_MEMORY_RESOURCE
│ │ │ 33#define _GLIBCXX_MEMORY_RESOURCE 1
│ │ │
│ │ │
│ │ │ 36#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 41#define __glibcxx_want_polymorphic_allocator
│ │ │ 42#define __glibcxx_want_memory_resource
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 45#if __cplusplus >= 201703L
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -116,19 +116,19 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 72namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 74_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ @@ -541,28 +541,28 @@
│ │ │
│ │ │
│ │ │ memory_resource * set_default_resource(memory_resource *__r) noexcept
Replace the default memory resource pointer.
│ │ │ memory_resource * null_memory_resource() noexcept
A pmr::memory_resource that always throws bad_alloc.
│ │ │ memory_resource * get_default_resource() noexcept
Get the current default memory resource pointer.
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -void * align(size_t __align, size_t __size, void *&__ptr, size_t &__space) noexcept
Fit aligned storage in buffer.
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +void * align(size_t __align, size_t __size, void *&__ptr, size_t &__space) noexcept
Fit aligned storage in buffer.
│ │ │ memory_resource * new_delete_resource() noexcept
A pmr::memory_resource that uses new to allocate memory.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ Parameters for tuning a pool resource's behaviour.
│ │ │ size_t max_blocks_per_chunk
Upper limit on number of blocks in a chunk.
│ │ │ A non-thread-safe memory resource that manages pools of fixed-size blocks.
│ │ │ A memory resource that allocates from a fixed-size buffer.
│ │ │ -
│ │ │ -Class template polymorphic_allocator.
│ │ │ +
│ │ │ +Class template polymorphic_allocator.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - memory_resource
│ │ │ ├── html2text {}
│ │ │ │ @@ -493,18 +493,18 @@
│ │ │ │ memory_resource * null_memory_resource() noexcept
│ │ │ │ A pmr::memory_resource that always throws bad_alloc.
│ │ │ │ _s_t_d_:_:_p_m_r_:_:_g_e_t___d_e_f_a_u_l_t___r_e_s_o_u_r_c_e
│ │ │ │ memory_resource * get_default_resource() noexcept
│ │ │ │ Get the current default memory resource pointer.
│ │ │ │ _s_h_a_r_e_d___m_u_t_e_x
│ │ │ │ _v_e_c_t_o_r
│ │ │ │ -_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ -_m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ _a_l_i_g_n_._h
│ │ │ │ +_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ +_m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h
│ │ │ │ _a_s_s_e_r_t_i_o_n_s_._h
│ │ │ │ _s_t_d_:_:_a_l_i_g_n
│ │ │ │ void * align(size_t __align, size_t __size, void *&__ptr, size_t &__space)
│ │ │ │ noexcept
│ │ │ │ Fit aligned storage in buffer.
│ │ │ │ DDeeffiinniittiioonn _a_l_i_g_n_._h_:_6_0
│ │ │ │ _s_t_d_:_:_p_m_r_:_:_n_e_w___d_e_l_e_t_e___r_e_s_o_u_r_c_e
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00164_source.html
│ │ │ @@ -86,41 +86,41 @@
│ │ │
│ │ │ 30#define _GLIBCXX_MUTEX 1
│ │ │
│ │ │
│ │ │ 33#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 38#if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ 51#if ! _GTHREAD_USE_MUTEX_TIMEDLOCK
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 57#if defined _GLIBCXX_HAS_GTHREADS && ! defined _GLIBCXX_HAVE_TLS
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 61#define __glibcxx_want_scoped_lock
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 64namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 66_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ @@ -1102,54 +1102,54 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -constexpr __enable_if_is_duration< _ToDur > duration_cast(const duration< _Rep, _Period > &__d)
│ │ │ -constexpr __invoke_result< _Callable, _Args... >::type __invoke(_Callable &&__fn, _Args &&... __args) noexcept(__is_nothrow_invocable< _Callable, _Args... >::value)
Invoke a callable object.
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +constexpr __enable_if_is_duration< _ToDur > duration_cast(const duration< _Rep, _Period > &__d)
│ │ │ +constexpr __invoke_result< _Callable, _Args... >::type __invoke(_Callable &&__fn, _Args &&... __args) noexcept(__is_nothrow_invocable< _Callable, _Args... >::value)
Invoke a callable object.
│ │ │ constexpr tuple< _Elements &... > tie(_Elements &... __args) noexcept
Return a tuple of lvalue references bound to the arguments.
│ │ │ -constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ -constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ +constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ +constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ void lock(_L1 &__l1, _L2 &__l2, _L3 &... __l3)
Generic lock.
│ │ │ -constexpr try_to_lock_t try_to_lock
Tag used to prevent a scoped lock from blocking if a mutex is locked.
│ │ │ +constexpr try_to_lock_t try_to_lock
Tag used to prevent a scoped lock from blocking if a mutex is locked.
│ │ │ int try_lock(_L1 &__l1, _L2 &__l2, _L3 &... __l3)
Generic try_lock.
│ │ │ -constexpr defer_lock_t defer_lock
Tag used to prevent a scoped lock from acquiring ownership of a mutex.
│ │ │ +constexpr defer_lock_t defer_lock
Tag used to prevent a scoped lock from acquiring ownership of a mutex.
│ │ │ void call_once(once_flag &__once, _Callable &&__f, _Args &&... __args)
Invoke a callable and synchronize with other calls using the same flag.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ Implementation details not part of the namespace std interface.
│ │ │ -thread::id get_id() noexcept
The unique identifier of the current thread.
│ │ │ +thread::id get_id() noexcept
The unique identifier of the current thread.
│ │ │
│ │ │
│ │ │
│ │ │ Flag type used by std::call_once.
│ │ │ friend void call_once(once_flag &__once, _Callable &&__f, _Args &&... __args)
Invoke a callable and synchronize with other calls using the same flag.
│ │ │ once_flag(const once_flag &)=delete
Deleted copy constructor.
│ │ │ once_flag & operator=(const once_flag &)=delete
Deleted assignment operator.
│ │ │
│ │ │
│ │ │
│ │ │ -chrono::duration represents a distance between two points in time
│ │ │ -chrono::time_point represents a point in time as measured by a clock
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -A movable scoped lock type.
│ │ │ +chrono::duration represents a distance between two points in time
│ │ │ +chrono::time_point represents a point in time as measured by a clock
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +A movable scoped lock type.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - mutex
│ │ │ ├── html2text {}
│ │ │ │ @@ -1035,24 +1035,24 @@
│ │ │ │ 1031#endif // C++11
│ │ │ │ 1032
│ │ │ │ 1033#endif // _GLIBCXX_MUTEX
│ │ │ │ _c_o_n_d_i_t_i_o_n___v_a_r_i_a_b_l_e
│ │ │ │ _t_h_r_e_a_d
│ │ │ │ _t_u_p_l_e
│ │ │ │ _t_y_p_e___t_r_a_i_t_s
│ │ │ │ +_c_h_r_o_n_o_._h
│ │ │ │ _u_n_i_q_u_e___l_o_c_k_._h
│ │ │ │ _s_t_d___m_u_t_e_x_._h
│ │ │ │ -_s_t_d___f_u_n_c_t_i_o_n_._h
│ │ │ │ -_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ -_c_h_r_o_n_o_._h
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ _m_o_v_e_._h
│ │ │ │ -_i_n_v_o_k_e_._h
│ │ │ │ -_f_u_n_c_t_e_x_c_e_p_t_._h
│ │ │ │ _c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ +_f_u_n_c_t_e_x_c_e_p_t_._h
│ │ │ │ +_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ +_i_n_v_o_k_e_._h
│ │ │ │ +_s_t_d___f_u_n_c_t_i_o_n_._h
│ │ │ │ _a_t_o_m_i_c_i_t_y_._h
│ │ │ │ _s_t_d_:_:_c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n___c_a_s_t
│ │ │ │ constexpr __enable_if_is_duration< _ToDur > duration_cast(const duration< _Rep,
│ │ │ │ _Period > &__d)
│ │ │ │ DDeeffiinniittiioonn _c_h_r_o_n_o_._h_:_2_7_9
│ │ │ │ _s_t_d_:_:_____i_n_v_o_k_e
│ │ │ │ constexpr __invoke_result< _Callable, _Args... >::type __invoke(_Callable
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00167_source.html
│ │ │ @@ -112,30 +112,30 @@
│ │ │ 55#ifndef _GLIBCXX_NUMERIC
│ │ │ 56#define _GLIBCXX_NUMERIC 1
│ │ │
│ │ │
│ │ │ 59#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 66#ifdef _GLIBCXX_PARALLEL
│ │ │
│ │ │
│ │ │
│ │ │ 70#if __cplusplus >= 201402L
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 76#if __cplusplus >= 201703L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 80#if __cplusplus > 201703L
│ │ │
│ │ │
│ │ │
│ │ │ 84#define __glibcxx_want_algorithm_iterator_requirements
│ │ │ @@ -143,22 +143,22 @@
│ │ │ 86#define __glibcxx_want_gcd
│ │ │ 87#define __glibcxx_want_gcd_lcm
│ │ │ 88#define __glibcxx_want_interpolate
│ │ │ 89#define __glibcxx_want_lcm
│ │ │ 90#define __glibcxx_want_parallel_algorithm
│ │ │ 91#define __glibcxx_want_ranges_iota
│ │ │ 92#define __glibcxx_want_saturation_arithmetic
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 95#if __glibcxx_ranges_iota >= 202202L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 99#ifdef __glibcxx_saturation_arithmetic
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -865,42 +865,42 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ typename common_type< _Tp... >::type common_type_t
Alias template for common_type.
│ │ │ typename make_unsigned< _Tp >::type make_unsigned_t
Alias template for make_unsigned.
│ │ │ typename enable_if< _Cond, _Tp >::type enable_if_t
Alias template for enable_if.
│ │ │ -constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ +constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ constexpr _OutputIterator inclusive_scan(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryOperation __binary_op, _Tp __init)
Output the cumulative sum of one range to a second range.
│ │ │ constexpr _OutputIterator exclusive_scan(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Tp __init, _BinaryOperation __binary_op)
Output the cumulative sum of one range to a second range.
│ │ │ constexpr _OutputIterator transform_inclusive_scan(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryOperation __binary_op, _UnaryOperation __unary_op, _Tp __init)
Output the cumulative sum of one range to a second range.
│ │ │ -constexpr void iota(_ForwardIterator __first, _ForwardIterator __last, _Tp __value)
Create a range of sequentially increasing values.
│ │ │ +constexpr void iota(_ForwardIterator __first, _ForwardIterator __last, _Tp __value)
Create a range of sequentially increasing values.
│ │ │ constexpr _OutputIterator transform_exclusive_scan(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Tp __init, _BinaryOperation __binary_op, _UnaryOperation __unary_op)
Output the cumulative sum of one range to a second range.
│ │ │ constexpr _Tp transform_reduce(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Tp __init, _BinaryOperation1 __binary_op1, _BinaryOperation2 __binary_op2)
Combine elements from two ranges and reduce.
│ │ │ constexpr _Tp reduce(_InputIterator __first, _InputIterator __last, _Tp __init, _BinaryOperation __binary_op)
Calculate reduction of values in a range.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ Implementation details not part of the namespace std interface.
│ │ │ constexpr common_type_t< _Mn, _Nn > lcm(_Mn __m, _Nn __n)
Least common multiple.
│ │ │ constexpr common_type_t< _Mn, _Nn > gcd(_Mn __m, _Nn __n) noexcept
Greatest common divisor.
│ │ │ static constexpr _Tp max() noexcept
│ │ │ static constexpr _Tp min() noexcept
│ │ │
│ │ │ -Traits class for iterators.
│ │ │ -One of the math functors.
│ │ │ -One of the math functors.
│ │ │ +Traits class for iterators.
│ │ │ +One of the math functors.
│ │ │ +One of the math functors.
│ │ │
│ │ │ Parallel STL function calls corresponding to stl_numeric.h. The functions defined here mainly do case...
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -787,20 +787,20 @@
│ │ │ │ 780# endif
│ │ │ │ 781#endif // C++17
│ │ │ │ 782
│ │ │ │ 783#endif /* _GLIBCXX_NUMERIC */
│ │ │ │ _b_i_t
│ │ │ │ _l_i_m_i_t_s
│ │ │ │ _t_y_p_e___t_r_a_i_t_s
│ │ │ │ -_v_e_r_s_i_o_n_._h
│ │ │ │ _s_t_l___n_u_m_e_r_i_c_._h
│ │ │ │ -_s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___f_u_n_c_s_._h
│ │ │ │ +_v_e_r_s_i_o_n_._h
│ │ │ │ +_r_a_n_g_e_s___a_l_g_o_b_a_s_e_._h
│ │ │ │ _s_t_l___f_u_n_c_t_i_o_n_._h
│ │ │ │ +_s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___f_u_n_c_s_._h
│ │ │ │ _s_a_t___a_r_i_t_h_._h
│ │ │ │ -_r_a_n_g_e_s___a_l_g_o_b_a_s_e_._h
│ │ │ │ _c_+_+_c_o_n_f_i_g_._h
│ │ │ │ _s_t_d_:_:_c_o_m_m_o_n___t_y_p_e___t
│ │ │ │ typename common_type< _Tp... >::type common_type_t
│ │ │ │ Alias template for common_type.
│ │ │ │ DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_2_9_4_8
│ │ │ │ _s_t_d_:_:_m_a_k_e___u_n_s_i_g_n_e_d___t
│ │ │ │ typename make_unsigned< _Tp >::type make_unsigned_t
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00170_source.html
│ │ │ @@ -87,15 +87,15 @@
│ │ │
30#define _GLIBCXX_NUMBERS 1
│ │ │
│ │ │
│ │ │
33#pragma GCC system_header
│ │ │
│ │ │
│ │ │
36#define __glibcxx_want_math_constants
│ │ │ -
│ │ │ +
│ │ │
│ │ │
39#ifdef __cpp_lib_math_constants
│ │ │
│ │ │
│ │ │
│ │ │
43#pragma GCC diagnostic push
│ │ │
44#pragma GCC diagnostic ignored "-Wpedantic"
│ │ │ @@ -295,15 +295,15 @@
│ │ │
│ │ │
│ │ │
240#pragma GCC diagnostic pop
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00173_source.html
│ │ │ @@ -92,37 +92,37 @@
│ │ │
│ │ │
│ │ │ 37#define __glibcxx_want_freestanding_optional
│ │ │ 38#define __glibcxx_want_optional
│ │ │ 39#define __glibcxx_want_optional_range_support
│ │ │ 40#define __glibcxx_want_constrained_equality
│ │ │ 41#define __glibcxx_want_constexpr_exceptions
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 44#ifdef __cpp_lib_optional
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ 55#if __cplusplus > 201703L
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 59#if __cplusplus > 202002L
│ │ │
│ │ │
│ │ │ 62#ifdef __cpp_lib_optional_range_support
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ 68namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 70_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ @@ -2323,15 +2323,15 @@
│ │ │ 2266#if __cpp_deduction_guides >= 201606
│ │ │ 2267 template <
typename _Tp> optional(_Tp) -> optional<_Tp>;
│ │ │
│ │ │
│ │ │ 2270#ifdef __cpp_lib_optional_range_support
│ │ │ 2271 template<
typename _Tp>
│ │ │ 2272 inline constexpr bool
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 2275#if __cpp_lib_optional >= 202506L
│ │ │ 2276 template<
typename _Tp>
│ │ │
│ │ │ 2278 ranges::enable_borrowed_range<optional<_Tp&>> =
true;
│ │ │
│ │ │
│ │ │ @@ -2350,47 +2350,47 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -constexpr bool enable_view
[range.view] The ranges::enable_view boolean.
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +constexpr bool enable_view
[range.view] The ranges::enable_view boolean.
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ +
│ │ │ constexpr complex< _Tp > operator*(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x times y.
│ │ │ __bool_constant< true > true_type
The type used as a compile-time boolean with true value.
│ │ │ typename remove_reference< _Tp >::type remove_reference_t
Alias template for remove_reference.
│ │ │ typename enable_if< _Cond, _Tp >::type enable_if_t
Alias template for enable_if.
│ │ │ typename decay< _Tp >::type decay_t
Alias template for decay.
│ │ │ auto declval() noexcept -> decltype(__declval< _Tp >(0))
│ │ │ -constexpr _Tp * addressof(_Tp &__r) noexcept
Returns the actual address of the object or function referenced by r, even in the presence of an over...
│ │ │ -constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ -constexpr __invoke_result< _Callable, _Args... >::type __invoke(_Callable &&__fn, _Args &&... __args) noexcept(__is_nothrow_invocable< _Callable, _Args... >::value)
Invoke a callable object.
│ │ │ -constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ -constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ +constexpr _Tp * addressof(_Tp &__r) noexcept
Returns the actual address of the object or function referenced by r, even in the presence of an over...
│ │ │ +constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ +constexpr __invoke_result< _Callable, _Args... >::type __invoke(_Callable &&__fn, _Args &&... __args) noexcept(__is_nothrow_invocable< _Callable, _Args... >::value)
Invoke a callable object.
│ │ │ +constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ +constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ _Tp * end(valarray< _Tp > &__va) noexcept
Return an iterator pointing to one past the last element of the valarray.
│ │ │ _Tp * begin(valarray< _Tp > &__va) noexcept
Return an iterator pointing to the first element of the valarray.
│ │ │ constexpr nullopt_t nullopt
Tag to disengage optional objects.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ typename __detail::__cmp3way_res_impl< _Tp, _Up >::type compare_three_way_result_t
[cmp.result], result of three-way comparison
│ │ │ -constexpr void _Construct(_Tp *__p, _Args &&... __args)
│ │ │ +constexpr void _Construct(_Tp *__p, _Args &&... __args)
│ │ │
│ │ │ -Primary class template hash.
│ │ │ +Primary class template hash.
│ │ │
│ │ │
│ │ │ -Base class for all library exceptions.
│ │ │ -
│ │ │ +Base class for all library exceptions.
│ │ │ +
│ │ │
│ │ │ [concept.invocable], concept invocable
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -2302,27 +2302,27 @@
│ │ │ │ 2293#endif // _GLIBCXX_OPTIONAL
│ │ │ │ _c_o_m_p_a_r_e
│ │ │ │ _e_x_c_e_p_t_i_o_n
│ │ │ │ _i_n_i_t_i_a_l_i_z_e_r___l_i_s_t
│ │ │ │ _n_e_w
│ │ │ │ _c_o_n_c_e_p_t_s
│ │ │ │ _t_y_p_e___t_r_a_i_t_s
│ │ │ │ -_e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h
│ │ │ │ -_f_o_r_m_a_t_f_w_d_._h
│ │ │ │ -_u_t_i_l_i_t_y_._h
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ -_s_t_l___c_o_n_s_t_r_u_c_t_._h
│ │ │ │ +_f_o_r_m_a_t_f_w_d_._h
│ │ │ │ +_f_u_n_c_t_i_o_n_a_l___h_a_s_h_._h
│ │ │ │ _r_a_n_g_e_s___b_a_s_e_._h
│ │ │ │ _s_t_d_:_:_r_a_n_g_e_s_:_:_e_n_a_b_l_e___v_i_e_w
│ │ │ │ constexpr bool enable_view
│ │ │ │ [range.view] The ranges::enable_view boolean.
│ │ │ │ DDeeffiinniittiioonn _r_a_n_g_e_s___b_a_s_e_._h_:_5_8_2
│ │ │ │ +_s_t_l___c_o_n_s_t_r_u_c_t_._h
│ │ │ │ _i_n_v_o_k_e_._h
│ │ │ │ -_f_u_n_c_t_i_o_n_a_l___h_a_s_h_._h
│ │ │ │ +_u_t_i_l_i_t_y_._h
│ │ │ │ _e_n_a_b_l_e___s_p_e_c_i_a_l___m_e_m_b_e_r_s_._h
│ │ │ │ +_e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h
│ │ │ │ _s_t_d_:_:_o_p_e_r_a_t_o_r_*
│ │ │ │ constexpr complex< _Tp > operator*(const complex< _Tp > &__x, const complex<
│ │ │ │ _Tp > &__y)
│ │ │ │ Return new complex value x times y.
│ │ │ │ DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_4_3_4
│ │ │ │ _s_t_d_:_:_t_r_u_e___t_y_p_e
│ │ │ │ __bool_constant< true > true_type
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00176_source.html
│ │ │ @@ -90,23 +90,23 @@
│ │ │ 33#ifndef _GLIBCXX_OSTREAM
│ │ │ 34#define _GLIBCXX_OSTREAM 1
│ │ │
│ │ │
│ │ │ 37#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │ 43#if __cplusplus > 202002L
│ │ │
│ │ │
│ │ │
│ │ │ 47# define __glibcxx_want_print
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 50namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 52_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ @@ -359,39 +359,39 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 300_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ error_code make_error_code(future_errc __errc) noexcept
Overload of make_error_code for future_errc.
│ │ │ basic_streambuf< char > streambuf
Base class for char buffers.
│ │ │ basic_ostream< char > ostream
Base class for char output streams.
│ │ │ -basic_string< char > string
A string of char.
│ │ │ +basic_string< char > string
A string of char.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ basic_ostream< _CharT, _Traits > & ends(basic_ostream< _CharT, _Traits > &__os)
Write a null character into the output sequence.
│ │ │ basic_ostream< _CharT, _Traits > & endl(basic_ostream< _CharT, _Traits > &__os)
Write a newline and flush the stream.
│ │ │ basic_ostream< _CharT, _Traits > & flush(basic_ostream< _CharT, _Traits > &__os)
Flushes the output stream.
│ │ │ -char_type widen(char __c) const
Widens characters.
│ │ │ -Template class basic_ostream.
│ │ │ -__ostream_type & put(char_type __c)
Simple insertion.
│ │ │ -__ostream_type & flush()
Synchronizing the stream buffer.
│ │ │ +char_type widen(char __c) const
Widens characters.
│ │ │ +Template class basic_ostream.
│ │ │ +__ostream_type & put(char_type __c)
Simple insertion.
│ │ │ +__ostream_type & flush()
Synchronizing the stream buffer.
│ │ │
│ │ │ -constexpr void reserve(size_type __res_arg)
Attempt to preallocate enough memory for specified number of characters.
│ │ │ -_Ios_Iostate iostate
This is a bitmask type.
│ │ │ -static const iostate goodbit
Indicates all is well.
│ │ │ -static const iostate badbit
Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error fro...
│ │ │ +constexpr void reserve(size_type __res_arg)
Attempt to preallocate enough memory for specified number of characters.
│ │ │ +_Ios_Iostate iostate
This is a bitmask type.
│ │ │ +static const iostate goodbit
Indicates all is well.
│ │ │ +static const iostate badbit
Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error fro...
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - ostream
│ │ │ ├── html2text {}
│ │ │ │ @@ -304,18 +304,18 @@
│ │ │ │ 300_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 301} // namespace std
│ │ │ │ 302
│ │ │ │ 303#include <_b_i_t_s_/_o_s_t_r_e_a_m_._t_c_c>
│ │ │ │ 304
│ │ │ │ 305#endif /* _GLIBCXX_OSTREAM */
│ │ │ │ _f_o_r_m_a_t
│ │ │ │ -_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ -_o_s_t_r_e_a_m_._t_c_c
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ _o_s_t_r_e_a_m_._h
│ │ │ │ +_o_s_t_r_e_a_m_._t_c_c
│ │ │ │ +_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ _s_t_d_:_:_m_a_k_e___e_r_r_o_r___c_o_d_e
│ │ │ │ error_code make_error_code(future_errc __errc) noexcept
│ │ │ │ Overload of make_error_code for future_errc.
│ │ │ │ DDeeffiinniittiioonn _f_u_t_u_r_e_:_9_7
│ │ │ │ _s_t_d_:_:_s_t_r_e_a_m_b_u_f
│ │ │ │ basic_streambuf< char > streambuf
│ │ │ │ Base class for char buffers.
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00179_source.html
│ │ │ @@ -86,25 +86,25 @@
│ │ │
│ │ │ 30#define _GLIBCXX_PRINT 1
│ │ │
│ │ │
│ │ │ 33#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 38#define __glibcxx_want_print
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 52namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ @@ -477,21 +477,21 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ const error_category & generic_category() noexcept
Error category for errno error codes.
│ │ │ error_code make_error_code(future_errc __errc) noexcept
Overload of make_error_code for future_errc.
│ │ │ -constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ -constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ +constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ +constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │ An exception type that includes an error_code value.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -425,17 +425,17 @@
│ │ │ │ 420} // namespace std
│ │ │ │ 421#endif // __cpp_lib_print
│ │ │ │ 422#endif // _GLIBCXX_PRINT
│ │ │ │ _f_o_r_m_a_t
│ │ │ │ _s_y_s_t_e_m___e_r_r_o_r
│ │ │ │ _c_e_r_r_n_o
│ │ │ │ _c_s_t_d_i_o
│ │ │ │ -_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ _f_u_n_c_t_e_x_c_e_p_t_._h
│ │ │ │ +_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ _s_t_d_:_:_g_e_n_e_r_i_c___c_a_t_e_g_o_r_y
│ │ │ │ const error_category & generic_category() noexcept
│ │ │ │ Error category for errno error codes.
│ │ │ │ _s_t_d_:_:_m_a_k_e___e_r_r_o_r___c_o_d_e
│ │ │ │ error_code make_error_code(future_errc __errc) noexcept
│ │ │ │ Overload of make_error_code for future_errc.
│ │ │ │ DDeeffiinniittiioonn _f_u_t_u_r_e_:_9_7
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00182_source.html
│ │ │ @@ -112,28 +112,28 @@
│ │ │
│ │ │ 56#define _GLIBCXX_QUEUE 1
│ │ │
│ │ │
│ │ │ 59#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 64#define __glibcxx_want_adaptor_iterator_pair_constructor
│ │ │ 65#define __glibcxx_want_containers_ranges
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 74#ifdef __glibcxx_format_ranges
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 77namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 79_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ 82 template<__format::__char _CharT,
typename _Tp,
│ │ │ @@ -224,23 +224,23 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -A standard container giving FIFO behavior.
│ │ │ -A standard container automatically sorting its contents.
│ │ │ +A standard container giving FIFO behavior.
│ │ │ +A standard container automatically sorting its contents.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - queue
│ │ │ ├── html2text {}
│ │ │ │ @@ -175,19 +175,19 @@
│ │ │ │ 168#endif // __glibcxx_format_ranges
│ │ │ │ 169
│ │ │ │ 170
│ │ │ │ 171#endif /* _GLIBCXX_QUEUE */
│ │ │ │ _d_e_q_u_e
│ │ │ │ _v_e_c_t_o_r
│ │ │ │ _s_t_l___q_u_e_u_e_._h
│ │ │ │ -_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ -_f_o_r_m_a_t_f_w_d_._h
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ +_f_o_r_m_a_t_f_w_d_._h
│ │ │ │ _s_t_l___h_e_a_p_._h
│ │ │ │ _s_t_l___f_u_n_c_t_i_o_n_._h
│ │ │ │ +_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ _s_t_d
│ │ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ │ _s_t_d_:_:_q_u_e_u_e
│ │ │ │ A standard container giving FIFO behavior.
│ │ │ │ DDeeffiinniittiioonn _s_t_l___q_u_e_u_e_._h_:_1_0_5
│ │ │ │ _s_t_d_:_:_p_r_i_o_r_i_t_y___q_u_e_u_e
│ │ │ │ A standard container automatically sorting its contents.
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00185_source.html
│ │ │ @@ -86,51 +86,51 @@
│ │ │ 29#ifndef _GLIBCXX_RANDOM
│ │ │ 30#define _GLIBCXX_RANDOM 1
│ │ │
│ │ │
│ │ │ 33#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 38#if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 42#define __glibcxx_want_philox_engine
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -63,16 +63,16 @@
│ │ │ │ _i_o_s_f_w_d
│ │ │ │ _l_i_m_i_t_s
│ │ │ │ _s_t_r_i_n_g
│ │ │ │ _t_y_p_e___t_r_a_i_t_s
│ │ │ │ _c_m_a_t_h
│ │ │ │ _c_s_t_d_i_n_t
│ │ │ │ _c_s_t_d_l_i_b
│ │ │ │ -_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ -_r_a_n_d_o_m_._h
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ +_r_a_n_d_o_m_._h
│ │ │ │ _c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ +_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ _o_p_t___r_a_n_d_o_m_._h
│ │ │ │ _d_e_b_u_g_._h
│ │ │ │ _r_a_n_d_o_m_._t_c_c
│ │ │ │ * _r_a_n_d_o_m
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00188.html
│ │ │ @@ -1169,15 +1169,15 @@
│ │ │
│ │ │ |
│ │ │ inlineconstexpr |
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ◆ all
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00188_source.html
│ │ │ @@ -105,16 +105,16 @@
│ │ │
│ │ │
│ │ │
50#if __cplusplus > 202002L
│ │ │
│ │ │
│ │ │
│ │ │
54#include <bits/binders.h>
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
58#define __glibcxx_want_algorithm_default_value_type
│ │ │
59#define __glibcxx_want_ranges
│ │ │
60#define __glibcxx_want_ranges_as_const
│ │ │
61#define __glibcxx_want_ranges_as_rvalue
│ │ │
62#define __glibcxx_want_ranges_cache_latest
│ │ │
63#define __glibcxx_want_ranges_cartesian_product
│ │ │ @@ -126,15 +126,15 @@
│ │ │
69#define __glibcxx_want_ranges_join_with
│ │ │
70#define __glibcxx_want_ranges_repeat
│ │ │
71#define __glibcxx_want_ranges_slide
│ │ │
72#define __glibcxx_want_ranges_stride
│ │ │
73#define __glibcxx_want_ranges_to_container
│ │ │
74#define __glibcxx_want_ranges_to_input
│ │ │
75#define __glibcxx_want_ranges_zip
│ │ │ -
│ │ │ +
│ │ │
│ │ │
78#ifdef __glibcxx_generator
│ │ │
79# include <bits/elements_of.h>
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -10775,65 +10775,65 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
constexpr bool operator<=(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
│ │ │ -
constexpr bool operator>=(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
│ │ │ -
constexpr bool operator<(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
│ │ │ -
constexpr bool operator>(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
constexpr bool operator<=(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
│ │ │ +
constexpr bool operator>=(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
│ │ │ +
constexpr bool operator<(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
│ │ │ +
constexpr bool operator>(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
│ │ │
constexpr complex< _Tp > operator*(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x times y.
│ │ │
constexpr complex< _Tp > operator-(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x minus y.
│ │ │
constexpr complex< _Tp > operator+(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x plus y.
│ │ │ -
constexpr _Tp * to_address(_Tp *__ptr) noexcept
Obtain address referenced by a pointer to an object.
│ │ │ +
constexpr _Tp * to_address(_Tp *__ptr) noexcept
Obtain address referenced by a pointer to an object.
│ │ │
typename remove_reference< _Tp >::type remove_reference_t
Alias template for remove_reference.
│ │ │
typename common_type< _Tp... >::type common_type_t
Alias template for common_type.
│ │ │
typename make_unsigned< _Tp >::type make_unsigned_t
Alias template for make_unsigned.
│ │ │
typename decay< _Tp >::type decay_t
Alias template for decay.
│ │ │
auto declval() noexcept -> decltype(__declval< _Tp >(0))
│ │ │ -
constexpr _Tp * addressof(_Tp &__r) noexcept
Returns the actual address of the object or function referenced by r, even in the presence of an over...
│ │ │ -
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ -
constexpr __invoke_result< _Callable, _Args... >::type __invoke(_Callable &&__fn, _Args &&... __args) noexcept(__is_nothrow_invocable< _Callable, _Args... >::value)
Invoke a callable object.
│ │ │ -
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ -
constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ +
constexpr _Tp * addressof(_Tp &__r) noexcept
Returns the actual address of the object or function referenced by r, even in the presence of an over...
│ │ │ +
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ +
constexpr __invoke_result< _Callable, _Args... >::type __invoke(_Callable &&__fn, _Args &&... __args) noexcept(__is_nothrow_invocable< _Callable, _Args... >::value)
Invoke a callable object.
│ │ │ +
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ +
constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │
_Tp * end(valarray< _Tp > &__va) noexcept
Return an iterator pointing to one past the last element of the valarray.
│ │ │
_Tp * begin(valarray< _Tp > &__va) noexcept
Return an iterator pointing to the first element of the valarray.
│ │ │ -
constexpr const _Tp & min(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ +
constexpr const _Tp & min(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │
constexpr reverse_iterator< _Iterator > make_reverse_iterator(_Iterator __i)
Generator function for reverse_iterator.
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ -
make_integer_sequence< size_t, _Num > make_index_sequence
Alias template make_index_sequence.
│ │ │ -
integer_sequence< size_t, _Idx... > index_sequence
Alias template index_sequence.
│ │ │ -
constexpr auto empty(const _Container &__cont) noexcept(noexcept(__cont.empty())) -> decltype(__cont.empty())
Return whether a container is empty.
│ │ │ -
constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
Return the size of a container.
│ │ │ -
constexpr default_sentinel_t default_sentinel
A default sentinel value.
│ │ │ -
constexpr auto data(_Container &__cont) noexcept(noexcept(__cont.data())) -> decltype(__cont.data())
Return the data pointer of a container.
│ │ │ -
constexpr _Iterator __base(_Iterator __it)
│ │ │ +
make_integer_sequence< size_t, _Num > make_index_sequence
Alias template make_index_sequence.
│ │ │ +
integer_sequence< size_t, _Idx... > index_sequence
Alias template index_sequence.
│ │ │ +
constexpr auto empty(const _Container &__cont) noexcept(noexcept(__cont.empty())) -> decltype(__cont.empty())
Return whether a container is empty.
│ │ │ +
constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
Return the size of a container.
│ │ │ +
constexpr default_sentinel_t default_sentinel
A default sentinel value.
│ │ │ +
constexpr auto data(_Container &__cont) noexcept(noexcept(__cont.data())) -> decltype(__cont.data())
Return the data pointer of a container.
│ │ │ +
constexpr _Iterator __base(_Iterator __it)
│ │ │
A view that contains no elements.
│ │ │
A view that contains exactly one element.
│ │ │ -
constexpr reference_wrapper< _Tp > ref(_Tp &__t) noexcept
Denotes a reference should be taken to a variable.
│ │ │ -
constexpr reference_wrapper< const _Tp > cref(const _Tp &__t) noexcept
Denotes a const reference should be taken to a variable.
│ │ │ -
The ranges::view_interface class template.
│ │ │ +
constexpr reference_wrapper< _Tp > ref(_Tp &__t) noexcept
Denotes a reference should be taken to a variable.
│ │ │ +
constexpr reference_wrapper< const _Tp > cref(const _Tp &__t) noexcept
Denotes a const reference should be taken to a variable.
│ │ │ +
The ranges::view_interface class template.
│ │ │
[concept.constructible], concept constructible_from
│ │ │
[concept.defaultinitializable], concept default_initializable
│ │ │
[concept.moveconstructible], concept move_constructible
│ │ │
[concept.copyconstructible], concept copy_constructible
│ │ │ -
[range.range] The range concept.
│ │ │ -
[range.sized] The sized_range concept.
│ │ │ -
[range.view] The ranges::view concept.
│ │ │ -
A range for which ranges::begin returns an input iterator.
│ │ │ -
A range for which ranges::begin returns a forward iterator.
│ │ │ -
A range for which ranges::begin returns a bidirectional iterator.
│ │ │ -
A range for which ranges::begin returns a random access iterator.
│ │ │ -
A range for which ranges::begin returns a contiguous iterator.
│ │ │ -
A range for which ranges::begin and ranges::end return the same type.
│ │ │ +
[range.range] The range concept.
│ │ │ +
[range.sized] The sized_range concept.
│ │ │ +
[range.view] The ranges::view concept.
│ │ │ +
A range for which ranges::begin returns an input iterator.
│ │ │ +
A range for which ranges::begin returns a forward iterator.
│ │ │ +
A range for which ranges::begin returns a bidirectional iterator.
│ │ │ +
A range for which ranges::begin returns a random access iterator.
│ │ │ +
A range for which ranges::begin returns a contiguous iterator.
│ │ │ +
A range for which ranges::begin and ranges::end return the same type.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - ranges
│ │ │ ├── html2text {}
│ │ │ │ @@ -10981,16 +10981,16 @@
│ │ │ │ _o_p_t_i_o_n_a_l
│ │ │ │ _s_p_a_n
│ │ │ │ _s_t_r_i_n_g___v_i_e_w
│ │ │ │ _t_u_p_l_e
│ │ │ │ _u_t_i_l_i_t_y
│ │ │ │ _v_a_r_i_a_n_t
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ -_r_e_f_w_r_a_p_._h
│ │ │ │ _r_a_n_g_e_s___u_t_i_l_._h
│ │ │ │ +_r_e_f_w_r_a_p_._h
│ │ │ │ _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_<_=
│ │ │ │ constexpr bool operator<=(const duration< _Rep1, _Period1 > &__lhs, const
│ │ │ │ duration< _Rep2, _Period2 > &__rhs)
│ │ │ │ DDeeffiinniittiioonn _c_h_r_o_n_o_._h_:_8_5_9
│ │ │ │ _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_>_=
│ │ │ │ constexpr bool operator>=(const duration< _Rep1, _Period1 > &__lhs, const
│ │ │ │ duration< _Rep2, _Period2 > &__rhs)
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00191_source.html
│ │ │ @@ -88,22 +88,22 @@
│ │ │ 31#define _GLIBCXX_RATIO 1
│ │ │
│ │ │
│ │ │ 34#pragma GCC system_header
│ │ │
│ │ │
│ │ │ 37#if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 44#define __glibcxx_want_ratio
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 47namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 49_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ @@ -720,16 +720,16 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00194_source.html
│ │ │ @@ -86,55 +86,55 @@
│ │ │
│ │ │
30#define _GLIBCXX_REGEX 1
│ │ │
│ │ │
│ │ │
33#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
38#if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
72#define __glibcxx_want_nonmember_container_access
│ │ │ -
│ │ │ +
│ │ │
│ │ │
75#if __cplusplus >= 201703L && _GLIBCXX_USE_CXX11_ABI
│ │ │ -
│ │ │ +
│ │ │
77namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │
79_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
82 template<
typename _B
idirectionalIterator>
│ │ │
│ │ │ @@ -158,38 +158,38 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
Error and exception objects for the std regex library.
│ │ │ -
Constant definitions for the std regex library.
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
Constant definitions for the std regex library.
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
Error and exception objects for the std regex library.
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ -
Class template polymorphic_allocator.
│ │ │ +
Class template polymorphic_allocator.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -104,37 +104,37 @@
│ │ │ │ 101
│ │ │ │ 102#endif // _GLIBCXX_REGEX
│ │ │ │ _b_i_t_s_e_t
│ │ │ │ _l_o_c_a_l_e
│ │ │ │ _s_t_a_c_k
│ │ │ │ _s_t_d_e_x_c_e_p_t
│ │ │ │ _s_t_r_i_n_g
│ │ │ │ +_r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h
│ │ │ │ +Constant definitions for the std regex library.
│ │ │ │ +_v_e_r_s_i_o_n_._h
│ │ │ │ _v_e_c_t_o_r_._t_c_c
│ │ │ │ _s_t_l___v_e_c_t_o_r_._h
│ │ │ │ -_s_t_l___t_r_e_e_._h
│ │ │ │ -_s_t_l___m_a_p_._h
│ │ │ │ -_s_t_l___b_v_e_c_t_o_r_._h
│ │ │ │ -_s_t_d___f_u_n_c_t_i_o_n_._h
│ │ │ │ -_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ -_r_e_g_e_x___e_x_e_c_u_t_o_r_._h
│ │ │ │ _r_e_g_e_x___c_o_m_p_i_l_e_r_._h
│ │ │ │ _r_e_g_e_x___a_u_t_o_m_a_t_o_n_._h
│ │ │ │ +_s_t_l___b_v_e_c_t_o_r_._h
│ │ │ │ +_s_t_l___p_a_i_r_._h
│ │ │ │ +_c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ +_r_e_g_e_x___e_x_e_c_u_t_o_r_._h
│ │ │ │ +_s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___t_y_p_e_s_._h
│ │ │ │ +_s_t_l___t_r_e_e_._h
│ │ │ │ +_s_t_l___m_a_p_._h
│ │ │ │ +_r_e_g_e_x_._h
│ │ │ │ _r_e_g_e_x___s_c_a_n_n_e_r_._h
│ │ │ │ +_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ +_s_t_l___a_l_g_o_._h
│ │ │ │ _r_e_g_e_x___e_r_r_o_r_._h
│ │ │ │ Error and exception objects for the std regex library.
│ │ │ │ -_r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h
│ │ │ │ -Constant definitions for the std regex library.
│ │ │ │ -_r_e_g_e_x_._h
│ │ │ │ -_m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h
│ │ │ │ -_v_e_r_s_i_o_n_._h
│ │ │ │ -_s_t_l___p_a_i_r_._h
│ │ │ │ -_s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___t_y_p_e_s_._h
│ │ │ │ _s_t_l___a_l_g_o_b_a_s_e_._h
│ │ │ │ -_s_t_l___a_l_g_o_._h
│ │ │ │ -_c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ +_m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h
│ │ │ │ +_s_t_d___f_u_n_c_t_i_o_n_._h
│ │ │ │ _a_l_i_g_n_e_d___b_u_f_f_e_r_._h
│ │ │ │ _s_t_d
│ │ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ │ _s_t_d_:_:_p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r
│ │ │ │ Class template polymorphic_allocator.
│ │ │ │ DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_1_2_3
│ │ │ │ _s_h_a_r_e_d___p_t_r_._h
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00197_source.html
│ │ │ @@ -87,27 +87,27 @@
│ │ │ 30#define _SCOPED_ALLOCATOR 1
│ │ │
│ │ │
│ │ │ 33#pragma GCC system_header
│ │ │
│ │ │
│ │ │ 36#if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │ 43#include <bits/uses_allocator.h>
│ │ │ 44#if __cplusplus > 201703L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 48#define __glibcxx_want_allocator_traits_is_always_equal
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 51namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 53_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ @@ -587,27 +587,27 @@
│ │ │ 528_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ constexpr auto tuple_cat(_Tpls &&... __tpls) -> typename __tuple_cat_result< _Tpls... >::__type
Create a tuple containing all elements from multiple tuple-like objects.
│ │ │ auto declval() noexcept -> decltype(__declval< _Tp >(0))
│ │ │ constexpr tuple< _Elements &&... > forward_as_tuple(_Elements &&... __args) noexcept
Create a tuple of lvalue or rvalue references to the arguments.
│ │ │ -constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ -constexpr piecewise_construct_t piecewise_construct
Tag for piecewise construction of std::pair objects.
│ │ │ +constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ +constexpr piecewise_construct_t piecewise_construct
Tag for piecewise construction of std::pair objects.
│ │ │ constexpr tuple< _Elements &... > tie(_Elements &... __args) noexcept
Return a tuple of lvalue references bound to the arguments.
│ │ │ -constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ +constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -constexpr _Iterator __base(_Iterator __it)
│ │ │ +constexpr _Iterator __base(_Iterator __it)
│ │ │ An adaptor to recursively pass an allocator to the objects it constructs.
│ │ │ Primary class template, tuple.
│ │ │ Define a member typedef type only if a boolean constant is true.
│ │ │
│ │ │
│ │ │ Uniform interface to all allocator types.
│ │ │ __detected_or_t< false_type, __pocma, _OuterAlloc > propagate_on_container_move_assignment
│ │ │ @@ -620,18 +620,18 @@
│ │ │ typename _Ptr< __c_pointer, const value_type >::type const_pointer
│ │ │ _OuterAlloc::value_type value_type
│ │ │ static constexpr void deallocate(_OuterAlloc &__a, pointer __p, size_type __n)
│ │ │ typename __detected_or_t< is_empty< _OuterAlloc >, __equal, _OuterAlloc >::type is_always_equal
│ │ │ static constexpr size_type max_size(const _OuterAlloc &__a) noexcept
│ │ │ __detected_or_t< false_type, __pocca, _OuterAlloc > propagate_on_container_copy_assignment
│ │ │ __detected_or_t< false_type, __pocs, _OuterAlloc > propagate_on_container_swap
│ │ │ -Struct holding two objects of arbitrary type.
│ │ │ -_T1 first
The first member.
│ │ │ -_T2 second
The second member.
│ │ │ -Tag type for piecewise construction of std::pair objects.
│ │ │ +Struct holding two objects of arbitrary type.
│ │ │ +_T1 first
The first member.
│ │ │ +_T2 second
The second member.
│ │ │ +Tag type for piecewise construction of std::pair objects.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -532,18 +532,18 @@
│ │ │ │ 528_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 529} // namespace
│ │ │ │ 530
│ │ │ │ 531#endif // C++11
│ │ │ │ 532
│ │ │ │ 533#endif // _SCOPED_ALLOCATOR
│ │ │ │ _t_u_p_l_e
│ │ │ │ -_u_s_e_s___a_l_l_o_c_a_t_o_r___a_r_g_s_._h
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ _s_t_l___p_a_i_r_._h
│ │ │ │ _c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ +_u_s_e_s___a_l_l_o_c_a_t_o_r___a_r_g_s_._h
│ │ │ │ _s_t_d_:_:_t_u_p_l_e___c_a_t
│ │ │ │ constexpr auto tuple_cat(_Tpls &&... __tpls) -> typename __tuple_cat_result<
│ │ │ │ _Tpls... >::__type
│ │ │ │ Create a tuple containing all elements from multiple tuple-like objects.
│ │ │ │ DDeeffiinniittiioonn _t_u_p_l_e_:_2_8_5_9
│ │ │ │ _s_t_d_:_:_d_e_c_l_v_a_l
│ │ │ │ auto declval() noexcept -> decltype(__declval< _Tp >(0))
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00200_source.html
│ │ │ @@ -86,21 +86,21 @@
│ │ │ 29#ifndef _GLIBCXX_SEMAPHORE
│ │ │ 30#define _GLIBCXX_SEMAPHORE 1
│ │ │
│ │ │
│ │ │ 33#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 38#define __glibcxx_want_semaphore
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 41#ifdef __cpp_lib_semaphore
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 44namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 46_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ 48 template<ptrdiff_t __least_max_value = _Semaphore_impl<2>::_S_max>
│ │ │ 49 class counting_semaphore
│ │ │ @@ -156,17 +156,17 @@
│ │ │
│ │ │ 100 using binary_semaphore = std::counting_semaphore<1>;
│ │ │
│ │ │ 102_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -102,14 +102,14 @@
│ │ │ │ 99 */
│ │ │ │ 100 using binary_semaphore = std::counting_semaphore<1>;
│ │ │ │ 101
│ │ │ │ 102_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 103} // namespace
│ │ │ │ 104#endif // __cpp_lib_semaphore
│ │ │ │ 105#endif // _GLIBCXX_SEMAPHORE
│ │ │ │ +_v_e_r_s_i_o_n_._h
│ │ │ │ _s_e_m_a_p_h_o_r_e___b_a_s_e_._h
│ │ │ │ _r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ -_v_e_r_s_i_o_n_._h
│ │ │ │ _s_t_d
│ │ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ │ * _s_e_m_a_p_h_o_r_e
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00203_source.html
│ │ │ @@ -112,37 +112,37 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 59#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 74#define __glibcxx_want_allocator_traits_is_always_equal
│ │ │ 75#define __glibcxx_want_containers_ranges
│ │ │ 76#define __glibcxx_want_erase_if
│ │ │ 77#define __glibcxx_want_generic_associative_lookup
│ │ │ 78#define __glibcxx_want_node_extract
│ │ │ 79#define __glibcxx_want_nonmember_container_access
│ │ │ 80#define __glibcxx_want_associative_heterogeneous_erasure
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 83#if __cplusplus >= 201703L
│ │ │ -
│ │ │ +
│ │ │ 85namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 87_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ 90 template<
typename _Key,
typename _Cmp = std::less<_Key>>
│ │ │ 91 using set = std::set<_Key, _Cmp, polymorphic_allocator<_Key>>;
│ │ │ @@ -171,22 +171,22 @@
│ │ │
│ │ │ 115 {
return __detail::__erase_nodes_if(__cont, __cont, __pred); }
│ │ │ 116_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -117,20 +117,20 @@
│ │ │ │ 114 _Predicate __pred)
│ │ │ │ 115 { return __detail::__erase_nodes_if(__cont, __cont, __pred); }
│ │ │ │ 116_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 117} // namespace std
│ │ │ │ 118#endif // __cpp_lib_erase_if
│ │ │ │ 119
│ │ │ │ 120#endif /* _GLIBCXX_SET */
│ │ │ │ -_s_t_l___t_r_e_e_._h
│ │ │ │ +_v_e_r_s_i_o_n_._h
│ │ │ │ _s_t_l___s_e_t_._h
│ │ │ │ -_s_t_l___m_u_l_t_i_s_e_t_._h
│ │ │ │ +_s_t_l___t_r_e_e_._h
│ │ │ │ _r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ -_m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h
│ │ │ │ _e_r_a_s_e___i_f_._h
│ │ │ │ -_v_e_r_s_i_o_n_._h
│ │ │ │ +_m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h
│ │ │ │ +_s_t_l___m_u_l_t_i_s_e_t_._h
│ │ │ │ _r_a_n_g_e___a_c_c_e_s_s_._h
│ │ │ │ _s_t_d
│ │ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ │ _s_e_t
│ │ │ │ * _s_e_t
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00206_source.html
│ │ │ @@ -86,28 +86,28 @@
│ │ │
29#ifndef _GLIBCXX_SHARED_MUTEX
│ │ │
30#define _GLIBCXX_SHARED_MUTEX 1
│ │ │
│ │ │
│ │ │
33#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
38#if __cplusplus >= 201402L
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
47#define __glibcxx_want_shared_mutex
│ │ │
48#define __glibcxx_want_shared_timed_mutex
│ │ │ -
│ │ │ +
│ │ │
│ │ │
51#if ! (_GLIBCXX_USE_PTHREAD_RWLOCK_T && _GTHREAD_USE_MUTEX_TIMEDLOCK)
│ │ │
│ │ │
│ │ │
│ │ │
55namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ @@ -916,39 +916,39 @@
│ │ │
855_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
constexpr __enable_if_is_duration< _ToDur > duration_cast(const duration< _Rep, _Period > &__d)
│ │ │ -
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ -
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
constexpr __enable_if_is_duration< _ToDur > duration_cast(const duration< _Rep, _Period > &__d)
│ │ │ +
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ +
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │
void lock(_L1 &__l1, _L2 &__l2, _L3 &... __l3)
Generic lock.
│ │ │
int try_lock(_L1 &__l1, _L2 &__l2, _L3 &... __l3)
Generic try_lock.
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
The standard shared timed mutex type.
│ │ │
│ │ │ -
chrono::duration represents a distance between two points in time
│ │ │ -
chrono::time_point represents a point in time as measured by a clock
│ │ │ -
│ │ │ -
│ │ │ -
Do not acquire ownership of the mutex.
│ │ │ -
Try to acquire ownership of the mutex without blocking.
│ │ │ -
Assume the calling thread has already obtained mutex ownership and manage it.
│ │ │ -
A movable scoped lock type.
│ │ │ +
chrono::duration represents a distance between two points in time
│ │ │ +
chrono::time_point represents a point in time as measured by a clock
│ │ │ +
│ │ │ +
│ │ │ +
Do not acquire ownership of the mutex.
│ │ │ +
Try to acquire ownership of the mutex without blocking.
│ │ │ +
Assume the calling thread has already obtained mutex ownership and manage it.
│ │ │ +
A movable scoped lock type.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - shared_mutex
│ │ │ ├── html2text {}
│ │ │ │ @@ -858,21 +858,21 @@
│ │ │ │ 855_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 856} // namespace
│ │ │ │ 857
│ │ │ │ 858#endif // C++14
│ │ │ │ 859
│ │ │ │ 860#endif // _GLIBCXX_SHARED_MUTEX
│ │ │ │ _c_o_n_d_i_t_i_o_n___v_a_r_i_a_b_l_e
│ │ │ │ -_s_t_d___m_u_t_e_x_._h
│ │ │ │ -_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ _c_h_r_o_n_o_._h
│ │ │ │ +_s_t_d___m_u_t_e_x_._h
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ _m_o_v_e_._h
│ │ │ │ _n_e_w___t_h_r_o_w_._h
│ │ │ │ _f_u_n_c_t_e_x_c_e_p_t_._h
│ │ │ │ +_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ _e_r_r_o_r___c_o_n_s_t_a_n_t_s_._h
│ │ │ │ _s_t_d_:_:_c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n___c_a_s_t
│ │ │ │ constexpr __enable_if_is_duration< _ToDur > duration_cast(const duration< _Rep,
│ │ │ │ _Period > &__d)
│ │ │ │ DDeeffiinniittiioonn _c_h_r_o_n_o_._h_:_2_7_9
│ │ │ │ _s_t_d_:_:_m_o_v_e
│ │ │ │ constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00209_source.html
│ │ │ @@ -83,18 +83,18 @@
│ │ │
│ │ │
│ │ │
│ │ │ 29#ifndef _GLIBCXX_SRCLOC
│ │ │ 30#define _GLIBCXX_SRCLOC 1
│ │ │
│ │ │ 32#define __glibcxx_want_source_location
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 35#if __cpp_lib_source_location
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ 40_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ 41#ifdef __glibcxx_contracts
│ │ │ 42 namespace contracts {
class contract_violation; }
│ │ │
│ │ │ @@ -151,16 +151,16 @@
│ │ │
│ │ │
│ │ │
│ │ │ 97_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00212_source.html
│ │ │ @@ -93,21 +93,21 @@
│ │ │
│ │ │
│ │ │ 38#pragma GCC system_header
│ │ │
│ │ │
│ │ │ 41#define __glibcxx_want_span
│ │ │ 42#define __glibcxx_want_span_initializer_list
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │ 50#ifdef __cpp_lib_span_initializer_list
│ │ │
│ │ │
│ │ │ 53namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 55_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ @@ -608,30 +608,30 @@
│ │ │ 551 template<
typename _ElementType,
size_t _Extent>
│ │ │ 552 inline constexpr bool
│ │ │ 553 enable_borrowed_range<span<_ElementType, _Extent>> =
true;
│ │ │
│ │ │
│ │ │ 556 template<
typename _ElementType,
size_t _Extent>
│ │ │ 557 inline constexpr bool
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 560_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -constexpr bool enable_view
[range.view] The ranges::enable_view boolean.
│ │ │ -constexpr _Tp * to_address(_Tp *__ptr) noexcept
Obtain address referenced by a pointer to an object.
│ │ │ +
│ │ │ +
│ │ │ +constexpr bool enable_view
[range.view] The ranges::enable_view boolean.
│ │ │ +constexpr _Tp * to_address(_Tp *__ptr) noexcept
Obtain address referenced by a pointer to an object.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
Return the size of a container.
│ │ │ -constexpr auto data(_Container &__cont) noexcept(noexcept(__cont.data())) -> decltype(__cont.data())
Return the data pointer of a container.
│ │ │ +constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
Return the size of a container.
│ │ │ +constexpr auto data(_Container &__cont) noexcept(noexcept(__cont.data())) -> decltype(__cont.data())
Return the data pointer of a container.
│ │ │ Implementation details not part of the namespace std interface.
│ │ │ A standard container for storing a fixed size sequence of elements.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00215_source.html
│ │ │ @@ -90,23 +90,23 @@
│ │ │ 33#ifndef _GLIBCXX_SSTREAM
│ │ │ 34#define _GLIBCXX_SSTREAM 1
│ │ │
│ │ │
│ │ │ 37#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 47#define __glibcxx_want_sstream_from_string_view
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 50#ifdef __cpp_lib_sstream_from_string_view
│ │ │
│ │ │
│ │ │
│ │ │ 54#if __cplusplus > 201703L && _GLIBCXX_USE_CXX11_ABI
│ │ │ 55# define _GLIBCXX_LVAL_REF_QUAL &
│ │ │ @@ -1546,52 +1546,52 @@
│ │ │ 1417_GLIBCXX_END_NAMESPACE_CXX11
│ │ │ 1418_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ 1421#undef _GLIBCXX_SSTREAM_ALWAYS_INLINE
│ │ │ 1422#undef _GLIBCXX_LVAL_REF_QUAL
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ -constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ +constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
│ │ │ -constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
Return the size of a container.
│ │ │ -constexpr auto data(_Container &__cont) noexcept(noexcept(__cont.data())) -> decltype(__cont.data())
Return the data pointer of a container.
│ │ │ -constexpr _Iterator __base(_Iterator __it)
│ │ │ -void init(basic_streambuf< _CharT, _Traits > *__sb)
All setup is performed here.
│ │ │ +ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
│ │ │ +constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
Return the size of a container.
│ │ │ +constexpr auto data(_Container &__cont) noexcept(noexcept(__cont.data())) -> decltype(__cont.data())
Return the data pointer of a container.
│ │ │ +constexpr _Iterator __base(_Iterator __it)
│ │ │ +void init(basic_streambuf< _CharT, _Traits > *__sb)
All setup is performed here.
│ │ │ char_type * pptr() const
Access to the put area.
│ │ │
│ │ │ void setg(char_type *__gbeg, char_type *__gnext, char_type *__gend)
Setting the three read area pointers.
│ │ │ char_type * eback() const
Access to the get area.
│ │ │ char_type * egptr() const
Access to the get area.
│ │ │ char_type * gptr() const
Access to the get area.
│ │ │ locale pubimbue(const locale &__loc)
Entry point for imbue().
│ │ │ char_type * pbase() const
Access to the put area.
│ │ │ traits_type::off_type off_type
│ │ │ basic_streambuf()
Base constructor.
│ │ │ basic_istream(__streambuf_type *__sb)
Base constructor.
│ │ │ -basic_ostream(__streambuf_type *__sb)
Base constructor.
│ │ │ +basic_ostream(__streambuf_type *__sb)
Base constructor.
│ │ │ basic_iostream(basic_streambuf< _CharT, _Traits > *__sb)
Constructor does nothing.
│ │ │ The actual work of input and output (for std::string).
│ │ │ virtual streamsize showmanyc()
Investigating the data available.
│ │ │ -virtual int_type underflow()
Fetches more data from the controlled sequence.
│ │ │ -virtual pos_type seekpos(pos_type __sp, ios_base::openmode __mode=ios_base::in|ios_base::out)
Alters the stream positions.
│ │ │ -virtual pos_type seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode=ios_base::in|ios_base::out)
Alters the stream positions.
│ │ │ -virtual int_type overflow(int_type __c=traits_type::eof())
Consumes data from the buffer; writes to the controlled sequence.
│ │ │ +virtual int_type underflow()
Fetches more data from the controlled sequence.
│ │ │ +virtual pos_type seekpos(pos_type __sp, ios_base::openmode __mode=ios_base::in|ios_base::out)
Alters the stream positions.
│ │ │ +virtual pos_type seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode=ios_base::in|ios_base::out)
Alters the stream positions.
│ │ │ +virtual int_type overflow(int_type __c=traits_type::eof())
Consumes data from the buffer; writes to the controlled sequence.
│ │ │ basic_stringbuf()
Starts with an empty string buffer.
│ │ │ -virtual int_type pbackfail(int_type __c=traits_type::eof())
Tries to back up the input sequence.
│ │ │ +virtual int_type pbackfail(int_type __c=traits_type::eof())
Tries to back up the input sequence.
│ │ │ __string_type str() const &
Copying out the string buffer.
│ │ │ virtual __streambuf_type * setbuf(char_type *__s, streamsize __n)
Manipulates the buffer.
│ │ │ ios_base::openmode _M_mode
│ │ │ Controlling input for std::string.
│ │ │ void str(const __string_type &__s)
Setting a new buffer.
│ │ │ __stringbuf_type * rdbuf() const
Accessing the underlying buffer.
│ │ │ ~basic_istringstream()
The destructor does nothing.
│ │ │ @@ -1614,25 +1614,25 @@
│ │ │ void str(const __string_type &__s)
Setting a new buffer.
│ │ │ __string_type str() const &
Copying out the string buffer.
│ │ │ __stringbuf_type * rdbuf() const
Accessing the underlying buffer.
│ │ │ basic_stringstream(ios_base::openmode __m)
Starts with an empty string buffer.
│ │ │ Uniform interface to all allocator types.
│ │ │ typename __detected_or_t< is_empty< _Alloc >, __equal, _Alloc >::type is_always_equal
Whether all instances of the allocator type compare equal.
│ │ │ __detected_or_t< false_type, __pocs, _Alloc > propagate_on_container_swap
How the allocator is propagated on swap.
│ │ │ -Managing sequences of characters and character-like objects.
│ │ │ -constexpr size_type size() const noexcept
Returns the number of characters in the string, not including any null-termination.
│ │ │ -constexpr const _CharT * data() const noexcept
Return const pointer to contents.
│ │ │ -constexpr basic_string & assign(const basic_string &__str)
Set value to contents of another string.
│ │ │ -The base of the I/O class hierarchy.
│ │ │ -static const openmode in
Open for input. Default for ifstream and fstream.
│ │ │ -static const openmode out
Open for output. Default for ofstream and fstream.
│ │ │ -_Ios_Openmode openmode
This is a bitmask type.
│ │ │ -static const openmode app
Seek to end before each write.
│ │ │ -_Ios_Seekdir seekdir
This is an enumerated type.
│ │ │ -static const openmode ate
Open and seek to end immediately after opening.
│ │ │ +Managing sequences of characters and character-like objects.
│ │ │ +constexpr size_type size() const noexcept
Returns the number of characters in the string, not including any null-termination.
│ │ │ +constexpr const _CharT * data() const noexcept
Return const pointer to contents.
│ │ │ +constexpr basic_string & assign(const basic_string &__str)
Set value to contents of another string.
│ │ │ +The base of the I/O class hierarchy.
│ │ │ +static const openmode in
Open for input. Default for ifstream and fstream.
│ │ │ +static const openmode out
Open for output. Default for ofstream and fstream.
│ │ │ +_Ios_Openmode openmode
This is a bitmask type.
│ │ │ +static const openmode app
Seek to end before each write.
│ │ │ +_Ios_Seekdir seekdir
This is an enumerated type.
│ │ │ +static const openmode ate
Open and seek to end immediately after opening.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1429,17 +1429,17 @@
│ │ │ │ 1423
│ │ │ │ 1424#include <_b_i_t_s_/_s_s_t_r_e_a_m_._t_c_c>
│ │ │ │ 1425
│ │ │ │ 1426#endif /* _GLIBCXX_SSTREAM */
│ │ │ │ _i_s_t_r_e_a_m
│ │ │ │ _o_s_t_r_e_a_m
│ │ │ │ _s_t_r_i_n_g___v_i_e_w
│ │ │ │ +_v_e_r_s_i_o_n_._h
│ │ │ │ _s_s_t_r_e_a_m_._t_c_c
│ │ │ │ _r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ -_v_e_r_s_i_o_n_._h
│ │ │ │ _s_t_d_:_:_m_o_v_e
│ │ │ │ constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
│ │ │ │ Convert a value to an rvalue.
│ │ │ │ DDeeffiinniittiioonn _m_o_v_e_._h_:_1_3_8
│ │ │ │ _s_t_d_:_:_____a_d_d_r_e_s_s_o_f
│ │ │ │ constexpr _Tp * __addressof(_Tp &__r) noexcept
│ │ │ │ Same as C++11 std::addressof.
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00218_source.html
│ │ │ @@ -112,25 +112,25 @@
│ │ │
│ │ │ 56#define _GLIBCXX_STACK 1
│ │ │
│ │ │
│ │ │ 59#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 64#define __glibcxx_want_adaptor_iterator_pair_constructor
│ │ │ 65#define __glibcxx_want_containers_ranges
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 71#ifdef __glibcxx_format_ranges
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 74namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 76_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ 79 template<__format::__char _CharT,
typename _Tp,
│ │ │ @@ -173,20 +173,20 @@
│ │ │ 116_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -A standard container giving FILO behavior.
│ │ │ +A standard container giving FILO behavior.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - stack
│ │ │ ├── html2text {}
│ │ │ │ @@ -121,17 +121,17 @@
│ │ │ │ 117} // namespace std
│ │ │ │ 118#endif // __glibcxx_format_ranges
│ │ │ │ 119
│ │ │ │ 120
│ │ │ │ 121#endif /* _GLIBCXX_STACK */
│ │ │ │ _d_e_q_u_e
│ │ │ │ _s_t_l___s_t_a_c_k_._h
│ │ │ │ -_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ -_f_o_r_m_a_t_f_w_d_._h
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ +_f_o_r_m_a_t_f_w_d_._h
│ │ │ │ +_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ _s_t_d
│ │ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ │ _s_t_d_:_:_s_t_a_c_k
│ │ │ │ A standard container giving FILO behavior.
│ │ │ │ DDeeffiinniittiioonn _s_t_l___s_t_a_c_k_._h_:_1_0_8
│ │ │ │ * _s_t_a_c_k
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00221_source.html
│ │ │ @@ -92,15 +92,15 @@
│ │ │
│ │ │
│ │ │ 37#pragma GCC system_header
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 44namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 46_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ @@ -140,15 +140,15 @@
│ │ │
│ │ │ 82_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ runtime_error(const string &__arg)
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00224_source.html
│ │ │ @@ -82,22 +82,22 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
29#ifndef _GLIBCXX_STOP_TOKEN
│ │ │
30#define _GLIBCXX_STOP_TOKEN
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
34#define __glibcxx_want_jthread
│ │ │ -
│ │ │ +
│ │ │
│ │ │
37#ifdef __glibcxx_jthread
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
43namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │
45_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ @@ -726,20 +726,20 @@
│ │ │
│ │ │
670_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
__bool_constant< true > true_type
The type used as a compile-time boolean with true value.
│ │ │ -
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ -
constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ +
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ +
constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -672,17 +672,17 @@
│ │ │ │ 669
│ │ │ │ 670_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 671} // namespace std
│ │ │ │ 672#endif // __glibcxx_jthread
│ │ │ │ 673#endif // _GLIBCXX_STOP_TOKEN
│ │ │ │ _a_t_o_m_i_c
│ │ │ │ _s_e_m_a_p_h_o_r_e
│ │ │ │ -_s_t_d___t_h_r_e_a_d_._h
│ │ │ │ -_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ +_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ +_s_t_d___t_h_r_e_a_d_._h
│ │ │ │ _s_t_d_:_:_t_r_u_e___t_y_p_e
│ │ │ │ __bool_constant< true > true_type
│ │ │ │ The type used as a compile-time boolean with true value.
│ │ │ │ DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_1_1_9
│ │ │ │ _s_t_d_:_:_m_o_v_e
│ │ │ │ constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
│ │ │ │ Convert a value to an rvalue.
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00227_source.html
│ │ │ @@ -90,22 +90,22 @@
│ │ │ 33#ifndef _GLIBXX_STREAMBUF
│ │ │ 34#define _GLIBXX_STREAMBUF 1
│ │ │
│ │ │
│ │ │ 37#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 49namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 51_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ 53#define _IsUnused __attribute__ ((__unused__))
│ │ │
│ │ │ @@ -966,50 +966,50 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 859_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ basic_istream< char > istream
Base class for char input streams.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
│ │ │ -Template class basic_ios, virtual base class for all stream classes.
│ │ │ +ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
│ │ │ +Template class basic_ios, virtual base class for all stream classes.
│ │ │ The actual work of input and output (interface).
│ │ │ virtual pos_type seekpos(pos_type, ios_base::openmode=ios_base::in|ios_base::out)
Alters the stream positions.
│ │ │
│ │ │ locale getloc() const
Locale access.
│ │ │ traits_type::int_type int_type
│ │ │ char_type * epptr() const
Access to the put area.
│ │ │ basic_streambuf< char_type, traits_type > __streambuf_type
│ │ │ virtual int_type overflow(int_type __c=traits_type::eof())
Consumes data from the buffer; writes to the controlled sequence.
│ │ │ -virtual streamsize xsputn(const char_type *__s, streamsize __n)
Multiple character insertion.
│ │ │ +virtual streamsize xsputn(const char_type *__s, streamsize __n)
Multiple character insertion.
│ │ │ pos_type pubseekpos(pos_type __sp, ios_base::openmode __mode=ios_base::in|ios_base::out)
Alters the stream position.
│ │ │ char_type * pptr() const
Access to the put area.
│ │ │
│ │ │ void setg(char_type *__gbeg, char_type *__gnext, char_type *__gend)
Setting the three read area pointers.
│ │ │ char_type * eback() const
Access to the get area.
│ │ │ virtual int sync()
Synchronizes the buffer arrays with the controlled sequences.
│ │ │ virtual int_type uflow()
Fetches more data from the controlled sequence.
│ │ │ char_type * egptr() const
Access to the get area.
│ │ │ char_type * gptr() const
Access to the get area.
│ │ │ traits_type::pos_type pos_type
│ │ │ streamsize sputn(const char_type *__s, streamsize __n)
Entry point for all single-character output functions.
│ │ │ -virtual streamsize xsgetn(char_type *__s, streamsize __n)
Multiple character extraction.
│ │ │ +virtual streamsize xsgetn(char_type *__s, streamsize __n)
Multiple character extraction.
│ │ │
│ │ │ int_type snextc()
Getting the next character.
│ │ │ virtual void imbue(const locale &__loc)
Changes translations.
│ │ │ int_type sbumpc()
Getting the next character.
│ │ │
│ │ │ streamsize sgetn(char_type *__s, streamsize __n)
Entry point for xsgetn.
│ │ │ basic_streambuf * pubsetbuf(char_type *__s, streamsize __n)
Entry points for derived buffer functions.
│ │ │ @@ -1035,24 +1035,24 @@
│ │ │ traits_type::off_type off_type
│ │ │ int_type sputbackc(char_type __c)
Pushing characters back into the input stream.
│ │ │
│ │ │
│ │ │ int_type sputc(char_type __c)
Entry point for all single-character output functions.
│ │ │ basic_streambuf()
Base constructor.
│ │ │ Template class basic_istream.
│ │ │ -Template class basic_ostream.
│ │ │ -Provides input iterator semantics for streambufs.
│ │ │ -Provides output iterator semantics for streambufs.
│ │ │ -Managing sequences of characters and character-like objects.
│ │ │ +Template class basic_ostream.
│ │ │ +Provides input iterator semantics for streambufs.
│ │ │ +Provides output iterator semantics for streambufs.
│ │ │ +Managing sequences of characters and character-like objects.
│ │ │
│ │ │ -static const openmode in
Open for input. Default for ifstream and fstream.
│ │ │ -static const openmode out
Open for output. Default for ofstream and fstream.
│ │ │ -_Ios_Openmode openmode
This is a bitmask type.
│ │ │ -_Ios_Seekdir seekdir
This is an enumerated type.
│ │ │ -Container class for localization functionality.
│ │ │ +static const openmode in
Open for input. Default for ifstream and fstream.
│ │ │ +static const openmode out
Open for output. Default for ofstream and fstream.
│ │ │ +_Ios_Openmode openmode
This is a bitmask type.
│ │ │ +_Ios_Seekdir seekdir
This is an enumerated type.
│ │ │ +Container class for localization functionality.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - streambuf
│ │ │ ├── html2text {}
│ │ │ │ @@ -863,19 +863,19 @@
│ │ │ │ 859_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 860} // namespace
│ │ │ │ 861
│ │ │ │ 862#include <_b_i_t_s_/_s_t_r_e_a_m_b_u_f_._t_c_c>
│ │ │ │ 863
│ │ │ │ 864#endif /* _GLIBCXX_STREAMBUF */
│ │ │ │ _i_o_s_f_w_d
│ │ │ │ +_i_o_s___b_a_s_e_._h
│ │ │ │ _s_t_r_e_a_m_b_u_f_._t_c_c
│ │ │ │ _r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ -_l_o_c_a_l_e_f_w_d_._h
│ │ │ │ -_i_o_s___b_a_s_e_._h
│ │ │ │ _c_p_p___t_y_p_e___t_r_a_i_t_s_._h
│ │ │ │ +_l_o_c_a_l_e_f_w_d_._h
│ │ │ │ _c_+_+_c_o_n_f_i_g_._h
│ │ │ │ _t_y_p_e___t_r_a_i_t_s_._h
│ │ │ │ _s_t_d_:_:_i_s_t_r_e_a_m
│ │ │ │ basic_istream< char > istream
│ │ │ │ Base class for char input streams.
│ │ │ │ DDeeffiinniittiioonn _i_o_s_f_w_d_:_1_4_2
│ │ │ │ _s_t_d
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00230_source.html
│ │ │ @@ -90,39 +90,39 @@
│ │ │ 33#ifndef _GLIBCXX_STRING
│ │ │ 34#define _GLIBCXX_STRING 1
│ │ │
│ │ │
│ │ │ 37#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │ 43#define __glibcxx_exc_in_string 1
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ 60#if (_GLIBCXX_HOSTED && __cpp_exceptions && __cplusplus > 202302L \
│ │ │ 61 && __cpp_constexpr_exceptions >= 202411L)
│ │ │ -
│ │ │ +
│ │ │ 63#undef __glibcxx_exc_in_string
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 66#undef __glibcxx_exc_in_string
│ │ │
│ │ │
│ │ │ 69#define __glibcxx_want_algorithm_default_value_type
│ │ │ 70#define __glibcxx_want_allocator_traits_is_always_equal
│ │ │ 71#define __glibcxx_want_constexpr_char_traits
│ │ │ @@ -130,18 +130,18 @@
│ │ │ 73#define __glibcxx_want_containers_ranges
│ │ │ 74#define __glibcxx_want_erase_if
│ │ │ 75#define __glibcxx_want_nonmember_container_access
│ │ │ 76#define __glibcxx_want_string_resize_and_overwrite
│ │ │ 77#define __glibcxx_want_string_subview
│ │ │ 78#define __glibcxx_want_string_udls
│ │ │ 79#define __glibcxx_want_to_string
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 82#if __cplusplus >= 201703L && _GLIBCXX_USE_CXX11_ABI
│ │ │ -
│ │ │ +
│ │ │ 84namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 86_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ 88 template<
typename _CharT,
typename _Traits =
char_traits<_CharT>>
│ │ │ 89 using basic_string = std::basic_string<_CharT, _Traits,
│ │ │
│ │ │ @@ -175,37 +175,37 @@
│ │ │ 118 {
return std::erase_if(__cont, __gnu_cxx::__ops::__equal_to(__value)); }
│ │ │
│ │ │ 120_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -Managing sequences of characters and character-like objects.
│ │ │ -Class template polymorphic_allocator.
│ │ │ +Managing sequences of characters and character-like objects.
│ │ │ +Class template polymorphic_allocator.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -121,32 +121,32 @@
│ │ │ │ 118 { return std::erase_if(__cont, __gnu_cxx::__ops::__equal_to(__value)); }
│ │ │ │ 119
│ │ │ │ 120_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 121} // namespace std
│ │ │ │ 122#endif // __cpp_lib_erase_if
│ │ │ │ 123
│ │ │ │ 124#endif /* _GLIBCXX_STRING */
│ │ │ │ -_s_t_r_i_n_g_f_w_d_._h
│ │ │ │ -_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ +_s_t_d_e_x_c_e_p_t___e_x_c_e_p_t_._h
│ │ │ │ +_v_e_r_s_i_o_n_._h
│ │ │ │ +_b_a_s_i_c___s_t_r_i_n_g_._h
│ │ │ │ _o_s_t_r_e_a_m___i_n_s_e_r_t_._h
│ │ │ │ -_m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h
│ │ │ │ -_l_o_c_a_l_e_f_w_d_._h
│ │ │ │ -_e_r_a_s_e___i_f_._h
│ │ │ │ +_c_h_a_r___t_r_a_i_t_s_._h
│ │ │ │ +_s_t_r_i_n_g_f_w_d_._h
│ │ │ │ +_s_t_d_e_x_c_e_p_t___t_h_r_o_w_._h
│ │ │ │ +_s_t_l___f_u_n_c_t_i_o_n_._h
│ │ │ │ _b_a_s_i_c___s_t_r_i_n_g_._t_c_c
│ │ │ │ -_b_a_s_i_c___s_t_r_i_n_g_._h
│ │ │ │ -_v_e_r_s_i_o_n_._h
│ │ │ │ +_a_l_l_o_c_a_t_o_r_._h
│ │ │ │ +_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ _s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___f_u_n_c_s_._h
│ │ │ │ -_s_t_l___f_u_n_c_t_i_o_n_._h
│ │ │ │ +_c_p_p___t_y_p_e___t_r_a_i_t_s_._h
│ │ │ │ +_e_r_a_s_e___i_f_._h
│ │ │ │ _s_t_l___a_l_g_o_b_a_s_e_._h
│ │ │ │ -_s_t_d_e_x_c_e_p_t___t_h_r_o_w_._h
│ │ │ │ -_s_t_d_e_x_c_e_p_t___e_x_c_e_p_t_._h
│ │ │ │ +_m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h
│ │ │ │ _r_a_n_g_e___a_c_c_e_s_s_._h
│ │ │ │ -_c_p_p___t_y_p_e___t_r_a_i_t_s_._h
│ │ │ │ -_c_h_a_r___t_r_a_i_t_s_._h
│ │ │ │ -_a_l_l_o_c_a_t_o_r_._h
│ │ │ │ +_l_o_c_a_l_e_f_w_d_._h
│ │ │ │ _c_+_+_c_o_n_f_i_g_._h
│ │ │ │ _s_t_d_:_:_m_o_v_e
│ │ │ │ constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
│ │ │ │ Convert a value to an rvalue.
│ │ │ │ DDeeffiinniittiioonn _m_o_v_e_._h_:_1_3_8
│ │ │ │ _s_t_d
│ │ │ │ ISO C++ entities toplevel namespace is std.
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00233.html
│ │ │ @@ -278,15 +278,15 @@
│ │ │
│ │ │ template<typename _CharT, typename _Traits>
│ │ │
│ │ │
│ │ │ |
│ │ │
│ │ │ |
│ │ │
│ │ │ inlineconstexpr |
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00233_source.html
│ │ │ @@ -97,35 +97,35 @@
│ │ │
40#define __glibcxx_want_constexpr_char_traits
│ │ │
41#define __glibcxx_want_constexpr_string_view
│ │ │
42#define __glibcxx_want_freestanding_string_view
│ │ │
43#define __glibcxx_want_starts_ends_with
│ │ │
44#define __glibcxx_want_string_contains
│ │ │
45#define __glibcxx_want_string_subview
│ │ │
46#define __glibcxx_want_string_view
│ │ │ -
│ │ │ +
│ │ │
│ │ │
49#if __cplusplus >= 201703L
│ │ │
│ │ │ -
│ │ │ +
│ │ │
52#ifndef __glibcxx_exc_in_string
│ │ │
53#define __glibcxx_exc_in_string 2
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
61#if __cplusplus >= 202002L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
70namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │
72_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ @@ -968,59 +968,59 @@
│ │ │
909 template<
typename _CharT,
typename _Traits>
│ │ │
910 inline constexpr bool
│ │ │
911 enable_borrowed_range<basic_string_view<_CharT, _Traits>> =
true;
│ │ │
│ │ │
│ │ │
914 template<
typename _CharT,
typename _Traits>
│ │ │
915 inline constexpr bool
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
919_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
924#if __glibcxx_exc_in_string == 2
│ │ │
925#undef __glibcxx_exc_in_string
│ │ │
926#if (_GLIBCXX_HOSTED && __cpp_exceptions && __cplusplus > 202302L \
│ │ │
927 && __cpp_constexpr_exceptions >= 202411L)
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
constexpr bool enable_view
[range.view] The ranges::enable_view boolean.
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
constexpr _Tp * to_address(_Tp *__ptr) noexcept
Obtain address referenced by a pointer to an object.
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
constexpr bool enable_view
[range.view] The ranges::enable_view boolean.
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
constexpr _Tp * to_address(_Tp *__ptr) noexcept
Obtain address referenced by a pointer to an object.
│ │ │
__bool_constant< false > false_type
The type used as a compile-time boolean with false value.
│ │ │ -
constexpr const _Tp & min(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ +
constexpr const _Tp & min(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │
std::basic_ostream< _CharT, _Traits > & operator<<(std::basic_ostream< _CharT, _Traits > &__os, const bitset< _Nb > &__x)
Global I/O operators for bitsets.
│ │ │
ISO C++ inline namespace for literal suffixes.
│ │ │
__numeric_traits_integer< _Tp > __int_traits
Convenience alias for __numeric_traits<integer-type>.
│ │ │ -
Template class basic_ostream.
│ │ │ +
Template class basic_ostream.
│ │ │
A non-owning reference to a string.
│ │ │ -
Primary class template hash.
│ │ │ -
│ │ │ +
Primary class template hash.
│ │ │ +
│ │ │
│ │ │
[concept.same], concept same_as
│ │ │
[concept.convertible], concept convertible_to
│ │ │ -
[range.sized] The sized_range concept.
│ │ │ -
A range for which ranges::begin returns a contiguous iterator.
│ │ │ +
[range.sized] The sized_range concept.
│ │ │ +
A range for which ranges::begin returns a contiguous iterator.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -934,26 +934,26 @@
│ │ │ │ 929#endif
│ │ │ │ 930#endif
│ │ │ │ 931
│ │ │ │ 932#endif // __cplusplus <= 201402L
│ │ │ │ 933
│ │ │ │ 934#endif // _GLIBCXX_STRING_VIEW
│ │ │ │ _i_o_s_f_w_d
│ │ │ │ -_o_s_t_r_e_a_m___i_n_s_e_r_t_._h
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ -_s_t_l___a_l_g_o_b_a_s_e_._h
│ │ │ │ -_s_t_d_e_x_c_e_p_t___t_h_r_o_w_._h
│ │ │ │ +_o_s_t_r_e_a_m___i_n_s_e_r_t_._h
│ │ │ │ +_c_h_a_r___t_r_a_i_t_s_._h
│ │ │ │ +_f_u_n_c_t_i_o_n_a_l___h_a_s_h_._h
│ │ │ │ _r_a_n_g_e_s___b_a_s_e_._h
│ │ │ │ _s_t_d_:_:_r_a_n_g_e_s_:_:_e_n_a_b_l_e___v_i_e_w
│ │ │ │ constexpr bool enable_view
│ │ │ │ [range.view] The ranges::enable_view boolean.
│ │ │ │ DDeeffiinniittiioonn _r_a_n_g_e_s___b_a_s_e_._h_:_5_8_2
│ │ │ │ +_s_t_d_e_x_c_e_p_t___t_h_r_o_w_._h
│ │ │ │ +_s_t_l___a_l_g_o_b_a_s_e_._h
│ │ │ │ _r_a_n_g_e___a_c_c_e_s_s_._h
│ │ │ │ -_f_u_n_c_t_i_o_n_a_l___h_a_s_h_._h
│ │ │ │ -_c_h_a_r___t_r_a_i_t_s_._h
│ │ │ │ _s_t_d_:_:_t_o___a_d_d_r_e_s_s
│ │ │ │ constexpr _Tp * to_address(_Tp *__ptr) noexcept
│ │ │ │ Obtain address referenced by a pointer to an object.
│ │ │ │ DDeeffiinniittiioonn _p_t_r___t_r_a_i_t_s_._h_:_2_3_2
│ │ │ │ _s_t_d_:_:_f_a_l_s_e___t_y_p_e
│ │ │ │ __bool_constant< false > false_type
│ │ │ │ The type used as a compile-time boolean with false value.
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00236_source.html
│ │ │ @@ -86,27 +86,27 @@
│ │ │
29#ifndef _GLIBCXX_SYNCSTREAM
│ │ │
30#define _GLIBCXX_SYNCSTREAM 1
│ │ │
│ │ │
│ │ │
33#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
40#define __glibcxx_want_syncbuf
│ │ │ -
│ │ │ +
│ │ │
│ │ │
43#ifdef __cpp_lib_syncbuf
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
50namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │
52_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
54 template<
typename _CharT,
typename _Traits,
typename _Alloc>
│ │ │
55 class basic_syncbuf :
public __syncbuf_base<_CharT, _Traits>
│ │ │ @@ -361,25 +361,25 @@
│ │ │
304 using wosyncstream = basic_osyncstream<wchar_t>;
│ │ │
305_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ -
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ +
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │
void lock(_L1 &__l1, _L2 &__l2, _L3 &... __l3)
Generic lock.
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ -
ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
│ │ │ -
Template class basic_ostream.
│ │ │ +
ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
│ │ │ +
Template class basic_ostream.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 595_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 600namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 602_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ 604#ifndef _GLIBCXX_COMPATIBILITY_CXX0X
│ │ │
│ │ │ @@ -747,19 +747,19 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ bool operator==(const error_condition &__lhs, const error_condition &__rhs) noexcept
│ │ │ const error_category & generic_category() noexcept
Error category for errno error codes.
│ │ │ strong_ordering operator<=>(const error_code &__lhs, const error_code &__rhs) noexcept
│ │ │ bool operator==(const error_code &__lhs, const error_condition &__rhs) noexcept
│ │ │ strong_ordering operator<=>(const error_condition &__lhs, const error_condition &__rhs) noexcept
│ │ │ error_code make_error_code(errc __e) noexcept
│ │ │ bool operator==(const error_code &__lhs, const error_code &__rhs) noexcept
│ │ │ @@ -767,15 +767,15 @@
│ │ │ const error_category & system_category() noexcept
Error category for other error codes defined by the OS.
│ │ │ error_condition make_error_condition(future_errc __errc) noexcept
Overload of make_error_condition for future_errc.
│ │ │ error_code make_error_code(future_errc __errc) noexcept
Overload of make_error_code for future_errc.
│ │ │ __bool_constant< true > true_type
The type used as a compile-time boolean with true value.
│ │ │ __bool_constant< false > false_type
The type used as a compile-time boolean with false value.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ std::basic_ostream< _CharT, _Traits > & operator<<(std::basic_ostream< _CharT, _Traits > &__os, const bitset< _Nb > &__x)
Global I/O operators for bitsets.
│ │ │ -Primary class template hash.
│ │ │ +Primary class template hash.
│ │ │
│ │ │
│ │ │
│ │ │ virtual bool equivalent(int __i, const error_condition &__cond) const noexcept
Test whether cond corresponds to i for this category.
│ │ │ virtual bool equivalent(const error_code &__code, int __i) const noexcept
Test whether code corresponds to i for this category.
│ │ │ bool operator==(const error_category &__other) const noexcept
An error_category only compares equal to itself.
│ │ │ virtual const char * name() const noexcept=0
A string that identifies the error category.
│ │ │ @@ -791,17 +791,17 @@
│ │ │ const error_category & category() const noexcept
The error category that this error belongs to.
│ │ │ int value() const noexcept
The error value.
│ │ │ error_condition() noexcept
Initialize with a zero (no error) value and the generic category.
│ │ │ string message() const
The category's description of the value.
│ │ │ void assign(int __v, const error_category &__cat) noexcept
Set the value and category.
│ │ │ void clear() noexcept
Reset the value and category to the default-constructed state.
│ │ │ An exception type that includes an error_code value.
│ │ │ -One of two subclasses of exception.
│ │ │ +One of two subclasses of exception.
│ │ │ runtime_error(const string &__arg)
│ │ │ -One of the comparison functors.
│ │ │ +One of the comparison functors.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - system_error
│ │ │ ├── html2text {}
│ │ │ │ @@ -643,19 +643,19 @@
│ │ │ │ 640
│ │ │ │ 641#endif // C++11
│ │ │ │ 642
│ │ │ │ 643#endif // _GLIBCXX_SYSTEM_ERROR
│ │ │ │ _c_o_m_p_a_r_e
│ │ │ │ _i_o_s_f_w_d
│ │ │ │ _s_t_d_e_x_c_e_p_t
│ │ │ │ -_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ _f_u_n_c_t_i_o_n_a_l___h_a_s_h_._h
│ │ │ │ _c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ -_c_+_+_c_o_n_f_i_g_._h
│ │ │ │ +_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ _e_r_r_o_r___c_o_n_s_t_a_n_t_s_._h
│ │ │ │ +_c_+_+_c_o_n_f_i_g_._h
│ │ │ │ _s_t_d_:_:_e_r_r_o_r___c_o_n_d_i_t_i_o_n_:_:_o_p_e_r_a_t_o_r_=_=
│ │ │ │ bool operator==(const error_condition &__lhs, const error_condition &__rhs)
│ │ │ │ noexcept
│ │ │ │ DDeeffiinniittiioonn _s_y_s_t_e_m___e_r_r_o_r_:_4_8_2
│ │ │ │ _s_t_d_:_:_g_e_n_e_r_i_c___c_a_t_e_g_o_r_y
│ │ │ │ const error_category & generic_category() noexcept
│ │ │ │ Error category for errno error codes.
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00242_source.html
│ │ │ @@ -86,25 +86,25 @@
│ │ │ 29#ifndef _GLIBCXX_TEXT_ENCODING
│ │ │ 30#define _GLIBCXX_TEXT_ENCODING
│ │ │
│ │ │
│ │ │ 33#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 38#define __glibcxx_want_text_encoding
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 41#ifdef __cpp_lib_text_encoding
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │ 49namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 51_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ @@ -488,15 +488,15 @@
│ │ │
│ │ │
│ │ │ 433 _M_is_environment()
const;
│ │ │
│ │ │ 435 static inline constexpr _Rep _S_reps[] = {
│ │ │ 436 { 1,
"" }, { 2,
"" },
│ │ │ 437#define _GLIBCXX_GET_ENCODING_DATA
│ │ │ -
│ │ │ +
│ │ │ 439#ifdef _GLIBCXX_GET_ENCODING_DATA
│ │ │ 440# error "Invalid text_encoding data"
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 445 static constexpr bool
│ │ │ @@ -733,28 +733,28 @@
│ │ │ 676_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -constexpr bool operator<(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +constexpr bool operator<(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
│ │ │ constexpr complex< _Tp > operator*(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x times y.
│ │ │ constexpr complex< _Tp > operator-(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x minus y.
│ │ │ constexpr complex< _Tp > operator+(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x plus y.
│ │ │ _Tp * end(valarray< _Tp > &__va) noexcept
Return an iterator pointing to one past the last element of the valarray.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ __numeric_traits_integer< _Tp > __int_traits
Convenience alias for __numeric_traits<integer-type>.
│ │ │ -Primary class template hash.
│ │ │ +Primary class template hash.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -679,20 +679,20 @@
│ │ │ │ 676_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 677} // namespace std
│ │ │ │ 678
│ │ │ │ 679#endif // __cpp_lib_text_encoding
│ │ │ │ 680#endif // _GLIBCXX_TEXT_ENCODING
│ │ │ │ _c_o_m_p_a_r_e
│ │ │ │ _s_t_r_i_n_g___v_i_e_w
│ │ │ │ -_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ -_u_n_i_c_o_d_e_._h
│ │ │ │ -_v_e_r_s_i_o_n_._h
│ │ │ │ _t_e_x_t___e_n_c_o_d_i_n_g_-_d_a_t_a_._h
│ │ │ │ -_r_a_n_g_e_s___u_t_i_l_._h
│ │ │ │ +_v_e_r_s_i_o_n_._h
│ │ │ │ _f_u_n_c_t_i_o_n_a_l___h_a_s_h_._h
│ │ │ │ +_u_n_i_c_o_d_e_._h
│ │ │ │ +_r_a_n_g_e_s___u_t_i_l_._h
│ │ │ │ +_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_<
│ │ │ │ constexpr bool operator<(const duration< _Rep1, _Period1 > &__lhs, const
│ │ │ │ duration< _Rep2, _Period2 > &__rhs)
│ │ │ │ DDeeffiinniittiioonn _c_h_r_o_n_o_._h_:_8_2_6
│ │ │ │ _s_t_d_:_:_o_p_e_r_a_t_o_r_*
│ │ │ │ constexpr complex< _Tp > operator*(const complex< _Tp > &__x, const complex<
│ │ │ │ _Tp > &__y)
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00245_source.html
│ │ │ @@ -86,31 +86,31 @@
│ │ │ 29#ifndef _GLIBCXX_THREAD
│ │ │ 30#define _GLIBCXX_THREAD 1
│ │ │
│ │ │
│ │ │ 33#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 38#if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 42#if __cplusplus > 201703L
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 50#define __glibcxx_want_jthread
│ │ │ 51#define __glibcxx_want_formatters
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 54#if __cpp_lib_formatters
│ │ │
│ │ │
│ │ │
│ │ │ 58namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ @@ -455,28 +455,28 @@
│ │ │ 398_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ __bool_constant< true > true_type
The type used as a compile-time boolean with true value.
│ │ │ -constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ -constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ +constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ +constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ std::basic_ostream< _CharT, _Traits > & operator<<(std::basic_ostream< _CharT, _Traits > &__os, const bitset< _Nb > &__x)
Global I/O operators for bitsets.
│ │ │ -thread::id get_id() noexcept
The unique identifier of the current thread.
│ │ │ -Template class basic_ostream.
│ │ │ -
│ │ │ -
│ │ │ +thread::id get_id() noexcept
The unique identifier of the current thread.
│ │ │ +Template class basic_ostream.
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - thread
│ │ │ ├── html2text {}
│ │ │ │ @@ -402,19 +402,19 @@
│ │ │ │ 398_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 399} // namespace
│ │ │ │ 400#endif // C++11
│ │ │ │ 401#endif // _GLIBCXX_THREAD
│ │ │ │ _c_o_m_p_a_r_e
│ │ │ │ _f_o_r_m_a_t
│ │ │ │ _s_t_o_p___t_o_k_e_n
│ │ │ │ -_t_h_i_s___t_h_r_e_a_d___s_l_e_e_p_._h
│ │ │ │ -_s_t_d___t_h_r_e_a_d_._h
│ │ │ │ -_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ _c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ +_t_h_i_s___t_h_r_e_a_d___s_l_e_e_p_._h
│ │ │ │ +_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ +_s_t_d___t_h_r_e_a_d_._h
│ │ │ │ _s_t_d_:_:_t_r_u_e___t_y_p_e
│ │ │ │ __bool_constant< true > true_type
│ │ │ │ The type used as a compile-time boolean with true value.
│ │ │ │ DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_1_1_9
│ │ │ │ _s_t_d_:_:_m_o_v_e
│ │ │ │ constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
│ │ │ │ Convert a value to an rvalue.
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00248_source.html
│ │ │ @@ -87,35 +87,35 @@
│ │ │ 30#define _GLIBCXX_TUPLE 1
│ │ │
│ │ │
│ │ │ 33#pragma GCC system_header
│ │ │
│ │ │
│ │ │ 36#if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │ 41#include <bits/uses_allocator.h>
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ 44#if __cplusplus > 201703L
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 49#define __glibcxx_want_constexpr_tuple
│ │ │ 50#define __glibcxx_want_tuple_element_t
│ │ │ 51#define __glibcxx_want_tuples_by_type
│ │ │ 52#define __glibcxx_want_apply
│ │ │ 53#define __glibcxx_want_make_from_tuple
│ │ │ 54#define __glibcxx_want_ranges_zip
│ │ │ 55#define __glibcxx_want_tuple_like
│ │ │ 56#define __glibcxx_want_constrained_equality
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 59namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 61_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ @@ -3192,53 +3192,53 @@
│ │ │ 3105_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ __bool_constant< true > true_type
The type used as a compile-time boolean with true value.
│ │ │ __bool_constant< false > false_type
The type used as a compile-time boolean with false value.
│ │ │ typename decay< _Tp >::type decay_t
Alias template for decay.
│ │ │ constexpr auto tuple_cat(_Tpls &&... __tpls) -> typename __tuple_cat_result< _Tpls... >::__type
Create a tuple containing all elements from multiple tuple-like objects.
│ │ │ auto declval() noexcept -> decltype(__declval< _Tp >(0))
│ │ │ constexpr tuple< _Elements &&... > forward_as_tuple(_Elements &&... __args) noexcept
Create a tuple of lvalue or rvalue references to the arguments.
│ │ │ constexpr tuple< typename __decay_and_strip< _Elements >::__type... > make_tuple(_Elements &&... __args)
Create a tuple containing copies of the arguments.
│ │ │ -constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ -constexpr __invoke_result< _Callable, _Args... >::type __invoke(_Callable &&__fn, _Args &&... __args) noexcept(__is_nothrow_invocable< _Callable, _Args... >::value)
Invoke a callable object.
│ │ │ +constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ +constexpr __invoke_result< _Callable, _Args... >::type __invoke(_Callable &&__fn, _Args &&... __args) noexcept(__is_nothrow_invocable< _Callable, _Args... >::value)
Invoke a callable object.
│ │ │ constexpr tuple< _Elements &... > tie(_Elements &... __args) noexcept
Return a tuple of lvalue references bound to the arguments.
│ │ │ -constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ +constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -make_integer_sequence< size_t, _Num > make_index_sequence
Alias template make_index_sequence.
│ │ │ -integer_sequence< size_t, _Idx... > index_sequence
Alias template index_sequence.
│ │ │ -make_index_sequence< sizeof...(_Types)> index_sequence_for
Alias template index_sequence_for.
│ │ │ +make_integer_sequence< size_t, _Num > make_index_sequence
Alias template make_index_sequence.
│ │ │ +integer_sequence< size_t, _Idx... > index_sequence
Alias template index_sequence.
│ │ │ +make_index_sequence< sizeof...(_Types)> index_sequence_for
Alias template index_sequence_for.
│ │ │ Primary class template, tuple.
│ │ │
│ │ │ Define a member typedef type only if a boolean constant is true.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ is_nothrow_default_constructible
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -Declare uses_allocator so it can be specialized in <queue> etc.
│ │ │ -Struct holding two objects of arbitrary type.
│ │ │ +Declare uses_allocator so it can be specialized in <queue> etc.
│ │ │ +Struct holding two objects of arbitrary type.
│ │ │ constexpr pair(const pair &)=default
Copy constructor.
│ │ │ -Tag type for piecewise construction of std::pair objects.
│ │ │ -Finds the size of a given tuple type.
│ │ │ -Gives the type of the ith element of a given tuple type.
│ │ │ +Tag type for piecewise construction of std::pair objects.
│ │ │ +Finds the size of a given tuple type.
│ │ │ +Gives the type of the ith element of a given tuple type.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - tuple
│ │ │ ├── html2text {}
│ │ │ │ @@ -3138,20 +3138,20 @@
│ │ │ │ 3105_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 3106} // namespace std
│ │ │ │ 3107
│ │ │ │ 3108#endif // C++11
│ │ │ │ 3109
│ │ │ │ 3110#endif // _GLIBCXX_TUPLE
│ │ │ │ _c_o_m_p_a_r_e
│ │ │ │ -_u_t_i_l_i_t_y_._h
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ _s_t_l___p_a_i_r_._h
│ │ │ │ +_c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ _r_a_n_g_e_s___u_t_i_l_._h
│ │ │ │ _i_n_v_o_k_e_._h
│ │ │ │ -_c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ +_u_t_i_l_i_t_y_._h
│ │ │ │ _s_t_d_:_:_t_r_u_e___t_y_p_e
│ │ │ │ __bool_constant< true > true_type
│ │ │ │ The type used as a compile-time boolean with true value.
│ │ │ │ DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_1_1_9
│ │ │ │ _s_t_d_:_:_f_a_l_s_e___t_y_p_e
│ │ │ │ __bool_constant< false > false_type
│ │ │ │ The type used as a compile-time boolean with false value.
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00251_source.html
│ │ │ @@ -87,15 +87,15 @@
│ │ │ 30#define _GLIBCXX_TYPEINDEX 1
│ │ │
│ │ │
│ │ │ 33#pragma GCC system_header
│ │ │
│ │ │
│ │ │ 36#if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ 41#if __cplusplus > 201703L
│ │ │
│ │ │
│ │ │
│ │ │ @@ -188,19 +188,19 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │ bool before(const type_info &__arg) const noexcept
│ │ │ -Primary class template hash.
│ │ │ +Primary class template hash.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00254_source.html
│ │ │ @@ -87,18 +87,18 @@
│ │ │ 30#define _GLIBCXX_TYPE_TRAITS 1
│ │ │
│ │ │
│ │ │ 33#pragma GCC system_header
│ │ │
│ │ │
│ │ │ 36#if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 42#define __glibcxx_want_bool_constant
│ │ │ 43#define __glibcxx_want_bounded_array_traits
│ │ │ 44#define __glibcxx_want_common_reference
│ │ │ 45#define __glibcxx_want_constant_wrapper
│ │ │ 46#define __glibcxx_want_has_unique_object_representations
│ │ │ 47#define __glibcxx_want_integral_constant_callable
│ │ │ @@ -119,15 +119,15 @@
│ │ │ 62#define __glibcxx_want_remove_cvref
│ │ │ 63#define __glibcxx_want_result_of_sfinae
│ │ │ 64#define __glibcxx_want_transformation_trait_aliases
│ │ │ 65#define __glibcxx_want_type_identity
│ │ │ 66#define __glibcxx_want_type_trait_variable_templates
│ │ │ 67#define __glibcxx_want_unwrap_ref
│ │ │ 68#define __glibcxx_want_void_t
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ 73namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 75_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ @@ -4950,17 +4950,17 @@
│ │ │ 4715_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ constexpr complex< _Tp > operator*(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x times y.
│ │ │ constexpr complex< _Tp > operator-(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x minus y.
│ │ │ constexpr complex< _Tp > operator+(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x plus y.
│ │ │ constexpr complex< _Tp > operator/(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x divided by y.
│ │ │ static const size_t alignment_value
The value of the strictest alignment of _Types.
│ │ │ constexpr bool is_corresponding_member(_M1 _S1::*__m1, _M2 _S2::*__m2) noexcept
│ │ │ typename common_reference< _Tp... >::type common_reference_t
│ │ │ @@ -4991,15 +4991,15 @@
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ constexpr bitset< _Nb > operator^(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
│ │ │ std::basic_istream< _CharT, _Traits > & operator>>(std::basic_istream< _CharT, _Traits > &__is, bitset< _Nb > &__x)
Global I/O operators for bitsets.
│ │ │ std::basic_ostream< _CharT, _Traits > & operator<<(std::basic_ostream< _CharT, _Traits > &__os, const bitset< _Nb > &__x)
Global I/O operators for bitsets.
│ │ │ constexpr bitset< _Nb > operator|(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
│ │ │ constexpr bitset< _Nb > operator&(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
│ │ │ Implementation details not part of the namespace std interface.
│ │ │ -Primary class template for reference_wrapper.
│ │ │ +Primary class template for reference_wrapper.
│ │ │
│ │ │ Define a member typedef type only if a boolean constant is true.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00257_source.html
│ │ │ @@ -86,42 +86,42 @@
│ │ │ 29#ifndef _GLIBCXX_UNORDERED_MAP
│ │ │ 30#define _GLIBCXX_UNORDERED_MAP 1
│ │ │
│ │ │
│ │ │ 33#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 38#if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 51#define __glibcxx_want_allocator_traits_is_always_equal
│ │ │ 52#define __glibcxx_want_containers_ranges
│ │ │ 53#define __glibcxx_want_erase_if
│ │ │ 54#define __glibcxx_want_generic_unordered_lookup
│ │ │ 55#define __glibcxx_want_node_extract
│ │ │ 56#define __glibcxx_want_nonmember_container_access
│ │ │ 57#define __glibcxx_want_unordered_map_try_emplace
│ │ │ 58#define __glibcxx_want_tuple_like
│ │ │ 59#define __glibcxx_want_associative_heterogeneous_erasure
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 62#if __cplusplus >= 201703L
│ │ │ -
│ │ │ +
│ │ │ 64namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 66_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ 69 template<
typename _Key,
typename _Tp,
typename _Hash = std::hash<_Key>,
│ │ │ 70 typename _Pred = std::equal_to<_Key>>
│ │ │ @@ -163,23 +163,23 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -Class template polymorphic_allocator.
│ │ │ +Class template polymorphic_allocator.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -110,20 +110,20 @@
│ │ │ │ 107#endif // __cpp_lib_erase_if
│ │ │ │ 108
│ │ │ │ 109#endif // C++11
│ │ │ │ 110
│ │ │ │ 111#endif // _GLIBCXX_UNORDERED_MAP
│ │ │ │ _i_n_i_t_i_a_l_i_z_e_r___l_i_s_t
│ │ │ │ _u_n_o_r_d_e_r_e_d___m_a_p_._h
│ │ │ │ +_v_e_r_s_i_o_n_._h
│ │ │ │ +_c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ _r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ -_m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h
│ │ │ │ _e_r_a_s_e___i_f_._h
│ │ │ │ -_v_e_r_s_i_o_n_._h
│ │ │ │ +_m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h
│ │ │ │ _r_a_n_g_e___a_c_c_e_s_s_._h
│ │ │ │ -_c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ _s_t_d
│ │ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ │ _s_t_d_:_:_p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r
│ │ │ │ Class template polymorphic_allocator.
│ │ │ │ DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_1_2_3
│ │ │ │ _u_n_o_r_d_e_r_e_d___m_a_p
│ │ │ │ * _u_n_o_r_d_e_r_e_d___m_a_p
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00260_source.html
│ │ │ @@ -86,40 +86,40 @@
│ │ │ 29#ifndef _GLIBCXX_UNORDERED_SET
│ │ │ 30#define _GLIBCXX_UNORDERED_SET 1
│ │ │
│ │ │
│ │ │ 33#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 38#if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 51#define __glibcxx_want_allocator_traits_is_always_equal
│ │ │ 52#define __glibcxx_want_containers_ranges
│ │ │ 53#define __glibcxx_want_erase_if
│ │ │ 54#define __glibcxx_want_generic_unordered_lookup
│ │ │ 55#define __glibcxx_want_node_extract
│ │ │ 56#define __glibcxx_want_nonmember_container_access
│ │ │ 57#define __glibcxx_want_associative_heterogeneous_erasure
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 60#if __cplusplus >= 201703L
│ │ │ -
│ │ │ +
│ │ │ 62namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 64_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ 67 template<
typename _Key,
typename _Hash = std::hash<_Key>,
│ │ │ 68 typename _Pred = std::equal_to<_Key>>
│ │ │ @@ -159,23 +159,23 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -Class template polymorphic_allocator.
│ │ │ +Class template polymorphic_allocator.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -106,21 +106,21 @@
│ │ │ │ 102} // namespace std
│ │ │ │ 103#endif // __cpp_lib_erase_if
│ │ │ │ 104
│ │ │ │ 105#endif // C++11
│ │ │ │ 106
│ │ │ │ 107#endif // _GLIBCXX_UNORDERED_SET
│ │ │ │ _i_n_i_t_i_a_l_i_z_e_r___l_i_s_t
│ │ │ │ +_v_e_r_s_i_o_n_._h
│ │ │ │ _u_n_o_r_d_e_r_e_d___s_e_t_._h
│ │ │ │ +_c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ _r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ -_m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h
│ │ │ │ _e_r_a_s_e___i_f_._h
│ │ │ │ -_v_e_r_s_i_o_n_._h
│ │ │ │ +_m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h
│ │ │ │ _r_a_n_g_e___a_c_c_e_s_s_._h
│ │ │ │ -_c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ _s_t_d
│ │ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ │ _s_t_d_:_:_p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r
│ │ │ │ Class template polymorphic_allocator.
│ │ │ │ DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_1_2_3
│ │ │ │ _u_n_o_r_d_e_r_e_d___s_e_t
│ │ │ │ * _u_n_o_r_d_e_r_e_d___s_e_t
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00263_source.html
│ │ │ @@ -119,31 +119,31 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 73#if __cplusplus >= 201103L
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 80#if __cplusplus >= 202002L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 84#if __cplusplus > 202302L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 88#define __glibcxx_want_addressof_constexpr
│ │ │ 89#define __glibcxx_want_as_const
│ │ │ 90#define __glibcxx_want_constexpr_algorithms
│ │ │ 91#define __glibcxx_want_constexpr_utility
│ │ │ 92#define __glibcxx_want_exchange_function
│ │ │ @@ -154,15 +154,15 @@
│ │ │ 97#define __glibcxx_want_to_underlying
│ │ │ 98#define __glibcxx_want_tuple_element_t
│ │ │ 99#define __glibcxx_want_tuples_by_type
│ │ │ 100#define __glibcxx_want_unreachable
│ │ │ 101#define __glibcxx_want_observable_checkpoint
│ │ │ 102#define __glibcxx_want_tuple_like
│ │ │ 103#define __glibcxx_want_constrained_equality
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 106namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 108_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ 110#ifdef __cpp_lib_exchange_function
│ │ │
│ │ │ @@ -244,24 +244,24 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ typename underlying_type< _Tp >::type underlying_type_t
Alias template for underlying_type.
│ │ │ -constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ +constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -191,21 +191,21 @@
│ │ │ │ 187} // namespace
│ │ │ │ 188
│ │ │ │ 189#endif
│ │ │ │ 190
│ │ │ │ 191#endif /* _GLIBCXX_UTILITY */
│ │ │ │ _i_n_i_t_i_a_l_i_z_e_r___l_i_s_t
│ │ │ │ _t_y_p_e___t_r_a_i_t_s
│ │ │ │ -_u_t_i_l_i_t_y_._h
│ │ │ │ +_i_n_t_c_m_p_._h
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ -_s_t_l___r_e_l_o_p_s_._h
│ │ │ │ -_s_t_l___p_a_i_r_._h
│ │ │ │ _m_o_v_e_._h
│ │ │ │ +_s_t_l___p_a_i_r_._h
│ │ │ │ +_s_t_l___r_e_l_o_p_s_._h
│ │ │ │ +_u_t_i_l_i_t_y_._h
│ │ │ │ _m_o_n_o_s_t_a_t_e_._h
│ │ │ │ -_i_n_t_c_m_p_._h
│ │ │ │ _c_+_+_c_o_n_f_i_g_._h
│ │ │ │ _s_t_d_:_:_u_n_d_e_r_l_y_i_n_g___t_y_p_e___t
│ │ │ │ typename underlying_type< _Tp >::type underlying_type_t
│ │ │ │ Alias template for underlying_type.
│ │ │ │ DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_2_9_5_2
│ │ │ │ _s_t_d_:_:_f_o_r_w_a_r_d
│ │ │ │ constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t)
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00266_source.html
│ │ │ @@ -88,20 +88,20 @@
│ │ │
31#ifndef _GLIBCXX_VALARRAY
│ │ │
32#define _GLIBCXX_VALARRAY 1
│ │ │
│ │ │
│ │ │
35#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
44#if __cplusplus >= 201103L
│ │ │
│ │ │
│ │ │
│ │ │
48namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │
50_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ @@ -154,16 +154,16 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
101_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
107namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │
109_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ @@ -671,20 +671,20 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 604_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 614namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 616_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ @@ -1439,26 +1439,26 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ size_t size() const
Return the number of elements in array.
│ │ │ _Tp min() const
Return the minimum element using operator<().
│ │ │ _Tp max() const
Return the maximum element using operator<().
│ │ │ valarray< _Tp > cshift(int __n) const
Return a rotated array.
│ │ │ void swap(valarray< _Tp > &__v) noexcept
Swap.
│ │ │ _Tp & operator[](size_t __i) noexcept
│ │ │ void resize(size_t __size, _Tp __c=_Tp())
Resize array.
│ │ │ @@ -1466,15 +1466,15 @@
│ │ │ valarray() noexcept
Construct an empty array.
│ │ │ _Tp * end(valarray< _Tp > &__va) noexcept
Return an iterator pointing to one past the last element of the valarray.
│ │ │ valarray< _Tp > shift(int __n) const
Return a shifted array.
│ │ │ _Expr< _ValFunClos< _ValArray, _Tp >, _Tp > apply(_Tp __func(_Tp)) const
Apply a function to the array.
│ │ │ _Tp * begin(valarray< _Tp > &__va) noexcept
Return an iterator pointing to the first element of the valarray.
│ │ │ valarray< _Tp > & operator=(const valarray< _Tp > &__v)
Assign elements to an array.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
Return the size of a container.
│ │ │ +constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
Return the size of a container.
│ │ │ Implementation details not part of the namespace std interface.
│ │ │
│ │ │ Smart array designed to support numeric processing.
│ │ │ valarray< _Tp > & operator^=(const _Tp &)
Set each element e of array to e ^ t.
│ │ │ valarray< _Tp > & operator/=(const _Tp &)
Divide each element of array by t.
│ │ │ valarray(const _Tp *__restrict__, size_t)
Construct an array initialized to the first n elements of t.
│ │ │ valarray< _Tp > & operator|=(const valarray< _Tp > &)
Logical or corresponding elements of v with elements of array.
│ │ │ @@ -1494,20 +1494,20 @@
│ │ │ valarray< _Tp > & operator^=(const valarray< _Tp > &)
Logical xor corresponding elements of v with elements of array.
│ │ │ valarray< _Tp > & operator&=(const valarray< _Tp > &)
Logical and corresponding elements of v with elements of array.
│ │ │ valarray< _Tp > & operator*=(const valarray< _Tp > &)
Multiply elements of array by corresponding elements of v.
│ │ │ _UnaryOp< __negate >::_Rt operator-() const
Return a new valarray by applying unary - to each element.
│ │ │ valarray< _Tp > & operator%=(const valarray< _Tp > &)
Modulo elements of array by corresponding elements of v.
│ │ │ valarray< _Tp > & operator&=(const _Tp &)
Set each element e of array to e & t.
│ │ │ valarray< _Tp > & operator|=(const _Tp &)
Set each element e of array to e | t.
│ │ │ -Reference to one-dimensional subset of an array.
│ │ │ -Reference to multi-dimensional subset of an array.
│ │ │ -Reference to selected subset of an array.
│ │ │ -Reference to arbitrary subset of an array.
│ │ │ -Class defining multi-dimensional subset of an array.
│ │ │ -Class defining one-dimensional subset of an array.
│ │ │ +Reference to one-dimensional subset of an array.
│ │ │ +Reference to multi-dimensional subset of an array.
│ │ │ +Reference to selected subset of an array.
│ │ │ +Reference to arbitrary subset of an array.
│ │ │ +Class defining multi-dimensional subset of an array.
│ │ │ +Class defining one-dimensional subset of an array.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - valarray
│ │ │ ├── html2text {}
│ │ │ │ @@ -1283,23 +1283,23 @@
│ │ │ │ 1278_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 1279} // namespace
│ │ │ │ 1280
│ │ │ │ 1281#endif /* _GLIBCXX_VALARRAY */
│ │ │ │ _i_n_i_t_i_a_l_i_z_e_r___l_i_s_t
│ │ │ │ _a_l_g_o_r_i_t_h_m
│ │ │ │ _c_m_a_t_h
│ │ │ │ -_v_a_l_a_r_r_a_y___a_f_t_e_r_._h
│ │ │ │ _v_a_l_a_r_r_a_y___b_e_f_o_r_e_._h
│ │ │ │ +_g_s_l_i_c_e___a_r_r_a_y_._h
│ │ │ │ +_v_a_l_a_r_r_a_y___a_f_t_e_r_._h
│ │ │ │ _v_a_l_a_r_r_a_y___a_r_r_a_y_._h
│ │ │ │ _s_l_i_c_e___a_r_r_a_y_._h
│ │ │ │ -_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ +_g_s_l_i_c_e_._h
│ │ │ │ _m_a_s_k___a_r_r_a_y_._h
│ │ │ │ _i_n_d_i_r_e_c_t___a_r_r_a_y_._h
│ │ │ │ -_g_s_l_i_c_e___a_r_r_a_y_._h
│ │ │ │ -_g_s_l_i_c_e_._h
│ │ │ │ +_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ _c_+_+_c_o_n_f_i_g_._h
│ │ │ │ _d_e_b_u_g_._h
│ │ │ │ _s_t_d_:_:_____a_d_d_r_e_s_s_o_f
│ │ │ │ constexpr _Tp * __addressof(_Tp &__r) noexcept
│ │ │ │ Same as C++11 std::addressof.
│ │ │ │ DDeeffiinniittiioonn _m_o_v_e_._h_:_5_2
│ │ │ │ _s_t_d_:_:_v_a_l_a_r_r_a_y_:_:_s_i_z_e
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00269_source.html
│ │ │ @@ -90,36 +90,36 @@
│ │ │ 33#pragma GCC system_header
│ │ │
│ │ │
│ │ │ 36#define __glibcxx_want_freestanding_variant
│ │ │ 37#define __glibcxx_want_variant
│ │ │ 38#define __glibcxx_want_constrained_equality
│ │ │ 39#define __glibcxx_want_constexpr_exceptions
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 42#ifdef __cpp_lib_variant
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ 54#if __cplusplus >= 202002L
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 60#if __cpp_lib_variant < 202106L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 64namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 66_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ 68 template<
typename... _Types>
class tuple;
│ │ │ @@ -2112,46 +2112,46 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ __bool_constant< true > true_type
The type used as a compile-time boolean with true value.
│ │ │ typename remove_reference< _Tp >::type remove_reference_t
Alias template for remove_reference.
│ │ │ typename add_pointer< _Tp >::type add_pointer_t
Alias template for add_pointer.
│ │ │ typename enable_if< _Cond, _Tp >::type enable_if_t
Alias template for enable_if.
│ │ │ __bool_constant< false > false_type
The type used as a compile-time boolean with false value.
│ │ │ auto declval() noexcept -> decltype(__declval< _Tp >(0))
│ │ │ -constexpr _Tp * addressof(_Tp &__r) noexcept
Returns the actual address of the object or function referenced by r, even in the presence of an over...
│ │ │ -constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ -constexpr __invoke_result< _Callable, _Args... >::type __invoke(_Callable &&__fn, _Args &&... __args) noexcept(__is_nothrow_invocable< _Callable, _Args... >::value)
Invoke a callable object.
│ │ │ -constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ -constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ +constexpr _Tp * addressof(_Tp &__r) noexcept
Returns the actual address of the object or function referenced by r, even in the presence of an over...
│ │ │ +constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ +constexpr __invoke_result< _Callable, _Args... >::type __invoke(_Callable &&__fn, _Args &&... __args) noexcept(__is_nothrow_invocable< _Callable, _Args... >::value)
Invoke a callable object.
│ │ │ +constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ +constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ void void_t
A metafunction that always yields void, used for detecting valid types.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -make_integer_sequence< size_t, _Num > make_index_sequence
Alias template make_index_sequence.
│ │ │ -integer_sequence< size_t, _Idx... > index_sequence
Alias template index_sequence.
│ │ │ -constexpr void _Construct(_Tp *__p, _Args &&... __args)
│ │ │ +make_integer_sequence< size_t, _Num > make_index_sequence
Alias template make_index_sequence.
│ │ │ +integer_sequence< size_t, _Idx... > index_sequence
Alias template index_sequence.
│ │ │ +constexpr void _Construct(_Tp *__p, _Args &&... __args)
│ │ │ Implementation details not part of the namespace std interface.
│ │ │ -Primary class template hash.
│ │ │ +Primary class template hash.
│ │ │ Primary class template, tuple.
│ │ │ -Base class for all library exceptions.
│ │ │ -
│ │ │ +Base class for all library exceptions.
│ │ │ +
│ │ │ [concept.convertible], concept convertible_to
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -2064,24 +2064,24 @@
│ │ │ │ 2055
│ │ │ │ 2056#endif // __cpp_lib_variant
│ │ │ │ 2057#endif // _GLIBCXX_VARIANT
│ │ │ │ _c_o_m_p_a_r_e
│ │ │ │ _i_n_i_t_i_a_l_i_z_e_r___l_i_s_t
│ │ │ │ _c_o_n_c_e_p_t_s
│ │ │ │ _t_y_p_e___t_r_a_i_t_s
│ │ │ │ -_e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h
│ │ │ │ -_u_t_i_l_i_t_y_._h
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ -_s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___f_u_n_c_s_._h
│ │ │ │ -_s_t_l___c_o_n_s_t_r_u_c_t_._h
│ │ │ │ +_f_u_n_c_t_i_o_n_a_l___h_a_s_h_._h
│ │ │ │ _p_a_r_s_e___n_u_m_b_e_r_s_._h
│ │ │ │ -_m_o_n_o_s_t_a_t_e_._h
│ │ │ │ +_s_t_l___c_o_n_s_t_r_u_c_t_._h
│ │ │ │ +_s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___f_u_n_c_s_._h
│ │ │ │ _i_n_v_o_k_e_._h
│ │ │ │ -_f_u_n_c_t_i_o_n_a_l___h_a_s_h_._h
│ │ │ │ +_u_t_i_l_i_t_y_._h
│ │ │ │ _e_n_a_b_l_e___s_p_e_c_i_a_l___m_e_m_b_e_r_s_._h
│ │ │ │ +_e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h
│ │ │ │ +_m_o_n_o_s_t_a_t_e_._h
│ │ │ │ _a_l_i_g_n_e_d___b_u_f_f_e_r_._h
│ │ │ │ _s_t_d_:_:_t_r_u_e___t_y_p_e
│ │ │ │ __bool_constant< true > true_type
│ │ │ │ The type used as a compile-time boolean with true value.
│ │ │ │ DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_1_1_9
│ │ │ │ _s_t_d_:_:_r_e_m_o_v_e___r_e_f_e_r_e_n_c_e___t
│ │ │ │ typename remove_reference< _Tp >::type remove_reference_t
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00272_source.html
│ │ │ @@ -112,44 +112,44 @@
│ │ │ 55#ifndef _GLIBCXX_VECTOR
│ │ │ 56#define _GLIBCXX_VECTOR 1
│ │ │
│ │ │
│ │ │ 59#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 73#ifndef _GLIBCXX_EXPORT_TEMPLATE
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 81#define __glibcxx_want_algorithm_default_value_type
│ │ │ 82#define __glibcxx_want_allocator_traits_is_always_equal
│ │ │ 83#define __glibcxx_want_constexpr_vector
│ │ │ 84#define __glibcxx_want_containers_ranges
│ │ │ 85#define __glibcxx_want_erase_if
│ │ │ 86#define __glibcxx_want_incomplete_container_elements
│ │ │ 87#define __glibcxx_want_nonmember_container_access
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 90#if __cplusplus >= 201703L
│ │ │ -
│ │ │ +
│ │ │ 92namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 94_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ 96 template<
typename _Tp>
│ │ │ 97 using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>;
│ │ │
│ │ │ @@ -181,15 +181,15 @@
│ │ │ 124 {
return std::erase_if(__cont, __gnu_cxx::__ops::__equal_to(__value)); }
│ │ │
│ │ │ 126_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ 130#ifdef __glibcxx_format_ranges
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 133namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 135_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ 138 template<__format::__
char _CharT>
│ │ │ @@ -220,28 +220,28 @@
│ │ │
│ │ │
│ │ │ 165_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -167,27 +167,27 @@
│ │ │ │ 163#endif
│ │ │ │ 164
│ │ │ │ 165_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 166} // namespace std
│ │ │ │ 167#endif // __glibcxx_format_ranges
│ │ │ │ 168
│ │ │ │ 169#endif /* _GLIBCXX_VECTOR */
│ │ │ │ +_v_e_r_s_i_o_n_._h
│ │ │ │ _v_e_c_t_o_r_._t_c_c
│ │ │ │ _s_t_l___v_e_c_t_o_r_._h
│ │ │ │ -_s_t_l___b_v_e_c_t_o_r_._h
│ │ │ │ -_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ -_m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h
│ │ │ │ _f_o_r_m_a_t_f_w_d_._h
│ │ │ │ -_e_r_a_s_e___i_f_._h
│ │ │ │ -_v_e_r_s_i_o_n_._h
│ │ │ │ +_s_t_l___b_v_e_c_t_o_r_._h
│ │ │ │ _s_t_l___u_n_i_n_i_t_i_a_l_i_z_e_d_._h
│ │ │ │ _s_t_l___c_o_n_s_t_r_u_c_t_._h
│ │ │ │ +_a_l_l_o_c_a_t_o_r_._h
│ │ │ │ +_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ +_e_r_a_s_e___i_f_._h
│ │ │ │ _s_t_l___a_l_g_o_b_a_s_e_._h
│ │ │ │ +_m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h
│ │ │ │ _r_a_n_g_e___a_c_c_e_s_s_._h
│ │ │ │ -_a_l_l_o_c_a_t_o_r_._h
│ │ │ │ _s_t_d_:_:_m_o_v_e
│ │ │ │ constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
│ │ │ │ Convert a value to an rvalue.
│ │ │ │ DDeeffiinniittiioonn _m_o_v_e_._h_:_1_3_8
│ │ │ │ _s_t_d
│ │ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ │ _v_e_c_t_o_r
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00275_source.html
│ │ │ @@ -95,17 +95,17 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
42#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - cassert
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00278_source.html
│ │ │ @@ -89,15 +89,15 @@
│ │ │ 32#define _GLIBCXX_CCOMPLEX 1
│ │ │
│ │ │
│ │ │ 35#pragma GCC system_header
│ │ │
│ │ │
│ │ │ 38#if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 46#if __cplusplus >= 202002L && ! _GLIBCXX_USE_DEPRECATED
│ │ │ @@ -107,15 +107,15 @@
│ │ │ 50# pragma GCC diagnostic ignored "-Wc++23-extensions"
│ │ │ 51# warning "<ccomplex> is deprecated in C++17, use <complex> instead"
│ │ │ 52# pragma GCC diagnostic pop
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - ccomplex
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00281_source.html
│ │ │ @@ -96,15 +96,15 @@
│ │ │ 39#ifndef _GLIBCXX_CCTYPE
│ │ │ 40#define _GLIBCXX_CCTYPE 1
│ │ │
│ │ │
│ │ │ 43#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -147,30 +147,30 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -bool isgraph(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::graph, __c).
│ │ │ -bool isspace(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::space, __c).
│ │ │ -bool isxdigit(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::xdigit, __c).
│ │ │ -bool islower(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::lower, __c).
│ │ │ -bool isdigit(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::digit, __c).
│ │ │ -bool isblank(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::blank, __c).
│ │ │ -_CharT toupper(_CharT __c, const locale &__loc)
Convenience interface to ctype.toupper(__c).
│ │ │ -bool isupper(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::upper, __c).
│ │ │ -bool isalnum(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::alnum, __c).
│ │ │ -bool ispunct(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::punct, __c).
│ │ │ -_CharT tolower(_CharT __c, const locale &__loc)
Convenience interface to ctype.tolower(__c).
│ │ │ -bool isprint(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::print, __c).
│ │ │ -bool isalpha(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::alpha, __c).
│ │ │ -bool iscntrl(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::cntrl, __c).
│ │ │ +bool isgraph(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::graph, __c).
│ │ │ +bool isspace(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::space, __c).
│ │ │ +bool isxdigit(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::xdigit, __c).
│ │ │ +bool islower(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::lower, __c).
│ │ │ +bool isdigit(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::digit, __c).
│ │ │ +bool isblank(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::blank, __c).
│ │ │ +_CharT toupper(_CharT __c, const locale &__loc)
Convenience interface to ctype.toupper(__c).
│ │ │ +bool isupper(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::upper, __c).
│ │ │ +bool isalnum(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::alnum, __c).
│ │ │ +bool ispunct(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::punct, __c).
│ │ │ +_CharT tolower(_CharT __c, const locale &__loc)
Convenience interface to ctype.tolower(__c).
│ │ │ +bool isprint(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::print, __c).
│ │ │ +bool isalpha(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::alpha, __c).
│ │ │ +bool iscntrl(_CharT __c, const locale &__loc)
Convenience interface to ctype.is(ctype_base::cntrl, __c).
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - cctype
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00284_source.html
│ │ │ @@ -96,24 +96,24 @@
│ │ │ 39#ifndef _GLIBCXX_CERRNO
│ │ │ 40#define _GLIBCXX_CERRNO 1
│ │ │
│ │ │
│ │ │ 43#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00290_source.html
│ │ │ @@ -96,28 +96,28 @@
│ │ │ 39#ifndef _GLIBCXX_CFLOAT
│ │ │ 40#define _GLIBCXX_CFLOAT 1
│ │ │
│ │ │
│ │ │ 43#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 49#if __cplusplus >= 201103L
│ │ │
│ │ │ 51# define DECIMAL_DIG __DECIMAL_DIG__
│ │ │
│ │ │ 53# ifndef FLT_EVAL_METHOD
│ │ │ 54# define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00296_source.html
│ │ │ @@ -91,29 +91,29 @@
│ │ │ 34#ifndef _GLIBCXX_CISO646
│ │ │ 35#define _GLIBCXX_CISO646
│ │ │
│ │ │
│ │ │ 38#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 43#if __cplusplus >= 202002L
│ │ │ 44# if ! _GLIBCXX_USE_DEPRECATED
│ │ │ 45# error "<ciso646> is not a standard header since C++20, use <version> to detect implementation-specific macros"
│ │ │ 46# elif defined __DEPRECATED
│ │ │ 47# pragma GCC diagnostic push
│ │ │ 48# pragma GCC diagnostic ignored "-Wc++23-extensions"
│ │ │ 49# warning "<ciso646> is not a standard header since C++20, use <version> to detect implementation-specific macros"
│ │ │ 50# pragma GCC diagnostic pop
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - ciso646
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00299_source.html
│ │ │ @@ -96,15 +96,15 @@
│ │ │ 39#ifndef _GLIBCXX_CLIMITS
│ │ │ 40#define _GLIBCXX_CLIMITS 1
│ │ │
│ │ │
│ │ │ 43#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 49#pragma GCC diagnostic push
│ │ │ 50#pragma GCC diagnostic ignored "-Wlong-long"
│ │ │
│ │ │
│ │ │ 53#define LLONG_MIN (-__LONG_LONG_MAX__ - 1)
│ │ │ @@ -117,15 +117,15 @@
│ │ │
│ │ │ 61#define ULLONG_MAX (__LONG_LONG_MAX__ * 2ULL + 1)
│ │ │
│ │ │
│ │ │ 64#pragma GCC diagnostic pop
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00305_source.html
│ │ │ @@ -96,32 +96,32 @@
│ │ │
│ │ │ 40#define _GLIBCXX_CMATH 1
│ │ │
│ │ │
│ │ │ 43#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 52#pragma GCC diagnostic push
│ │ │ 53#pragma GCC diagnostic ignored "-Wpedantic"
│ │ │ 54#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
│ │ │
│ │ │ 56#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
│ │ │ 57#pragma GCC diagnostic pop
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 61#define __glibcxx_want_hypot
│ │ │ 62#define __glibcxx_want_interpolate
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -3965,27 +3965,27 @@
│ │ │
│ │ │
│ │ │
│ │ │ 3909_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ 3912#if _GLIBCXX_USE_STD_SPEC_FUNCS
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ complex< _Tp > log10(const complex< _Tp > &)
Return complex base 10 logarithm of z.
│ │ │ complex< _Tp > sin(const complex< _Tp > &)
Return complex sine of z.
│ │ │ complex< _Tp > log(const complex< _Tp > &)
Return complex natural logarithm of z.
│ │ │ complex< _Tp > tan(const complex< _Tp > &)
Return complex tangent of z.
│ │ │ _Tp abs(const complex< _Tp > &)
Return magnitude of z.
│ │ │ complex< _Tp > exp(const complex< _Tp > &)
Return complex base e exponential of z.
│ │ │ complex< _Tp > cosh(const complex< _Tp > &)
Return complex hyperbolic cosine of z.
│ │ │ ├── html2text {}
│ │ │ │ @@ -3938,18 +3938,18 @@
│ │ │ │ 3912#if _GLIBCXX_USE_STD_SPEC_FUNCS
│ │ │ │ 3913# include <_b_i_t_s_/_s_p_e_c_f_u_n_._h>
│ │ │ │ 3914#endif
│ │ │ │ 3915
│ │ │ │ 3916} // extern "C++"
│ │ │ │ 3917
│ │ │ │ 3918#endif
│ │ │ │ -_s_t_d___a_b_s_._h
│ │ │ │ _s_p_e_c_f_u_n_._h
│ │ │ │ -_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ _v_e_r_s_i_o_n_._h
│ │ │ │ +_s_t_d___a_b_s_._h
│ │ │ │ +_r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h
│ │ │ │ _c_p_p___t_y_p_e___t_r_a_i_t_s_._h
│ │ │ │ _c_+_+_c_o_n_f_i_g_._h
│ │ │ │ _t_y_p_e___t_r_a_i_t_s_._h
│ │ │ │ _s_t_d_:_:_l_o_g_1_0
│ │ │ │ complex< _Tp > log10(const complex< _Tp > &)
│ │ │ │ Return complex base 10 logarithm of z.
│ │ │ │ DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_1_6_7
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00308_source.html
│ │ │ @@ -96,15 +96,15 @@
│ │ │ 39#ifndef _GLIBCXX_CSETJMP
│ │ │ 40#define _GLIBCXX_CSETJMP 1
│ │ │
│ │ │
│ │ │ 43#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -114,15 +114,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00314_source.html
│ │ │ @@ -89,33 +89,33 @@
│ │ │ 32#define _GLIBCXX_CSTDALIGN 1
│ │ │
│ │ │
│ │ │ 35#pragma GCC system_header
│ │ │
│ │ │
│ │ │ 38#if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │ 42# if _GLIBCXX_HAVE_STDALIGN_H
│ │ │
│ │ │
│ │ │ 45# if __cplusplus >= 202002L && ! _GLIBCXX_USE_DEPRECATED
│ │ │ 46# error "<cstdalign> is not a standard header in C++20, remove the #include"
│ │ │ 47# elif __cplusplus >= 201703L && defined __DEPRECATED
│ │ │ 48# pragma GCC diagnostic push
│ │ │ 49# pragma GCC diagnostic ignored "-Wc++23-extensions"
│ │ │ 50# warning "<cstdalign> is deprecated in C++17, remove the #include"
│ │ │ 51# pragma GCC diagnostic pop
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00320_source.html
│ │ │ @@ -89,33 +89,33 @@
│ │ │ 32#define _GLIBCXX_CSTDBOOL 1
│ │ │
│ │ │
│ │ │ 35#pragma GCC system_header
│ │ │
│ │ │
│ │ │ 38#if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │ 42# if _GLIBCXX_HAVE_STDBOOL_H
│ │ │
│ │ │
│ │ │ 45# if __cplusplus >= 202002L && ! _GLIBCXX_USE_DEPRECATED
│ │ │ 46# error "<cstdbool> is not a standard header in C++20, remove the #include"
│ │ │ 47# elif __cplusplus >= 201703L && defined __DEPRECATED
│ │ │ 48# pragma GCC diagnostic push
│ │ │ 49# pragma GCC diagnostic ignored "-Wc++23-extensions"
│ │ │ 50# warning "<cstdbool> is deprecated in C++17, remove the #include"
│ │ │ 51# pragma GCC diagnostic pop
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - cstdbool
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00323_source.html
│ │ │ @@ -101,19 +101,19 @@
│ │ │
│ │ │
│ │ │
│ │ │ 47#undef __need_ptrdiff_t
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 54#define __glibcxx_want_byte
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 57#pragma GCC diagnostic push
│ │ │ 58#pragma GCC diagnostic ignored "-Wpedantic"
│ │ │
│ │ │
│ │ │
│ │ │ 62#if __cplusplus >= 201103L
│ │ │ @@ -250,16 +250,16 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 197#pragma GCC diagnostic pop
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ constexpr bitset< _Nb > operator^(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
│ │ │ std::basic_istream< _CharT, _Traits > & operator>>(std::basic_istream< _CharT, _Traits > &__is, bitset< _Nb > &__x)
Global I/O operators for bitsets.
│ │ │ std::basic_ostream< _CharT, _Traits > & operator<<(std::basic_ostream< _CharT, _Traits > &__os, const bitset< _Nb > &__x)
Global I/O operators for bitsets.
│ │ │ constexpr bitset< _Nb > operator|(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
│ │ │ constexpr bitset< _Nb > operator&(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00326_source.html
│ │ │ @@ -87,18 +87,18 @@
│ │ │ 30#define _GLIBCXX_CSTDINT 1
│ │ │
│ │ │
│ │ │ 33#pragma GCC system_header
│ │ │
│ │ │
│ │ │ 36#if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 42#if ! _GLIBCXX_HOSTED && __has_include(<stdint-gcc.h>)
│ │ │
│ │ │
│ │ │ 45# include <stdint-gcc.h>
│ │ │ 46#elif __has_include(<stdint.h>)
│ │ │
│ │ │ @@ -199,16 +199,16 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00329_source.html
│ │ │ @@ -96,15 +96,15 @@
│ │ │ 39#ifndef _GLIBCXX_CSTDIO
│ │ │ 40#define _GLIBCXX_CSTDIO 1
│ │ │
│ │ │
│ │ │ 43#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 49#if __cplusplus <= 201103L && !defined(_GLIBCXX_HAVE_GETS)
│ │ │ 50extern "C" char* gets (
char* __s) __attribute__((__deprecated__));
│ │ │
│ │ │
│ │ │
│ │ │ @@ -247,15 +247,15 @@
│ │ │ 190 using ::__gnu_cxx::vsnprintf;
│ │ │ 191 using ::__gnu_cxx::vsscanf;
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ GNU extensions for public use.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00332_source.html
│ │ │ @@ -96,15 +96,15 @@
│ │ │
39#ifndef _GLIBCXX_CSTDLIB
│ │ │
40#define _GLIBCXX_CSTDLIB 1
│ │ │
│ │ │
│ │ │
43#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -137,15 +137,15 @@
│ │ │
80#pragma GCC diagnostic push
│ │ │
81#pragma GCC diagnostic ignored "-Wpedantic"
│ │ │
82#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
│ │ │
83#include_next <stdlib.h>
│ │ │
84#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
│ │ │
85#pragma GCC diagnostic pop
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
91#if __cplusplus >= 201703L && defined(_GLIBCXX_HAVE_ALIGNED_ALLOC)
│ │ │
│ │ │
│ │ │
│ │ │ @@ -339,16 +339,16 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │
GNU extensions for public use.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00335_source.html
│ │ │ @@ -97,15 +97,15 @@
│ │ │
40#define _GLIBCXX_CSTRING 1
│ │ │
│ │ │
│ │ │
43#pragma GCC system_header
│ │ │
│ │ │
│ │ │
46#define __glibcxx_want_freestanding_cstring
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -182,15 +182,15 @@
│ │ │
│ │ │
│ │ │
127_GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00338_source.html
│ │ │ @@ -89,15 +89,15 @@
│ │ │ 32#define _GLIBCXX_CTGMATH 1
│ │ │
│ │ │
│ │ │ 35#pragma GCC system_header
│ │ │
│ │ │
│ │ │ 38#if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 45# if __cplusplus >= 202002L && ! _GLIBCXX_USE_DEPRECATED
│ │ │ 46# error "<ctgmath> is not a standard header in C++20, use <complex> or <cmath> instead"
│ │ │ @@ -108,15 +108,15 @@
│ │ │ 51# pragma GCC diagnostic pop
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00347_source.html
│ │ │ @@ -97,18 +97,18 @@
│ │ │
40#define _GLIBCXX_CUCHAR 1
│ │ │
│ │ │
│ │ │
43#pragma GCC system_header
│ │ │
│ │ │
│ │ │
46#if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
53#if (_GLIBCXX_USE_C11_UCHAR_CXX11 \
│ │ │
54 || (_GLIBCXX_USE_CHAR8_T \
│ │ │
55 && (_GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_FCHAR8_T \
│ │ │
56 || (__cplusplus >= 202002 \
│ │ │
57 && _GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_CXX20))))
│ │ │ @@ -162,16 +162,16 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00353.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: nested_exception.h File Reference
│ │ │ +libstdc++: stdexcept_throwfwd.h File Reference
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,51 +48,61 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
Go to the source code of this file.
│ │ │
│ │ │ |
│ │ │ | namespace | std |
│ │ │
│ │ │ |
│ │ │ -| template<typename _Ex> |
│ │ │ -| void | std::rethrow_if_nested (const _Ex &__ex) |
│ │ │ -| template<typename _Tp> |
│ │ │ -| void | std::throw_with_nested (_Tp &&__t) |
│ │ │ +|
│ │ │ +void | std::__throw_domain_error (const char *) |
│ │ │ +|
│ │ │ +void | std::__throw_invalid_argument (const char *) |
│ │ │ +|
│ │ │ +void | std::__throw_length_error (const char *) |
│ │ │ +|
│ │ │ +void | std::__throw_logic_error (const char *) |
│ │ │ +|
│ │ │ +void | std::__throw_out_of_range (const char *) |
│ │ │ +|
│ │ │ +void | std::__throw_out_of_range_fmt (const char *,...) |
│ │ │ +|
│ │ │ +void | std::__throw_overflow_error (const char *) |
│ │ │ +|
│ │ │ +void | std::__throw_runtime_error (const char *) |
│ │ │ +|
│ │ │ +void | std::__throw_underflow_error (const char *) |
│ │ │
│ │ │
│ │ │ -
This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <exception>.
│ │ │ +
This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <stdexcept>.
│ │ │
│ │ │ -
Definition in file nested_exception.h.
│ │ │ +
Definition in file stdexcept_throwfwd.h.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,19 +1,22 @@
│ │ │ │ libstdc++
│ │ │ │ -nested_exception.h File Reference
│ │ │ │ +stdexcept_throwfwd.h File Reference
│ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_.
│ │ │ │ -CCllaasssseess
│ │ │ │ -class _s_t_d_:_:_n_e_s_t_e_d___e_x_c_e_p_t_i_o_n
│ │ │ │ NNaammeessppaacceess
│ │ │ │ namespace _s_t_d
│ │ │ │ FFuunnccttiioonnss
│ │ │ │ -template
│ │ │ │ -void _s_t_d_:_:_r_e_t_h_r_o_w___i_f___n_e_s_t_e_d (const _Ex &__ex)
│ │ │ │ -template
│ │ │ │ -void _s_t_d_:_:_t_h_r_o_w___w_i_t_h___n_e_s_t_e_d (_Tp &&__t)
│ │ │ │ +void ssttdd::::____tthhrrooww__ddoommaaiinn__eerrrroorr (const char *)
│ │ │ │ +void ssttdd::::____tthhrrooww__iinnvvaalliidd__aarrgguummeenntt (const char *)
│ │ │ │ +void ssttdd::::____tthhrrooww__lleennggtthh__eerrrroorr (const char *)
│ │ │ │ +void ssttdd::::____tthhrrooww__llooggiicc__eerrrroorr (const char *)
│ │ │ │ +void ssttdd::::____tthhrrooww__oouutt__ooff__rraannggee (const char *)
│ │ │ │ +void ssttdd::::____tthhrrooww__oouutt__ooff__rraannggee__ffmmtt (const char *,...)
│ │ │ │ +void ssttdd::::____tthhrrooww__oovveerrffllooww__eerrrroorr (const char *)
│ │ │ │ +void ssttdd::::____tthhrrooww__rruunnttiimmee__eerrrroorr (const char *)
│ │ │ │ +void ssttdd::::____tthhrrooww__uunnddeerrffllooww__eerrrroorr (const char *)
│ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn **********
│ │ │ │ This is an internal header file, included by other library headers. Do not
│ │ │ │ -attempt to use it directly. Instead, include .
│ │ │ │ -Definition in file _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_._h.
│ │ │ │ +attempt to use it directly. Instead, include .
│ │ │ │ +Definition in file _s_t_d_e_x_c_e_p_t___t_h_r_o_w_f_w_d_._h.
│ │ │ │ * bbiittss
│ │ │ │ - * _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_._h
│ │ │ │ + * _s_t_d_e_x_c_e_p_t___t_h_r_o_w_f_w_d_._h
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00353_source.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: nested_exception.h Source File
│ │ │ +libstdc++: stdexcept_throwfwd.h Source File
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,20 +48,20 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
Go to the documentation of this file.
│ │ │ +
Go to the documentation of this file.
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -75,275 +75,123 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
30#ifndef _GLIBCXX_NESTED_EXCEPTION_H
│ │ │ -
31#define _GLIBCXX_NESTED_EXCEPTION_H 1
│ │ │ -
│ │ │ -
33#if __cplusplus < 201103L
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
34#ifndef _STDEXCEPT_THROWFWD_H
│ │ │ +
35#define _STDEXCEPT_THROWFWD_H 1
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
42namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
74#if __cplusplus >= 202400L
│ │ │ -
75 [[__gnu__::__gnu_inline__]]
│ │ │ -
│ │ │ -
│ │ │ -
78 virtual ~nested_exception() noexcept;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
83 _GLIBCXX26_CONSTEXPR
void
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
99 template<
typename _Except>
│ │ │ -
100 struct _Nested_exception :
public _Except,
public nested_exception
│ │ │ -
│ │ │ -
102 _GLIBCXX26_CONSTEXPR
explicit _Nested_exception(
const _Except& __ex)
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
106 _GLIBCXX26_CONSTEXPR
explicit _Nested_exception(_Except&& __ex)
│ │ │ -
107 : _Except(static_cast<_Except&&>(__ex))
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
111#if __cplusplus < 201703L || ! defined __cpp_if_constexpr
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
115 template<
typename _Tp>
│ │ │ -
│ │ │ -
│ │ │ -
118 __throw_with_nested_impl(_Tp&& __t,
true_type)
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
123 template<
typename _Tp>
│ │ │ -
│ │ │ -
│ │ │ -
126 __throw_with_nested_impl(_Tp&& __t,
false_type)
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
153 template<
typename _Tp>
│ │ │ -
│ │ │ -
155 _GLIBCXX26_CONSTEXPR
inline void
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
158 using _Up =
typename decay<_Tp>::type;
│ │ │ -
159 using _CopyConstructible
│ │ │ -
│ │ │ -
161 static_assert(_CopyConstructible::value,
│ │ │ -
162 "throw_with_nested argument must be CopyConstructible");
│ │ │ -
│ │ │ -
164#if __cplusplus >= 201703L && __cpp_if_constexpr
│ │ │ -
165 if constexpr (is_class_v<_Up>)
│ │ │ -
166 if constexpr (!is_final_v<_Up>)
│ │ │ -
167 if constexpr (!is_base_of_v<nested_exception, _Up>)
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
171 using __nest = __and_<is_class<_Up>, __bool_constant<!__is_final(_Up)>,
│ │ │ -
172 __not_<is_base_of<nested_exception, _Up>>>;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
177#if __cplusplus < 201703L || ! defined __cpp_if_constexpr
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
181 template<
typename _Ex>
│ │ │ -
│ │ │ -
183 __rethrow_if_nested_impl(
const _Ex* __ptr, true_type)
│ │ │ -
│ │ │ -
185 if (
auto __ne_ptr =
dynamic_cast<const nested_exception*
>(__ptr))
│ │ │ -
186 __ne_ptr->rethrow_nested();
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
191 __rethrow_if_nested_impl(
const void*,
false_type)
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
211 template<
typename _Ex>
│ │ │ -
│ │ │ -
213 [[__gnu__::__always_inline__]]
│ │ │ -
│ │ │ -
215 _GLIBCXX26_CONSTEXPR
inline void
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
218 const _Ex* __ptr = __builtin_addressof(__ex);
│ │ │ -
219#if __cplusplus < 201703L || ! defined __cpp_if_constexpr
│ │ │ -
│ │ │ -
221 using __cast = __and_<is_polymorphic<_Ex>,
│ │ │ -
222 __or_<__not_<is_base_of<nested_exception, _Ex>>,
│ │ │ -
223 is_convertible<_Ex*, nested_exception*>>>;
│ │ │ -
│ │ │ -
225 using __cast = __and_<is_polymorphic<_Ex>,
│ │ │ -
│ │ │ -
227 is_convertible<_Ex*, nested_exception*>>;
│ │ │ -
│ │ │ -
229 std::__rethrow_if_nested_impl(__ptr, __cast{});
│ │ │ -
│ │ │ -
231 if constexpr (!is_polymorphic_v<_Ex>)
│ │ │ -
│ │ │ -
233 else if constexpr (is_base_of_v<nested_exception, _Ex>
│ │ │ -
234 && !is_convertible_v<_Ex*, nested_exception*>)
│ │ │ -
│ │ │ -
│ │ │ -
237 else if constexpr (!is_base_of_v<nested_exception, _Ex>)
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
241 __ne_ptr->rethrow_nested();
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
__bool_constant< true > true_type
The type used as a compile-time boolean with true value.
│ │ │ -
__bool_constant< false > false_type
The type used as a compile-time boolean with false value.
│ │ │ -
constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ -
exception_ptr current_exception() noexcept
│ │ │ -
void rethrow_exception(exception_ptr)
Throw the object pointed to by the exception_ptr.
│ │ │ -
void terminate() noexcept
│ │ │ -
void rethrow_if_nested(const _Ex &__ex)
│ │ │ -
void throw_with_nested(_Tp &&__t)
│ │ │ +
40namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ +
│ │ │ +
42_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │ +
45#if (__cpp_exceptions && __cplusplus > 202302L \
│ │ │ +
46 && __cpp_constexpr_exceptions >= 202411L)
│ │ │ +
│ │ │ +
48 [[noreturn, __gnu__::__always_inline__, __gnu__::__cold__]]
constexpr void
│ │ │ +
49 __throw_logic_error(
const char*);
│ │ │ +
50 [[noreturn, __gnu__::__always_inline__, __gnu__::__cold__]]
constexpr void
│ │ │ +
51 __throw_domain_error(
const char*);
│ │ │ +
52 [[noreturn, __gnu__::__always_inline__, __gnu__::__cold__]]
constexpr void
│ │ │ +
53 __throw_invalid_argument(
const char*);
│ │ │ +
54 [[noreturn, __gnu__::__always_inline__, __gnu__::__cold__]]
constexpr void
│ │ │ +
55 __throw_length_error(
const char*);
│ │ │ +
56 [[noreturn, __gnu__::__always_inline__, __gnu__::__cold__]]
constexpr void
│ │ │ +
57 __throw_out_of_range(
const char*);
│ │ │ +
58 template <
typename... _Args>
│ │ │ +
59 [[noreturn, __gnu__::__always_inline__, __gnu__::__cold__]]
constexpr void
│ │ │ +
60 __throw_out_of_range_fmt(
const char* __s, _Args... __args);
│ │ │ +
61 [[noreturn, __gnu__::__always_inline__, __gnu__::__cold__]]
constexpr void
│ │ │ +
62 __throw_runtime_error(
const char*);
│ │ │ +
63 [[noreturn, __gnu__::__always_inline__, __gnu__::__cold__]]
constexpr void
│ │ │ +
64 __throw_overflow_error(
const char*);
│ │ │ +
65 [[noreturn, __gnu__::__always_inline__, __gnu__::__cold__]]
constexpr void
│ │ │ +
66 __throw_underflow_error(
const char*);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
70 __throw_logic_error(
const char*) __attribute__((__noreturn__,__cold__));
│ │ │ +
│ │ │ +
│ │ │ +
73 __throw_domain_error(
const char*) __attribute__((__noreturn__,__cold__));
│ │ │ +
│ │ │ +
│ │ │ +
76 __throw_invalid_argument(
const char*) __attribute__((__noreturn__,__cold__));
│ │ │ +
│ │ │ +
│ │ │ +
79 __throw_length_error(
const char*) __attribute__((__noreturn__,__cold__));
│ │ │ +
│ │ │ +
│ │ │ +
82 __throw_out_of_range(
const char*) __attribute__((__noreturn__,__cold__));
│ │ │ +
│ │ │ +
│ │ │ +
85 __throw_out_of_range_fmt(
const char*, ...)
│ │ │ +
86 __attribute__((__noreturn__,__cold__,__format__(__gnu_printf__, 1, 2)));
│ │ │ +
│ │ │ +
│ │ │ +
89 __throw_runtime_error(const
char*) __attribute__((__noreturn__,__cold__));
│ │ │ +
│ │ │ +
│ │ │ +
92 __throw_overflow_error(const
char*) __attribute__((__noreturn__,__cold__));
│ │ │ +
│ │ │ +
│ │ │ +
95 __throw_underflow_error(const
char*) __attribute__((__noreturn__,__cold__));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
100 __attribute__((__noreturn__))
inline void
│ │ │ +
101 __throw_invalid_argument(
const char*)
│ │ │ +
102 { std::__terminate(); }
│ │ │ +
│ │ │ +
104 __attribute__((__noreturn__))
inline void
│ │ │ +
105 __throw_out_of_range(
const char*)
│ │ │ +
106 { std::__terminate(); }
│ │ │ +
│ │ │ +
108 __attribute__((__noreturn__))
inline void
│ │ │ +
109 __throw_out_of_range_fmt(
const char*, ...)
│ │ │ +
110 { std::__terminate(); }
│ │ │ +
│ │ │ +
112 __attribute__((__noreturn__))
inline void
│ │ │ +
113 __throw_runtime_error(
const char*)
│ │ │ +
114 { std::__terminate(); }
│ │ │ +
│ │ │ +
116 __attribute__((__noreturn__))
inline void
│ │ │ +
117 __throw_overflow_error(
const char*)
│ │ │ +
118 { std::__terminate(); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
122_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ -
│ │ │ -
│ │ │ -
An opaque pointer to an arbitrary exception.
│ │ │ -
│ │ │ -
void rethrow_nested() const
Rethrow the stored exception, or terminate if none was stored.
│ │ │ -
exception_ptr nested_ptr() const noexcept
Access the stored exception.
│ │ │ -
nested_exception() noexcept
The default constructor stores the current exception (if any).
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,13 +1,13 @@
│ │ │ │ libstdc++
│ │ │ │ -nested_exception.h
│ │ │ │ +stdexcept_throwfwd.h
│ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_.
│ │ │ │ -1// Nested Exception support header (nested_exception class) for -*- C++ -*-
│ │ │ │ +1// Function-Based Exception Support -*- C++ -*-
│ │ │ │ 2
│ │ │ │ -3// Copyright (C) 2009-2026 Free Software Foundation, Inc.
│ │ │ │ +3// Copyright (C) 2001-2026 Free Software Foundation, Inc.
│ │ │ │ 4//
│ │ │ │ 5// This file is part of the GNU ISO C++ Library. This library is free
│ │ │ │ 6// software; you can redistribute it and/or modify it under the
│ │ │ │ 7// terms of the GNU General Public License as published by the
│ │ │ │ 8// Free Software Foundation; either version 3, or (at your option)
│ │ │ │ 9// any later version.
│ │ │ │ 10
│ │ │ │ @@ -21,293 +21,116 @@
│ │ │ │ 18// 3.1, as published by the Free Software Foundation.
│ │ │ │ 19
│ │ │ │ 20// You should have received a copy of the GNU General Public License and
│ │ │ │ 21// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │ 22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │ 23//
.
│ │ │ │ 24
│ │ │ │ -25/** @file bits/nested_exception.h
│ │ │ │ +25/** @file bits/stdexcept_throwfwd.h
│ │ │ │ 26 * This is an internal header file, included by other library headers.
│ │ │ │ -27 * Do not attempt to use it directly. @headername{exception}
│ │ │ │ +27 * Do not attempt to use it directly. @headername{stdexcept}
│ │ │ │ 28 */
│ │ │ │ 29
│ │ │ │ -30#ifndef _GLIBCXX_NESTED_EXCEPTION_H
│ │ │ │ -31#define _GLIBCXX_NESTED_EXCEPTION_H 1
│ │ │ │ -32
│ │ │ │ -33#if __cplusplus < 201103L
│ │ │ │ -34# include <_b_i_t_s_/_c_+_+_0_x___w_a_r_n_i_n_g_._h>
│ │ │ │ -35#else
│ │ │ │ +30//
│ │ │ │ +31// ISO C++ 14882: 19.1 Exception classes
│ │ │ │ +32//
│ │ │ │ +33
│ │ │ │ +34#ifndef _STDEXCEPT_THROWFWD_H
│ │ │ │ +35#define _STDEXCEPT_THROWFWD_H 1
│ │ │ │ 36
│ │ │ │ -37#include <_b_i_t_s_/_m_o_v_e_._h>
│ │ │ │ -38#include <_b_i_t_s_/_e_x_c_e_p_t_i_o_n___p_t_r_._h>
│ │ │ │ +37#include <_b_i_t_s_/_c_+_+_c_o_n_f_i_g_._h>
│ │ │ │ +38#include <_b_i_t_s_/_e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h>
│ │ │ │ 39
│ │ │ │ -40extern "C++" {
│ │ │ │ -41
│ │ │ │ -42namespace _s_t_d _GLIBCXX_VISIBILITY(default)
│ │ │ │ -43{
│ │ │ │ -44 /**
│ │ │ │ -45 * @addtogroup exceptions
│ │ │ │ -46 * @{
│ │ │ │ -47 */
│ │ │ │ -48
│ │ │ │ -49 /** Mixin class that stores the current exception.
│ │ │ │ -50 *
│ │ │ │ -51 * This type can be used via `std::throw_with_nested` to store
│ │ │ │ -52 * the current exception nested within another exception.
│ │ │ │ -53 *
│ │ │ │ -54 * @headerfile exception
│ │ │ │ -55 * @since C++11
│ │ │ │ -56 * @see std::throw_with_nested
│ │ │ │ -57 * @ingroup exceptions
│ │ │ │ -58 */
│ │ │ │ -_5_9 class _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n
│ │ │ │ -60 {
│ │ │ │ -61 _e_x_c_e_p_t_i_o_n___p_t_r _M_ptr;
│ │ │ │ -62
│ │ │ │ -63 public:
│ │ │ │ -64 /// The default constructor stores the current exception (if any).
│ │ │ │ -65 _GLIBCXX26_CONSTEXPR
│ │ │ │ -_6_6 _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n() noexcept : _M_ptr(_c_u_r_r_e_n_t___e_x_c_e_p_t_i_o_n()) { }
│ │ │ │ -67
│ │ │ │ -68 _GLIBCXX26_CONSTEXPR
│ │ │ │ -69 _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n(const _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n&) noexcept = default;
│ │ │ │ -70
│ │ │ │ -71 _GLIBCXX26_CONSTEXPR
│ │ │ │ -72 _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n& operator=(const _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n&) noexcept = default;
│ │ │ │ -73
│ │ │ │ -74#if __cplusplus >= 202400L
│ │ │ │ -75 [[__gnu__::__gnu_inline__]]
│ │ │ │ -76 constexpr inline virtual _~_n_e_s_t_e_d___e_x_c_e_p_t_i_o_n() noexcept {}
│ │ │ │ -77#else
│ │ │ │ -78 virtual ~nested_exception() noexcept;
│ │ │ │ -79#endif
│ │ │ │ +40namespace _s_t_d _GLIBCXX_VISIBILITY(default)
│ │ │ │ +41{
│ │ │ │ +42_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ +43
│ │ │ │ +44#if _GLIBCXX_HOSTED
│ │ │ │ +45#if (__cpp_exceptions && __cplusplus > 202302L \
│ │ │ │ +46 && __cpp_constexpr_exceptions >= 202411L)
│ │ │ │ +47 // Helper for exception objects in
│ │ │ │ +48 [[noreturn, __gnu__::__always_inline__, __gnu__::__cold__]] constexpr void
│ │ │ │ +49 __throw_logic_error(const char*);
│ │ │ │ +50 [[noreturn, __gnu__::__always_inline__, __gnu__::__cold__]] constexpr void
│ │ │ │ +51 __throw_domain_error(const char*);
│ │ │ │ +52 [[noreturn, __gnu__::__always_inline__, __gnu__::__cold__]] constexpr void
│ │ │ │ +53 __throw_invalid_argument(const char*);
│ │ │ │ +54 [[noreturn, __gnu__::__always_inline__, __gnu__::__cold__]] constexpr void
│ │ │ │ +55 __throw_length_error(const char*);
│ │ │ │ +56 [[noreturn, __gnu__::__always_inline__, __gnu__::__cold__]] constexpr void
│ │ │ │ +57 __throw_out_of_range(const char*);
│ │ │ │ +58 template
│ │ │ │ +59 [[noreturn, __gnu__::__always_inline__, __gnu__::__cold__]] constexpr void
│ │ │ │ +60 __throw_out_of_range_fmt(const char* __s, _Args... __args);
│ │ │ │ +61 [[noreturn, __gnu__::__always_inline__, __gnu__::__cold__]] constexpr void
│ │ │ │ +62 __throw_runtime_error(const char*);
│ │ │ │ +63 [[noreturn, __gnu__::__always_inline__, __gnu__::__cold__]] constexpr void
│ │ │ │ +64 __throw_overflow_error(const char*);
│ │ │ │ +65 [[noreturn, __gnu__::__always_inline__, __gnu__::__cold__]] constexpr void
│ │ │ │ +66 __throw_underflow_error(const char*);
│ │ │ │ +67#else
│ │ │ │ +68 // Helpers for exception objects in
│ │ │ │ +69 void
│ │ │ │ +70 __throw_logic_error(const char*) __attribute__((__noreturn__,__cold__));
│ │ │ │ +71
│ │ │ │ +72 void
│ │ │ │ +73 __throw_domain_error(const char*) __attribute__((__noreturn__,__cold__));
│ │ │ │ +74
│ │ │ │ +75 void
│ │ │ │ +76 __throw_invalid_argument(const char*) __attribute__(
│ │ │ │ +(__noreturn__,__cold__));
│ │ │ │ +77
│ │ │ │ +78 void
│ │ │ │ +79 __throw_length_error(const char*) __attribute__((__noreturn__,__cold__));
│ │ │ │ 80
│ │ │ │ -81 /// Rethrow the stored exception, or terminate if none was stored.
│ │ │ │ -82 [[noreturn]]
│ │ │ │ -83 _GLIBCXX26_CONSTEXPR void
│ │ │ │ -_8_4 _r_e_t_h_r_o_w___n_e_s_t_e_d() const
│ │ │ │ -85 {
│ │ │ │ -86 if (_M_ptr)
│ │ │ │ -87 _r_e_t_h_r_o_w___e_x_c_e_p_t_i_o_n(_M_ptr);
│ │ │ │ -88 _s_t_d_:_:_t_e_r_m_i_n_a_t_e();
│ │ │ │ -89 }
│ │ │ │ +81 void
│ │ │ │ +82 __throw_out_of_range(const char*) __attribute__((__noreturn__,__cold__));
│ │ │ │ +83
│ │ │ │ +84 void
│ │ │ │ +85 __throw_out_of_range_fmt(const char*, ...)
│ │ │ │ +86 __attribute__((__noreturn__,__cold__,__format__(__gnu_printf__, 1, 2)));
│ │ │ │ +87
│ │ │ │ +88 void
│ │ │ │ +89 __throw_runtime_error(const char*) __attribute__((__noreturn__,__cold__));
│ │ │ │ 90
│ │ │ │ -91 /// Access the stored exception.
│ │ │ │ -92 _GLIBCXX26_CONSTEXPR _e_x_c_e_p_t_i_o_n___p_t_r
│ │ │ │ -_9_3 _n_e_s_t_e_d___p_t_r() const noexcept
│ │ │ │ -94 { return _M_ptr; }
│ │ │ │ -95 };
│ │ │ │ -96
│ │ │ │ -97 /// @cond undocumented
│ │ │ │ -98
│ │ │ │ -99 template
│ │ │ │ -100 struct _Nested_exception : public _Except, public nested_exception
│ │ │ │ -101 {
│ │ │ │ -102 _GLIBCXX26_CONSTEXPR explicit _Nested_exception(const _Except& __ex)
│ │ │ │ -103 : _Except(__ex)
│ │ │ │ -104 { }
│ │ │ │ -105
│ │ │ │ -106 _GLIBCXX26_CONSTEXPR explicit _Nested_exception(_Except&& __ex)
│ │ │ │ -107 : _Except(static_cast<_Except&&>(__ex))
│ │ │ │ -108 { }
│ │ │ │ -109 };
│ │ │ │ -110
│ │ │ │ -111#if __cplusplus < 201703L || ! defined __cpp_if_constexpr
│ │ │ │ -112 // [except.nested]/8
│ │ │ │ -113 // Throw an exception of unspecified type that is publicly derived from
│ │ │ │ -114 // both remove_reference_t<_Tp> and nested_exception.
│ │ │ │ -115 template
│ │ │ │ -116 [[noreturn]]
│ │ │ │ -117 inline void
│ │ │ │ -118 __throw_with_nested_impl(_Tp&& __t, _t_r_u_e___t_y_p_e)
│ │ │ │ -119 {
│ │ │ │ -120 throw _Nested_exception<__remove_cvref_t<_Tp>>{_s_t_d_:_:_f_o_r_w_a_r_d_<___T_p_>(__t)};
│ │ │ │ -121 }
│ │ │ │ -122
│ │ │ │ -123 template
│ │ │ │ -124 [[noreturn]]
│ │ │ │ -125 inline void
│ │ │ │ -126 __throw_with_nested_impl(_Tp&& __t, _f_a_l_s_e___t_y_p_e)
│ │ │ │ -127 { throw _s_t_d_:_:_f_o_r_w_a_r_d_<___T_p_>(__t); }
│ │ │ │ -128#endif
│ │ │ │ -129
│ │ │ │ -130 /// @endcond
│ │ │ │ -131
│ │ │ │ -132 /** Throw an exception that also stores the currently active exception.
│ │ │ │ -133 *
│ │ │ │ -134 * If `_Tp` is derived from `std::nested_exception` or is not usable
│ │ │ │ -135 * as a base-class, throws a copy of `__t`.
│ │ │ │ -136 * Otherwise, throws an object of an implementation-defined type derived
│ │ │ │ -137 * from both `_Tp` and `std::nested_exception`, containing a copy of `__t`
│ │ │ │ -138 * and the result of `std::current_exception()`.
│ │ │ │ -139 *
│ │ │ │ -140 * In other words, throws the argument as a new exception that contains
│ │ │ │ -141 * the currently active exception nested within it. This is intended for
│ │ │ │ -142 * use in a catch handler to replace the caught exception with a different
│ │ │ │ -143 * type, while still preserving the original exception. When the new
│ │ │ │ -144 * exception is caught, the nested exception can be rethrown by using
│ │ │ │ -145 * `std::rethrow_if_nested`.
│ │ │ │ -146 *
│ │ │ │ -147 * This can be used at API boundaries, for example to catch a library's
│ │ │ │ -148 * internal exception type and rethrow it nested with a `std::
│ │ │ │ -runtime_error`,
│ │ │ │ -149 * or vice versa.
│ │ │ │ -150 *
│ │ │ │ -151 * @since C++11
│ │ │ │ -152 */
│ │ │ │ -153 template
│ │ │ │ -154 [[noreturn]]
│ │ │ │ -155 _GLIBCXX26_CONSTEXPR inline void
│ │ │ │ -_1_5_6 _t_h_r_o_w___w_i_t_h___n_e_s_t_e_d(_Tp&& __t)
│ │ │ │ -157 {
│ │ │ │ -158 using _Up = typename decay<_Tp>::type;
│ │ │ │ -159 using _CopyConstructible
│ │ │ │ -160 = __and_, _i_s___m_o_v_e___c_o_n_s_t_r_u_c_t_i_b_l_e_<___U_p_>>;
│ │ │ │ -161 static_assert(_CopyConstructible::value,
│ │ │ │ -162 "throw_with_nested argument must be CopyConstructible");
│ │ │ │ -163
│ │ │ │ -164#if __cplusplus >= 201703L && __cpp_if_constexpr
│ │ │ │ -165 if constexpr (is_class_v<_Up>)
│ │ │ │ -166 if constexpr (!is_final_v<_Up>)
│ │ │ │ -167 if constexpr (!is_base_of_v)
│ │ │ │ -168 throw _Nested_exception<_Up>{_s_t_d_:_:_f_o_r_w_a_r_d_<___T_p_>(__t)};
│ │ │ │ -169 throw _s_t_d_:_:_f_o_r_w_a_r_d_<___T_p_>(__t);
│ │ │ │ -170#else
│ │ │ │ -171 using __nest = __and_, __bool_constant,
│ │ │ │ -172 __not_>>;
│ │ │ │ -173 std::__throw_with_nested_impl(_s_t_d_:_:_f_o_r_w_a_r_d_<___T_p_>(__t), __nest{});
│ │ │ │ -174#endif
│ │ │ │ -175 }
│ │ │ │ -176
│ │ │ │ -177#if __cplusplus < 201703L || ! defined __cpp_if_constexpr
│ │ │ │ -178 /// @cond undocumented
│ │ │ │ -179
│ │ │ │ -180 // Attempt dynamic_cast to nested_exception and call rethrow_nested().
│ │ │ │ -181 template
│ │ │ │ -182 inline void
│ │ │ │ -183 __rethrow_if_nested_impl(const _Ex* __ptr, true_type)
│ │ │ │ -184 {
│ │ │ │ -185 if (auto __ne_ptr = dynamic_cast(__ptr))
│ │ │ │ -186 __ne_ptr->rethrow_nested();
│ │ │ │ -187 }
│ │ │ │ -188
│ │ │ │ -189 // Otherwise, no effects.
│ │ │ │ -190 inline void
│ │ │ │ -191 __rethrow_if_nested_impl(const void*, _f_a_l_s_e___t_y_p_e)
│ │ │ │ -192 { }
│ │ │ │ -193
│ │ │ │ -194 /// @endcond
│ │ │ │ -195#endif
│ │ │ │ -196
│ │ │ │ -197 /** Rethrow a nested exception
│ │ │ │ -198 *
│ │ │ │ -199 * If `__ex` contains a `std::nested_exception` object, call its
│ │ │ │ -200 * `rethrow_nested()` member to rethrow the stored exception.
│ │ │ │ -201 *
│ │ │ │ -202 * After catching an exception thrown by a call to `std::throw_with_nested`
│ │ │ │ -203 * this function can be used to rethrow the exception that was active when
│ │ │ │ -204 * `std::throw_with_nested` was called.
│ │ │ │ -205 *
│ │ │ │ -206 * @since C++11
│ │ │ │ -207 */
│ │ │ │ -208 // _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ -209 // 2484. rethrow_if_nested() is doubly unimplementable
│ │ │ │ -210 // 2784. Resolution to LWG 2484 is missing "otherwise, no effects" and
│ │ │ │ -[...]
│ │ │ │ -211 template
│ │ │ │ -212# if ! __cpp_rtti
│ │ │ │ -213 [[__gnu__::__always_inline__]]
│ │ │ │ -214#endif
│ │ │ │ -215 _GLIBCXX26_CONSTEXPR inline void
│ │ │ │ -_2_1_6 _r_e_t_h_r_o_w___i_f___n_e_s_t_e_d(const _Ex& __ex)
│ │ │ │ -217 {
│ │ │ │ -218 const _Ex* __ptr = __builtin_addressof(__ex);
│ │ │ │ -219#if __cplusplus < 201703L || ! defined __cpp_if_constexpr
│ │ │ │ -220# if __cpp_rtti
│ │ │ │ -221 using __cast = __and_,
│ │ │ │ -222 __or_<__not_>,
│ │ │ │ -223 is_convertible<_Ex*, nested_exception*>>>;
│ │ │ │ -224# else
│ │ │ │ -225 using __cast = __and_,
│ │ │ │ -226 _i_s___b_a_s_e___o_f_<_n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_,_ ___E_x_>,
│ │ │ │ -227 is_convertible<_Ex*, nested_exception*>>;
│ │ │ │ -228# endif
│ │ │ │ -229 std::__rethrow_if_nested_impl(__ptr, __cast{});
│ │ │ │ -230#else
│ │ │ │ -231 if constexpr (!is_polymorphic_v<_Ex>)
│ │ │ │ -232 return;
│ │ │ │ -233 else if constexpr (is_base_of_v
│ │ │ │ -234 && !is_convertible_v<_Ex*, nested_exception*>)
│ │ │ │ -235 return; // nested_exception base class is inaccessible or ambiguous.
│ │ │ │ -236# if ! __cpp_rtti
│ │ │ │ -237 else if constexpr (!is_base_of_v)
│ │ │ │ -238 return; // Cannot do polymorphic casts without RTTI.
│ │ │ │ -239# endif
│ │ │ │ -240 else if (auto __ne_ptr = dynamic_cast(__ptr))
│ │ │ │ -241 __ne_ptr->rethrow_nested();
│ │ │ │ -242#endif
│ │ │ │ -243 }
│ │ │ │ -244
│ │ │ │ -245 /// @} group exceptions
│ │ │ │ -246} // namespace std
│ │ │ │ -247
│ │ │ │ -248} // extern "C++"
│ │ │ │ -249
│ │ │ │ -250#endif // C++11
│ │ │ │ -251#endif // _GLIBCXX_NESTED_EXCEPTION_H
│ │ │ │ -_e_x_c_e_p_t_i_o_n___p_t_r_._h
│ │ │ │ -_m_o_v_e_._h
│ │ │ │ -_c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ -_s_t_d_:_:_t_r_u_e___t_y_p_e
│ │ │ │ -__bool_constant< true > true_type
│ │ │ │ -The type used as a compile-time boolean with true value.
│ │ │ │ -DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_1_1_9
│ │ │ │ -_s_t_d_:_:_f_a_l_s_e___t_y_p_e
│ │ │ │ -__bool_constant< false > false_type
│ │ │ │ -The type used as a compile-time boolean with false value.
│ │ │ │ -DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_1_2_2
│ │ │ │ -_s_t_d_:_:_f_o_r_w_a_r_d
│ │ │ │ -constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t)
│ │ │ │ -noexcept
│ │ │ │ -Forward an lvalue.
│ │ │ │ -DDeeffiinniittiioonn _m_o_v_e_._h_:_7_2
│ │ │ │ -_s_t_d_:_:_c_u_r_r_e_n_t___e_x_c_e_p_t_i_o_n
│ │ │ │ -exception_ptr current_exception() noexcept
│ │ │ │ -_s_t_d_:_:_r_e_t_h_r_o_w___e_x_c_e_p_t_i_o_n
│ │ │ │ -void rethrow_exception(exception_ptr)
│ │ │ │ -Throw the object pointed to by the exception_ptr.
│ │ │ │ -_s_t_d_:_:_t_e_r_m_i_n_a_t_e
│ │ │ │ -void terminate() noexcept
│ │ │ │ -_s_t_d_:_:_r_e_t_h_r_o_w___i_f___n_e_s_t_e_d
│ │ │ │ -void rethrow_if_nested(const _Ex &__ex)
│ │ │ │ -DDeeffiinniittiioonn _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_._h_:_2_1_6
│ │ │ │ -_s_t_d_:_:_t_h_r_o_w___w_i_t_h___n_e_s_t_e_d
│ │ │ │ -void throw_with_nested(_Tp &&__t)
│ │ │ │ -DDeeffiinniittiioonn _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_._h_:_1_5_6
│ │ │ │ +91 void
│ │ │ │ +92 __throw_overflow_error(const char*) __attribute__((__noreturn__,__cold__));
│ │ │ │ +93
│ │ │ │ +94 void
│ │ │ │ +95 __throw_underflow_error(const char*) __attribute__((__noreturn__,__cold__));
│ │ │ │ +96#endif
│ │ │ │ +97
│ │ │ │ +98#else // ! HOSTED
│ │ │ │ +99
│ │ │ │ +100 __attribute__((__noreturn__)) inline void
│ │ │ │ +101 __throw_invalid_argument(const char*)
│ │ │ │ +102 { std::__terminate(); }
│ │ │ │ +103
│ │ │ │ +104 __attribute__((__noreturn__)) inline void
│ │ │ │ +105 __throw_out_of_range(const char*)
│ │ │ │ +106 { std::__terminate(); }
│ │ │ │ +107
│ │ │ │ +108 __attribute__((__noreturn__)) inline void
│ │ │ │ +109 __throw_out_of_range_fmt(const char*, ...)
│ │ │ │ +110 { std::__terminate(); }
│ │ │ │ +111
│ │ │ │ +112 __attribute__((__noreturn__)) inline void
│ │ │ │ +113 __throw_runtime_error(const char*)
│ │ │ │ +114 { std::__terminate(); }
│ │ │ │ +115
│ │ │ │ +116 __attribute__((__noreturn__)) inline void
│ │ │ │ +117 __throw_overflow_error(const char*)
│ │ │ │ +118 { std::__terminate(); }
│ │ │ │ +119
│ │ │ │ +120#endif // HOSTED
│ │ │ │ +121
│ │ │ │ +122_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ +123} // namespace
│ │ │ │ +124
│ │ │ │ +125#endif
│ │ │ │ +_e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h
│ │ │ │ +_c_+_+_c_o_n_f_i_g_._h
│ │ │ │ _s_t_d
│ │ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ │ -_s_t_d_:_:_i_s___m_o_v_e___c_o_n_s_t_r_u_c_t_i_b_l_e
│ │ │ │ -is_move_constructible
│ │ │ │ -DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_1_3_0_1
│ │ │ │ -_s_t_d_:_:_i_s___b_a_s_e___o_f
│ │ │ │ -is_base_of
│ │ │ │ -DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_1_6_3_9
│ │ │ │ -_s_t_d_:_:_____u_n_s_p_e_c_i_f_i_e_d_____:_:_e_x_c_e_p_t_i_o_n___p_t_r
│ │ │ │ -An opaque pointer to an arbitrary exception.
│ │ │ │ -DDeeffiinniittiioonn _e_x_c_e_p_t_i_o_n___p_t_r_._h_:_1_0_6
│ │ │ │ -_s_t_d_:_:_n_e_s_t_e_d___e_x_c_e_p_t_i_o_n
│ │ │ │ -DDeeffiinniittiioonn _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_._h_:_6_0
│ │ │ │ -_s_t_d_:_:_n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_:_:_r_e_t_h_r_o_w___n_e_s_t_e_d
│ │ │ │ -void rethrow_nested() const
│ │ │ │ -Rethrow the stored exception, or terminate if none was stored.
│ │ │ │ -DDeeffiinniittiioonn _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_._h_:_8_4
│ │ │ │ -_s_t_d_:_:_n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_:_:_n_e_s_t_e_d___p_t_r
│ │ │ │ -exception_ptr nested_ptr() const noexcept
│ │ │ │ -Access the stored exception.
│ │ │ │ -DDeeffiinniittiioonn _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_._h_:_9_3
│ │ │ │ -_s_t_d_:_:_n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_:_:_n_e_s_t_e_d___e_x_c_e_p_t_i_o_n
│ │ │ │ -nested_exception() noexcept
│ │ │ │ -The default constructor stores the current exception (if any).
│ │ │ │ -DDeeffiinniittiioonn _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_._h_:_6_6
│ │ │ │ * bbiittss
│ │ │ │ - * _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_._h
│ │ │ │ + * _s_t_d_e_x_c_e_p_t___t_h_r_o_w_f_w_d_._h
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00356.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: hash_bytes.h File Reference
│ │ │ +libstdc++: chrono.h File Reference
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,47 +48,238 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
Go to the source code of this file.
│ │ │
│ │ │ + |
│ │ │ +| struct | std::common_type< chrono::duration< _Rep, _Period > > |
│ │ │ +| struct | std::common_type< chrono::duration< _Rep, _Period >, chrono::duration< _Rep, _Period > > |
│ │ │ +| struct | std::common_type< chrono::duration< _Rep1, _Period1 >, chrono::duration< _Rep2, _Period2 > > |
│ │ │ +| struct | std::common_type< chrono::time_point< _Clock, _Duration > > |
│ │ │ +| struct | std::common_type< chrono::time_point< _Clock, _Duration >, chrono::time_point< _Clock, _Duration > > |
│ │ │ +| struct | std::common_type< chrono::time_point< _Clock, _Duration1 >, chrono::time_point< _Clock, _Duration2 > > |
│ │ │ +| class | std::chrono::duration< _Rep, _Period > |
│ │ │ +| struct | std::chrono::duration_values< _Rep > |
│ │ │ +| struct | std::chrono::steady_clock |
│ │ │ +| struct | std::chrono::system_clock |
│ │ │ +| class | std::chrono::time_point< _Clock, _Dur > |
│ │ │ +| struct | std::chrono::treat_as_floating_point< _Rep > |
│ │ │ +
│ │ │ |
│ │ │ -|
│ │ │ -size_t | std::_Fnv_hash_bytes (const void *__ptr, size_t __len, size_t __seed) |
│ │ │ -|
│ │ │ -size_t | std::_Hash_bytes (const void *__ptr, size_t __len, size_t __seed) |
│ │ │ +| template<typename _Rep, typename _Period> |
│ │ │ +| constexpr enable_if_t< numeric_limits< _Rep >::is_signed, duration< _Rep, _Period > > | std::chrono::abs (duration< _Rep, _Period > __d) |
│ │ │ +| template<typename _ToDur, typename _Rep, typename _Period> |
│ │ │ +| constexpr __enable_if_is_duration< _ToDur > | std::chrono::__detail::ceil (const duration< _Rep, _Period > &__d) |
│ │ │ +| template<typename _ToDur, typename _Rep, typename _Period> |
│ │ │ +| constexpr __enable_if_is_duration< _ToDur > | std::chrono::ceil (const duration< _Rep, _Period > &__d) |
│ │ │ +| template<typename _ToDur, typename _Clock, typename _Dur> |
│ │ │ +| constexpr enable_if_t< __is_duration_v< _ToDur >, time_point< _Clock, _ToDur > > | std::chrono::ceil (const time_point< _Clock, _Dur > &__tp) |
│ │ │ +| template<typename _ToDur, typename _Rep, typename _Period> |
│ │ │ +| constexpr __enable_if_is_duration< _ToDur > | std::chrono::duration_cast (const duration< _Rep, _Period > &__d) |
│ │ │ +| template<typename _ToDur, typename _Rep, typename _Period> |
│ │ │ +| constexpr __enable_if_is_duration< _ToDur > | std::chrono::floor (const duration< _Rep, _Period > &__d) |
│ │ │ +| template<typename _ToDur, typename _Clock, typename _Dur> |
│ │ │ +| constexpr enable_if_t< __is_duration_v< _ToDur >, time_point< _Clock, _ToDur > > | std::chrono::floor (const time_point< _Clock, _Dur > &__tp) |
│ │ │ +| template<char... _Digits> |
│ │ │ +| constexpr chrono::hours | std::literals::chrono_literals::operator""h () |
│ │ │ +| constexpr chrono::duration< long double, ratio< 3600, 1 > > | std::literals::chrono_literals::operator""h (long double __hours) |
│ │ │ +| template<char... _Digits> |
│ │ │ +| constexpr chrono::minutes | std::literals::chrono_literals::operator""min () |
│ │ │ +| constexpr chrono::duration< long double, ratio< 60, 1 > > | std::literals::chrono_literals::operator""min (long double __mins) |
│ │ │ +| template<char... _Digits> |
│ │ │ +| constexpr chrono::milliseconds | std::literals::chrono_literals::operator""ms () |
│ │ │ +| constexpr chrono::duration< long double, milli > | std::literals::chrono_literals::operator""ms (long double __msecs) |
│ │ │ +| template<char... _Digits> |
│ │ │ +| constexpr chrono::nanoseconds | std::literals::chrono_literals::operator""ns () |
│ │ │ +| constexpr chrono::duration< long double, nano > | std::literals::chrono_literals::operator""ns (long double __nsecs) |
│ │ │ +| template<char... _Digits> |
│ │ │ +| constexpr chrono::seconds | std::literals::chrono_literals::operator""s () |
│ │ │ +| constexpr chrono::duration< long double > | std::literals::chrono_literals::operator""s (long double __secs) |
│ │ │ +| template<char... _Digits> |
│ │ │ +| constexpr chrono::microseconds | std::literals::chrono_literals::operator""us () |
│ │ │ +| constexpr chrono::duration< long double, micro > | std::literals::chrono_literals::operator""us (long double __usecs) |
│ │ │ +| template<typename _ToDur, typename _Rep, typename _Period> |
│ │ │ +| constexpr enable_if_t< __and_< __is_duration< _ToDur >, __not_< treat_as_floating_point< typename _ToDur::rep > > >::value, _ToDur > | std::chrono::round (const duration< _Rep, _Period > &__d) |
│ │ │ +| template<typename _ToDur, typename _Clock, typename _Dur> |
│ │ │ +| constexpr enable_if_t< __is_duration_v< _ToDur > &&!treat_as_floating_point_v< typename _ToDur::rep >, time_point< _Clock, _ToDur > > | std::chrono::round (const time_point< _Clock, _Dur > &__tp) |
│ │ │ +| template<typename _ToDur, typename _Clock, typename _Dur> |
│ │ │ +| constexpr __enable_if_t< __is_duration< _ToDur >::value, time_point< _Clock, _ToDur > > | std::chrono::time_point_cast (const time_point< _Clock, _Dur > &__t) |
│ │ │ +
│ │ │ +| template<typename _Rep1, typename _Period1, typename _Rep2, typename _Period2> |
│ │ │ +| constexpr common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type | std::chrono::operator- (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs) |
│ │ │ +
│ │ │ +| template<typename _Rep1, typename _Period, typename _Rep2> |
│ │ │ +| constexpr duration< __common_rep_t< _Rep1, __disable_if_is_duration< _Rep2 > >, _Period > | std::chrono::operator% (const duration< _Rep1, _Period > &__d, const _Rep2 &__s) |
│ │ │ +| template<typename _Rep1, typename _Period1, typename _Rep2, typename _Period2> |
│ │ │ +| constexpr common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type | std::chrono::operator% (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs) |
│ │ │ +| template<typename _Rep1, typename _Rep2, typename _Period> |
│ │ │ +| constexpr duration< __common_rep_t< _Rep2, _Rep1 >, _Period > | std::chrono::operator* (const _Rep1 &__s, const duration< _Rep2, _Period > &__d) |
│ │ │ +| template<typename _Rep1, typename _Period, typename _Rep2> |
│ │ │ +| constexpr duration< __common_rep_t< _Rep1, __disable_if_is_duration< _Rep2 > >, _Period > | std::chrono::operator/ (const duration< _Rep1, _Period > &__d, const _Rep2 &__s) |
│ │ │ +| template<typename _Rep1, typename _Period1, typename _Rep2, typename _Period2> |
│ │ │ +| constexpr common_type< _Rep1, _Rep2 >::type | std::chrono::operator/ (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs) |
│ │ │ +
│ │ │ +| template<typename _Rep1, typename _Period1, typename _Rep2, typename _Period2> |
│ │ │ +| constexpr bool | std::chrono::operator< (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs) |
│ │ │ +| template<typename _Rep1, typename _Period1, typename _Rep2, typename _Period2> |
│ │ │ +| constexpr bool | std::chrono::operator<= (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs) |
│ │ │ +template<typename _Rep1, typename _Period1, typename _Rep2, typename _Period2>
│ │ │ +requires three_way_comparable<common_type_t<_Rep1, _Rep2>> |
│ │ │ +| constexpr auto | std::chrono::operator<=> (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs) |
│ │ │ +| template<typename _Rep1, typename _Period1, typename _Rep2, typename _Period2> |
│ │ │ +| constexpr bool | std::chrono::operator> (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs) |
│ │ │ +| template<typename _Rep1, typename _Period1, typename _Rep2, typename _Period2> |
│ │ │ +| constexpr bool | std::chrono::operator>= (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs) |
│ │ │ +
│ │ │ +| template<typename _Rep1, typename _Period1, typename _Clock, typename _Dur2> |
│ │ │ +| constexpr time_point< _Clock, typename common_type< duration< _Rep1, _Period1 >, _Dur2 >::type > | std::chrono::operator+ (const duration< _Rep1, _Period1 > &__lhs, const time_point< _Clock, _Dur2 > &__rhs) |
│ │ │ +| template<typename _Clock, typename _Dur1, typename _Rep2, typename _Period2> |
│ │ │ +| constexpr time_point< _Clock, typename common_type< _Dur1, duration< _Rep2, _Period2 > >::type > | std::chrono::operator- (const time_point< _Clock, _Dur1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs) |
│ │ │ +| template<typename _Clock, typename _Dur1, typename _Dur2> |
│ │ │ +| constexpr common_type< _Dur1, _Dur2 >::type | std::chrono::operator- (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock, _Dur2 > &__rhs) |
│ │ │ +
│ │ │ +| template<typename _Clock, typename _Dur1, typename _Dur2> |
│ │ │ +| constexpr bool | std::chrono::operator< (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock, _Dur2 > &__rhs) |
│ │ │ +| template<typename _Clock, typename _Dur1, typename _Dur2> |
│ │ │ +| constexpr bool | std::chrono::operator<= (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock, _Dur2 > &__rhs) |
│ │ │ +| template<typename _Clock, typename _Dur1, three_way_comparable_with< _Dur1 > _Dur2> |
│ │ │ +| constexpr auto | std::chrono::operator<=> (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock, _Dur2 > &__rhs) |
│ │ │ +| template<typename _Clock, typename _Dur1, typename _Dur2> |
│ │ │ +| constexpr bool | std::chrono::operator> (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock, _Dur2 > &__rhs) |
│ │ │ +| template<typename _Clock, typename _Dur1, typename _Dur2> |
│ │ │ +| constexpr bool | std::chrono::operator>= (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock, _Dur2 > &__rhs) |
│ │ │ +
│ │ │
│ │ │ -
This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <functional>.
│ │ │ +
This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <chrono>.
│ │ │ +
│ │ │ +
Definition in file chrono.h.
│ │ │ +
│ │ │ +
│ │ │ +
◆ ceil()
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +template<typename _ToDur, typename _Rep, typename _Period>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + | __enable_if_is_duration< _ToDur > std::chrono::ceil |
│ │ │ + ( |
│ │ │ + const duration< _Rep, _Period > & | __d | ) |
│ │ │ + |
│ │ │ +
│ │ │ +
│ │ │ + |
│ │ │ +
│ │ │ +nodiscardconstexpr |
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
Convert a duration to type ToDur and round up.
│ │ │ +
If the duration cannot be represented exactly in the result type, returns the closest value that is greater than the argument.
│ │ │ +
- Template Parameters
-
│ │ │ +
│ │ │ + | _ToDur | The result type must be a duration. |
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
- Parameters
-
│ │ │ +
│ │ │ + | __d | A duration. |
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
- Returns
- The value of __d converted to type _ToDur.
│ │ │ +
- Since
- C++17
│ │ │ +
│ │ │ +
Definition at line 412 of file chrono.h.
│ │ │
│ │ │ -
Definition in file hash_bytes.h.
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,15 +1,252 @@
│ │ │ │ libstdc++
│ │ │ │ -hash_bytes.h File Reference
│ │ │ │ +chrono.h File Reference
│ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_.
│ │ │ │ +CCllaasssseess
│ │ │ │ +struct _s_t_d_:_:_c_o_m_m_o_n___t_y_p_e_<_ _c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n_<_ ___R_e_p_,_ ___P_e_r_i_o_d_ _>_ _>
│ │ │ │ +struct _s_t_d_:_:_c_o_m_m_o_n___t_y_p_e_<_ _c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n_<_ ___R_e_p_,_ ___P_e_r_i_o_d_ _>_,_ _c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n_<
│ │ │ │ + ___R_e_p_,_ ___P_e_r_i_o_d_ _>_ _>
│ │ │ │ +struct _s_t_d_:_:_c_o_m_m_o_n___t_y_p_e_<_ _c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n_<_ ___R_e_p_1_,_ ___P_e_r_i_o_d_1_ _>_,_ _c_h_r_o_n_o_:_:
│ │ │ │ + _d_u_r_a_t_i_o_n_<_ ___R_e_p_2_,_ ___P_e_r_i_o_d_2_ _>_ _>
│ │ │ │ +struct _s_t_d_:_:_c_o_m_m_o_n___t_y_p_e_<_ _c_h_r_o_n_o_:_:_t_i_m_e___p_o_i_n_t_<_ ___C_l_o_c_k_,_ ___D_u_r_a_t_i_o_n_ _>_ _>
│ │ │ │ +struct _s_t_d_:_:_c_o_m_m_o_n___t_y_p_e_<_ _c_h_r_o_n_o_:_:_t_i_m_e___p_o_i_n_t_<_ ___C_l_o_c_k_,_ ___D_u_r_a_t_i_o_n_ _>_,_ _c_h_r_o_n_o_:_:
│ │ │ │ + _t_i_m_e___p_o_i_n_t_<_ ___C_l_o_c_k_,_ ___D_u_r_a_t_i_o_n_ _>_ _>
│ │ │ │ +struct _s_t_d_:_:_c_o_m_m_o_n___t_y_p_e_<_ _c_h_r_o_n_o_:_:_t_i_m_e___p_o_i_n_t_<_ ___C_l_o_c_k_,_ ___D_u_r_a_t_i_o_n_1_ _>_,_ _c_h_r_o_n_o_:_:
│ │ │ │ + _t_i_m_e___p_o_i_n_t_<_ ___C_l_o_c_k_,_ ___D_u_r_a_t_i_o_n_2_ _>_ _>
│ │ │ │ + class _s_t_d_:_:_c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n_<_ ___R_e_p_,_ ___P_e_r_i_o_d_ _>
│ │ │ │ +struct _s_t_d_:_:_c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n___v_a_l_u_e_s_<_ ___R_e_p_ _>
│ │ │ │ +struct _s_t_d_:_:_c_h_r_o_n_o_:_:_s_t_e_a_d_y___c_l_o_c_k
│ │ │ │ +struct _s_t_d_:_:_c_h_r_o_n_o_:_:_s_y_s_t_e_m___c_l_o_c_k
│ │ │ │ + class _s_t_d_:_:_c_h_r_o_n_o_:_:_t_i_m_e___p_o_i_n_t_<_ ___C_l_o_c_k_,_ ___D_u_r_ _>
│ │ │ │ +struct _s_t_d_:_:_c_h_r_o_n_o_:_:_t_r_e_a_t___a_s___f_l_o_a_t_i_n_g___p_o_i_n_t_<_ ___R_e_p_ _>
│ │ │ │ NNaammeessppaacceess
│ │ │ │ namespace _s_t_d
│ │ │ │ +namespace _s_t_d_:_:_c_h_r_o_n_o
│ │ │ │ +namespace _s_t_d_:_:_f_i_l_e_s_y_s_t_e_m
│ │ │ │ +namespace _s_t_d_:_:_l_i_t_e_r_a_l_s
│ │ │ │ +namespace _s_t_d_:_:_l_i_t_e_r_a_l_s_:_:_c_h_r_o_n_o___l_i_t_e_r_a_l_s
│ │ │ │ +TTyyppeeddeeffss
│ │ │ │ +using _s_t_d_:_:_c_h_r_o_n_o_:_:_d_a_y_s
│ │ │ │ +using _s_t_d_:_:_c_h_r_o_n_o_:_:_f_i_l_e___c_l_o_c_k
│ │ │ │ +template
│ │ │ │ +using _s_t_d_:_:_c_h_r_o_n_o_:_:_f_i_l_e___t_i_m_e
│ │ │ │ +using _s_t_d_:_:_c_h_r_o_n_o_:_:_h_i_g_h___r_e_s_o_l_u_t_i_o_n___c_l_o_c_k
│ │ │ │ +using _s_t_d_:_:_c_h_r_o_n_o_:_:_h_o_u_r_s
│ │ │ │ +using _s_t_d_:_:_c_h_r_o_n_o_:_:_m_i_c_r_o_s_e_c_o_n_d_s
│ │ │ │ +using _s_t_d_:_:_c_h_r_o_n_o_:_:_m_i_l_l_i_s_e_c_o_n_d_s
│ │ │ │ +using _s_t_d_:_:_c_h_r_o_n_o_:_:_m_i_n_u_t_e_s
│ │ │ │ +using _s_t_d_:_:_c_h_r_o_n_o_:_:_m_o_n_t_h_s
│ │ │ │ +using _s_t_d_:_:_c_h_r_o_n_o_:_:_n_a_n_o_s_e_c_o_n_d_s
│ │ │ │ +using _s_t_d_:_:_c_h_r_o_n_o_:_:_s_e_c_o_n_d_s
│ │ │ │ +using _s_t_d_:_:_c_h_r_o_n_o_:_:_s_y_s___d_a_y_s
│ │ │ │ +using _s_t_d_:_:_c_h_r_o_n_o_:_:_s_y_s___s_e_c_o_n_d_s
│ │ │ │ +template
│ │ │ │ +using _s_t_d_:_:_c_h_r_o_n_o_:_:_s_y_s___t_i_m_e
│ │ │ │ +using _s_t_d_:_:_c_h_r_o_n_o_:_:_w_e_e_k_s
│ │ │ │ +using _s_t_d_:_:_c_h_r_o_n_o_:_:_y_e_a_r_s
│ │ │ │ FFuunnccttiioonnss
│ │ │ │ -size_t ssttdd::::__FFnnvv__hhaasshh__bbyytteess (const void *__ptr, size_t __len, size_t __seed)
│ │ │ │ -size_t ssttdd::::__HHaasshh__bbyytteess (const void *__ptr, size_t __len, size_t __seed)
│ │ │ │ +template
│ │ │ │ + constexpr _e_n_a_b_l_e___i_f___t< _n_u_m_e_r_i_c___l_i_m_i_t_s<
│ │ │ │ + _Rep >_:_:_i_s___s_i_g_n_e_d, _d_u_r_a_t_i_o_n< _Rep, _s_t_d_:_:_c_h_r_o_n_o_:_:_a_b_s (_d_u_r_a_t_i_o_n< _Rep,
│ │ │ │ + _Period > > _Period > __d)
│ │ │ │ +template
│ │ │ │ + constexpr __enable_if_is_duration< _s_t_d_:_:_c_h_r_o_n_o_:_:_____d_e_t_a_i_l_:_:_c_e_i_l (const
│ │ │ │ + _ToDur > _d_u_r_a_t_i_o_n< _Rep, _Period > &__d)
│ │ │ │ +template
│ │ │ │ + constexpr __enable_if_is_duration< _s_t_d_:_:_c_h_r_o_n_o_:_:_c_e_i_l (const _d_u_r_a_t_i_o_n<
│ │ │ │ + _ToDur > _Rep, _Period > &__d)
│ │ │ │ +template
│ │ │ │ +constexpr _e_n_a_b_l_e___i_f___t< __is_duration_v<
│ │ │ │ + _ToDur >, _t_i_m_e___p_o_i_n_t< _Clock, _ToDur > _s_t_d_:_:_c_h_r_o_n_o_:_:_c_e_i_l (const _t_i_m_e___p_o_i_n_t<
│ │ │ │ + > _Clock, _Dur > &__tp)
│ │ │ │ +template
│ │ │ │ + constexpr __enable_if_is_duration< _s_t_d_:_:_c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n___c_a_s_t (const
│ │ │ │ + _ToDur > _d_u_r_a_t_i_o_n< _Rep, _Period > &__d)
│ │ │ │ +template
│ │ │ │ + constexpr __enable_if_is_duration< _s_t_d_:_:_c_h_r_o_n_o_:_:_f_l_o_o_r (const _d_u_r_a_t_i_o_n<
│ │ │ │ + _ToDur > _Rep, _Period > &__d)
│ │ │ │ +template
│ │ │ │ +constexpr _e_n_a_b_l_e___i_f___t< __is_duration_v<
│ │ │ │ + _ToDur >, _t_i_m_e___p_o_i_n_t< _Clock, _ToDur > _s_t_d_:_:_c_h_r_o_n_o_:_:_f_l_o_o_r (const _t_i_m_e___p_o_i_n_t<
│ │ │ │ + > _Clock, _Dur > &__tp)
│ │ │ │ +template
│ │ │ │ + constexpr _c_h_r_o_n_o_:_:_h_o_u_r_s _s_t_d_:_:_l_i_t_e_r_a_l_s_:_:_c_h_r_o_n_o___l_i_t_e_r_a_l_s_:_:
│ │ │ │ + _o_p_e_r_a_t_o_r_"_"_h ()
│ │ │ │ + constexpr _c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n< long _s_t_d_:_:_l_i_t_e_r_a_l_s_:_:_c_h_r_o_n_o___l_i_t_e_r_a_l_s_:_:
│ │ │ │ + double, _r_a_t_i_o< 3600, 1 > > _o_p_e_r_a_t_o_r_"_"_h (long double __hours)
│ │ │ │ +template
│ │ │ │ + constexpr _c_h_r_o_n_o_:_:_m_i_n_u_t_e_s _s_t_d_:_:_l_i_t_e_r_a_l_s_:_:_c_h_r_o_n_o___l_i_t_e_r_a_l_s_:_:
│ │ │ │ + _o_p_e_r_a_t_o_r_"_"_m_i_n ()
│ │ │ │ + constexpr _c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n< long _s_t_d_:_:_l_i_t_e_r_a_l_s_:_:_c_h_r_o_n_o___l_i_t_e_r_a_l_s_:_:
│ │ │ │ + double, _r_a_t_i_o< 60, 1 > > _o_p_e_r_a_t_o_r_"_"_m_i_n (long double __mins)
│ │ │ │ +template
│ │ │ │ + constexpr _c_h_r_o_n_o_:_:_m_i_l_l_i_s_e_c_o_n_d_s _s_t_d_:_:_l_i_t_e_r_a_l_s_:_:_c_h_r_o_n_o___l_i_t_e_r_a_l_s_:_:
│ │ │ │ + _o_p_e_r_a_t_o_r_"_"_m_s ()
│ │ │ │ + constexpr _c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n< long _s_t_d_:_:_l_i_t_e_r_a_l_s_:_:_c_h_r_o_n_o___l_i_t_e_r_a_l_s_:_:
│ │ │ │ + double, milli > _o_p_e_r_a_t_o_r_"_"_m_s (long double __msecs)
│ │ │ │ +template
│ │ │ │ + constexpr _c_h_r_o_n_o_:_:_n_a_n_o_s_e_c_o_n_d_s _s_t_d_:_:_l_i_t_e_r_a_l_s_:_:_c_h_r_o_n_o___l_i_t_e_r_a_l_s_:_:
│ │ │ │ + _o_p_e_r_a_t_o_r_"_"_n_s ()
│ │ │ │ + constexpr _c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n< long _s_t_d_:_:_l_i_t_e_r_a_l_s_:_:_c_h_r_o_n_o___l_i_t_e_r_a_l_s_:_:
│ │ │ │ + double, nano > _o_p_e_r_a_t_o_r_"_"_n_s (long double __nsecs)
│ │ │ │ +template
│ │ │ │ + constexpr _c_h_r_o_n_o_:_:_s_e_c_o_n_d_s _s_t_d_:_:_l_i_t_e_r_a_l_s_:_:_c_h_r_o_n_o___l_i_t_e_r_a_l_s_:_:
│ │ │ │ + _o_p_e_r_a_t_o_r_"_"_s ()
│ │ │ │ +constexpr _c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n< long double _s_t_d_:_:_l_i_t_e_r_a_l_s_:_:_c_h_r_o_n_o___l_i_t_e_r_a_l_s_:_:
│ │ │ │ + > _o_p_e_r_a_t_o_r_"_"_s (long double __secs)
│ │ │ │ +template
│ │ │ │ + constexpr _c_h_r_o_n_o_:_:_m_i_c_r_o_s_e_c_o_n_d_s _s_t_d_:_:_l_i_t_e_r_a_l_s_:_:_c_h_r_o_n_o___l_i_t_e_r_a_l_s_:_:
│ │ │ │ + _o_p_e_r_a_t_o_r_"_"_u_s ()
│ │ │ │ + constexpr _c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n< long _s_t_d_:_:_l_i_t_e_r_a_l_s_:_:_c_h_r_o_n_o___l_i_t_e_r_a_l_s_:_:
│ │ │ │ + double, micro > _o_p_e_r_a_t_o_r_"_"_u_s (long double __usecs)
│ │ │ │ +template
│ │ │ │ + constexpr _e_n_a_b_l_e___i_f___t< __and_<
│ │ │ │ + __is_duration< _ToDur >, __not_<
│ │ │ │ + _t_r_e_a_t___a_s___f_l_o_a_t_i_n_g___p_o_i_n_t< typename _s_t_d_:_:_c_h_r_o_n_o_:_:_r_o_u_n_d (const _d_u_r_a_t_i_o_n<
│ │ │ │ + _ToDur::rep > > >::value, _ToDur > _Rep, _Period > &__d)
│ │ │ │ +template
│ │ │ │ +constexpr _e_n_a_b_l_e___i_f___t< __is_duration_v<
│ │ │ │ + _ToDur > &&!treat_as_floating_point_v<
│ │ │ │ + typename _ToDur::rep >, _t_i_m_e___p_o_i_n_t< _s_t_d_:_:_c_h_r_o_n_o_:_:_r_o_u_n_d (const _t_i_m_e___p_o_i_n_t<
│ │ │ │ + _Clock, _ToDur > > _Clock, _Dur > &__tp)
│ │ │ │ +template
│ │ │ │ +constexpr __enable_if_t< __is_duration<
│ │ │ │ + _ToDur >::value, _t_i_m_e___p_o_i_n_t< _Clock, _s_t_d_:_:_c_h_r_o_n_o_:_:_t_i_m_e___p_o_i_n_t___c_a_s_t (const
│ │ │ │ + _ToDur > > _t_i_m_e___p_o_i_n_t< _Clock, _Dur > &__t)
│ │ │ │ +template
│ │ │ │ +constexpr _c_o_m_m_o_n___t_y_p_e< _d_u_r_a_t_i_o_n< _Rep1, _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_- (const _d_u_r_a_t_i_o_n<
│ │ │ │ +_Period1 >, _d_u_r_a_t_i_o_n< _Rep2, _Period2 > _Rep1, _Period1 > &__lhs, const
│ │ │ │ + >_:_:_t_y_p_e _d_u_r_a_t_i_o_n< _Rep2, _Period2 > &__rhs)
│ │ │ │ +template
│ │ │ │ + constexpr _d_u_r_a_t_i_o_n< __common_rep_t< _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_% (const _d_u_r_a_t_i_o_n<
│ │ │ │ + _Rep1, __disable_if_is_duration< _Rep2 _Rep1, _Period > &__d, const _Rep2
│ │ │ │ + > >, _Period > &__s)
│ │ │ │ +template
│ │ │ │ +constexpr _c_o_m_m_o_n___t_y_p_e< _d_u_r_a_t_i_o_n< _Rep1, _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_% (const _d_u_r_a_t_i_o_n<
│ │ │ │ +_Period1 >, _d_u_r_a_t_i_o_n< _Rep2, _Period2 > _Rep1, _Period1 > &__lhs, const
│ │ │ │ + >_:_:_t_y_p_e _d_u_r_a_t_i_o_n< _Rep2, _Period2 > &__rhs)
│ │ │ │ +template
│ │ │ │ + constexpr _d_u_r_a_t_i_o_n< __common_rep_t< _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_* (const _Rep1
│ │ │ │ + _Rep2, _Rep1 >, _Period > &__s, const _d_u_r_a_t_i_o_n< _Rep2, _Period >
│ │ │ │ + &__d)
│ │ │ │ +template
│ │ │ │ + constexpr _d_u_r_a_t_i_o_n< __common_rep_t< _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_/ (const _d_u_r_a_t_i_o_n<
│ │ │ │ + _Rep1, __disable_if_is_duration< _Rep2 _Rep1, _Period > &__d, const _Rep2
│ │ │ │ + > >, _Period > &__s)
│ │ │ │ +template
│ │ │ │ +constexpr _c_o_m_m_o_n___t_y_p_e< _Rep1, _Rep2 >_:_: _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_/ (const _d_u_r_a_t_i_o_n<
│ │ │ │ + _t_y_p_e _Rep1, _Period1 > &__lhs, const
│ │ │ │ + _d_u_r_a_t_i_o_n< _Rep2, _Period2 > &__rhs)
│ │ │ │ +template
│ │ │ │ + constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_< (const _d_u_r_a_t_i_o_n<
│ │ │ │ + _Rep1, _Period1 > &__lhs, const
│ │ │ │ + _d_u_r_a_t_i_o_n< _Rep2, _Period2 > &__rhs)
│ │ │ │ +template
│ │ │ │ + constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_<_= (const
│ │ │ │ + _d_u_r_a_t_i_o_n< _Rep1, _Period1 > &__lhs,
│ │ │ │ + const _d_u_r_a_t_i_o_n< _Rep2, _Period2 >
│ │ │ │ + &__rhs)
│ │ │ │ +template
│ │ │ │ +requires three_way_comparable<_c_o_m_m_o_n___t_y_p_e___t<_Rep1, _Rep2>>
│ │ │ │ + constexpr auto _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_<_=_> (const
│ │ │ │ + _d_u_r_a_t_i_o_n< _Rep1, _Period1 > &__lhs,
│ │ │ │ + const _d_u_r_a_t_i_o_n< _Rep2, _Period2 >
│ │ │ │ + &__rhs)
│ │ │ │ +template
│ │ │ │ + constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_> (const _d_u_r_a_t_i_o_n<
│ │ │ │ + _Rep1, _Period1 > &__lhs, const
│ │ │ │ + _d_u_r_a_t_i_o_n< _Rep2, _Period2 > &__rhs)
│ │ │ │ +template
│ │ │ │ + constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_>_= (const
│ │ │ │ + _d_u_r_a_t_i_o_n< _Rep1, _Period1 > &__lhs,
│ │ │ │ + const _d_u_r_a_t_i_o_n< _Rep2, _Period2 >
│ │ │ │ + &__rhs)
│ │ │ │ +template
│ │ │ │ + constexpr _t_i_m_e___p_o_i_n_t< _Clock, typename _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_+ (const _d_u_r_a_t_i_o_n<
│ │ │ │ + _c_o_m_m_o_n___t_y_p_e< _d_u_r_a_t_i_o_n< _Rep1, _Period1 _Rep1, _Period1 > &__lhs, const
│ │ │ │ + >, _Dur2 >_:_:_t_y_p_e > _t_i_m_e___p_o_i_n_t< _Clock, _Dur2 > &__rhs)
│ │ │ │ +template
│ │ │ │ + constexpr _t_i_m_e___p_o_i_n_t< _Clock, typename _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_- (const
│ │ │ │ + _c_o_m_m_o_n___t_y_p_e< _Dur1, _d_u_r_a_t_i_o_n< _Rep2, _t_i_m_e___p_o_i_n_t< _Clock, _Dur1 > &__lhs,
│ │ │ │ + _Period2 > >_:_:_t_y_p_e > const _d_u_r_a_t_i_o_n< _Rep2, _Period2 >
│ │ │ │ + &__rhs)
│ │ │ │ +template
│ │ │ │ +constexpr _c_o_m_m_o_n___t_y_p_e< _Dur1, _Dur2 >_:_: _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_- (const
│ │ │ │ + _t_y_p_e _t_i_m_e___p_o_i_n_t< _Clock, _Dur1 > &__lhs,
│ │ │ │ + const _t_i_m_e___p_o_i_n_t< _Clock, _Dur2 >
│ │ │ │ + &__rhs)
│ │ │ │ +template
│ │ │ │ + constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_< (const
│ │ │ │ + _t_i_m_e___p_o_i_n_t< _Clock, _Dur1 > &__lhs,
│ │ │ │ + const _t_i_m_e___p_o_i_n_t< _Clock, _Dur2 >
│ │ │ │ + &__rhs)
│ │ │ │ +template
│ │ │ │ + constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_<_= (const
│ │ │ │ + _t_i_m_e___p_o_i_n_t< _Clock, _Dur1 > &__lhs,
│ │ │ │ + const _t_i_m_e___p_o_i_n_t< _Clock, _Dur2 >
│ │ │ │ + &__rhs)
│ │ │ │ +template
│ │ │ │ +_Dur2>
│ │ │ │ + constexpr auto _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_<_=_> (const
│ │ │ │ + _t_i_m_e___p_o_i_n_t< _Clock, _Dur1 > &__lhs,
│ │ │ │ + const _t_i_m_e___p_o_i_n_t< _Clock, _Dur2 >
│ │ │ │ + &__rhs)
│ │ │ │ +template
│ │ │ │ + constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_> (const
│ │ │ │ + _t_i_m_e___p_o_i_n_t< _Clock, _Dur1 > &__lhs,
│ │ │ │ + const _t_i_m_e___p_o_i_n_t< _Clock, _Dur2 >
│ │ │ │ + &__rhs)
│ │ │ │ +template
│ │ │ │ + constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_>_= (const
│ │ │ │ + _t_i_m_e___p_o_i_n_t< _Clock, _Dur1 > &__lhs,
│ │ │ │ + const _t_i_m_e___p_o_i_n_t< _Clock, _Dur2 >
│ │ │ │ + &__rhs)
│ │ │ │ +VVaarriiaabblleess
│ │ │ │ +template
│ │ │ │ +constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_i_s___c_l_o_c_k___v
│ │ │ │ +template
│ │ │ │ +constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_i_s___c_l_o_c_k___v_<_ ___T_p_ _>
│ │ │ │ + template<>
│ │ │ │ +constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_i_s___c_l_o_c_k___v_<_ _f_i_l_e___c_l_o_c_k_ _>
│ │ │ │ + template<>
│ │ │ │ +constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_i_s___c_l_o_c_k___v_<_ _s_t_e_a_d_y___c_l_o_c_k_ _>
│ │ │ │ + template<>
│ │ │ │ +constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_i_s___c_l_o_c_k___v_<_ _s_y_s_t_e_m___c_l_o_c_k_ _>
│ │ │ │ +template
│ │ │ │ +constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_t_r_e_a_t___a_s___f_l_o_a_t_i_n_g___p_o_i_n_t___v
│ │ │ │ + template<>
│ │ │ │ +constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_t_r_e_a_t___a_s___f_l_o_a_t_i_n_g___p_o_i_n_t___v_<_ _d_o_u_b_l_e_ _>
│ │ │ │ + template<>
│ │ │ │ +constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_t_r_e_a_t___a_s___f_l_o_a_t_i_n_g___p_o_i_n_t___v_<_ _f_l_o_a_t_ _>
│ │ │ │ + template<>
│ │ │ │ +constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_t_r_e_a_t___a_s___f_l_o_a_t_i_n_g___p_o_i_n_t___v_<_ _i_n_t_ _>
│ │ │ │ + template<>
│ │ │ │ +constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_t_r_e_a_t___a_s___f_l_o_a_t_i_n_g___p_o_i_n_t___v_<_ _l_o_n_g_ _>
│ │ │ │ + template<>
│ │ │ │ +constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_t_r_e_a_t___a_s___f_l_o_a_t_i_n_g___p_o_i_n_t___v_<_ _l_o_n_g_ _d_o_u_b_l_e_ _>
│ │ │ │ + template<>
│ │ │ │ +constexpr bool _s_t_d_:_:_c_h_r_o_n_o_:_:_t_r_e_a_t___a_s___f_l_o_a_t_i_n_g___p_o_i_n_t___v_<_ _l_o_n_g_ _l_o_n_g_ _>
│ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn **********
│ │ │ │ This is an internal header file, included by other library headers. Do not
│ │ │ │ -attempt to use it directly. Instead, include .
│ │ │ │ -Definition in file _h_a_s_h___b_y_t_e_s_._h.
│ │ │ │ +attempt to use it directly. Instead, include .
│ │ │ │ +Definition in file _c_h_r_o_n_o_._h.
│ │ │ │ +********** FFuunnccttiioonn DDooccuummeennttaattiioonn **********
│ │ │ │ +********** _?◆_? cceeiill(()) **********
│ │ │ │ +template
│ │ │ │ +__enable_if_is_duration< const _d_u_r_a_t_i_o_n< _Rep,
│ │ │ │ +_ToDur > _s_t_d_:_:_c_h_r_o_n_o_:_: ( _Period > & ____dd ) nodiscardconstexpr
│ │ │ │ +_c_e_i_l
│ │ │ │ +Convert a duration to type ToDur and round up.
│ │ │ │ +If the duration cannot be represented exactly in the result type, returns the
│ │ │ │ +closest value that is greater than the argument.
│ │ │ │ + Template Parameters
│ │ │ │ + _ToDur The result type must be a duration.
│ │ │ │ + Parameters
│ │ │ │ + __d A duration.
│ │ │ │ + Returns
│ │ │ │ + The value of __d converted to type _ToDur.
│ │ │ │ + Since
│ │ │ │ + C++17
│ │ │ │ +Definition at line _4_1_2 of file _c_h_r_o_n_o_._h.
│ │ │ │ * bbiittss
│ │ │ │ - * _h_a_s_h___b_y_t_e_s_._h
│ │ │ │ + * _c_h_r_o_n_o_._h
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-16-base/libstdc++/user/a00356_source.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: hash_bytes.h Source File
│ │ │ +libstdc++: chrono.h Source File
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,20 +48,20 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
Go to the documentation of this file.
│ │ │ +
Go to the documentation of this file.
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -75,58 +75,1762 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ -
31#define _HASH_BYTES_H 1
│ │ │ +
30#ifndef _GLIBCXX_CHRONO_H
│ │ │ +
31#define _GLIBCXX_CHRONO_H 1
│ │ │
│ │ │
│ │ │
34#pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
37#if __cplusplus >= 201103L
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
41_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
49 _Hash_bytes(
const void* __ptr,
size_t __len,
size_t __seed);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
46#if __cplusplus >= 202002L
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
56 _Fnv_hash_bytes(
const void* __ptr,
size_t __len,
size_t __seed);
│ │ │ -
│ │ │ -
58_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
53namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ +
│ │ │ +
55_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
57#if __cplusplus >= 201703L && _GLIBCXX_HOSTED
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
67 template<
typename _Rep,
typename _Period = ratio<1>>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
71 template<
typename _Clock,
typename _Dur =
typename _Clock::duration>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
83 template<
typename _CT,
typename _Period1,
typename _Period2,
typename =
void>
│ │ │ +
84 struct __duration_common_type
│ │ │ +
│ │ │ +
│ │ │ +
87 template<
typename _CT,
typename _Period1,
typename _Period2>
│ │ │ +
88 struct __duration_common_type<_CT, _Period1, _Period2,
│ │ │ +
89 __void_t<typename _CT::
type>>
│ │ │ +
│ │ │ +
│ │ │ +
92 using __gcd_num = __static_gcd<_Period1::num, _Period2::num>;
│ │ │ +
93 using __gcd_den = __static_gcd<_Period1::den, _Period2::den>;
│ │ │ +
94 using __cr =
typename _CT::type;
│ │ │ +
95 using __r = ratio<__gcd_num::value,
│ │ │ +
96 (_Period1::den / __gcd_den::value) * _Period2::den>;
│ │ │ +
│ │ │ +
│ │ │ +
99 using type = chrono::duration<__cr, typename __r::type>;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
108 template<
typename _Rep1,
typename _Period1,
typename _Rep2,
typename _Period2>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
111 : __duration_common_type<common_type<_Rep1, _Rep2>,
│ │ │ +
112 typename _Period1::type,
│ │ │ +
113 typename _Period2::type>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
117 template<
typename _Rep,
typename _Period>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
122 typename _Period::type>;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
126 template<
typename _Rep,
typename _Period>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
130 typename _Period::type>;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
138 template<
typename _CT,
typename _Clock,
typename =
void>
│ │ │ +
139 struct __timepoint_common_type
│ │ │ +
│ │ │ +
│ │ │ +
142 template<
typename _CT,
typename _Clock>
│ │ │ +
143 struct __timepoint_common_type<_CT, _Clock, __void_t<typename _CT::type>>
│ │ │ +
│ │ │ +
145 using type = chrono::time_point<_Clock, typename _CT::type>;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
154 template<
typename _Clock,
typename _Duration1,
typename _Duration2>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
157 : __timepoint_common_type<common_type<_Duration1, _Duration2>, _Clock>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
161 template<
typename _Clock,
typename _Duration>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
167 template<
typename _Clock,
typename _Duration>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
182 template<
typename _ToDur,
typename _CF,
typename _CR,
│ │ │ +
183 bool _NumIsOne =
false,
bool _DenIsOne =
false>
│ │ │ +
184 struct __duration_cast_impl
│ │ │ +
│ │ │ +
186 template<
typename _Rep,
typename _Period>
│ │ │ +
187 static constexpr _ToDur
│ │ │ +
188 __cast(
const duration<_Rep, _Period>& __d)
│ │ │ +
│ │ │ +
190 typedef typename _ToDur::rep __to_rep;
│ │ │ +
191 return _ToDur(
static_cast<__to_rep
>(
static_cast<_CR
>(__d.count())
│ │ │ +
192 *
static_cast<_CR
>(_CF::num)
│ │ │ +
193 /
static_cast<_CR
>(_CF::den)));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
197 template<
typename _ToDur,
typename _CF,
typename _CR>
│ │ │ +
198 struct __duration_cast_impl<_ToDur, _CF, _CR, true, true>
│ │ │ +
│ │ │ +
200 template<
typename _Rep,
typename _Period>
│ │ │ +
201 static constexpr _ToDur
│ │ │ +
202 __cast(
const duration<_Rep, _Period>& __d)
│ │ │ +
│ │ │ +
204 typedef typename _ToDur::rep __to_rep;
│ │ │ +
205 return _ToDur(
static_cast<__to_rep
>(__d.count()));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
209 template<
typename _ToDur,
typename _CF,
typename _CR>
│ │ │ +
210 struct __duration_cast_impl<_ToDur, _CF, _CR, true, false>
│ │ │ +
│ │ │ +
212 template<
typename _Rep,
typename _Period>
│ │ │ +
213 static constexpr _ToDur
│ │ │ +
214 __cast(
const duration<_Rep, _Period>& __d)
│ │ │ +
│ │ │ +
216 typedef typename _ToDur::rep __to_rep;
│ │ │ +
217 return _ToDur(
static_cast<__to_rep
>(
│ │ │ +
218 static_cast<_CR
>(__d.count()) /
static_cast<_CR
>(_CF::den)));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
222 template<
typename _ToDur,
typename _CF,
typename _CR>
│ │ │ +
223 struct __duration_cast_impl<_ToDur, _CF, _CR, false, true>
│ │ │ +
│ │ │ +
225 template<
typename _Rep,
typename _Period>
│ │ │ +
226 static constexpr _ToDur
│ │ │ +
227 __cast(
const duration<_Rep, _Period>& __d)
│ │ │ +
│ │ │ +
229 typedef typename _ToDur::rep __to_rep;
│ │ │ +
230 return _ToDur(
static_cast<__to_rep
>(
│ │ │ +
231 static_cast<_CR
>(__d.count()) *
static_cast<_CR
>(_CF::num)));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
235 template<
typename _Tp>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
240 template<
typename _Rep,
typename _Period>
│ │ │ +
241 struct __is_duration<
duration<_Rep, _Period>>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
245 template<
typename _Tp>
│ │ │ +
246 using __enable_if_is_duration
│ │ │ +
247 =
typename enable_if<__is_duration<_Tp>::value, _Tp>::type;
│ │ │ +
│ │ │ +
249 template<
typename _Tp>
│ │ │ +
250 using __disable_if_is_duration
│ │ │ +
251 =
typename enable_if<!__is_duration<_Tp>::value, _Tp>::type;
│ │ │ +
│ │ │ +
253#if __cplusplus >= 201703L
│ │ │ +
254 template<
typename _Tp>
│ │ │ +
255 inline constexpr bool __is_duration_v =
false;
│ │ │ +
256 template<
typename _Rep,
typename _Period>
│ │ │ +
257 inline constexpr bool __is_duration_v<duration<_Rep, _Period>> =
true;
│ │ │ +
258 template<
typename _Tp>
│ │ │ +
259 inline constexpr bool __is_time_point_v =
false;
│ │ │ +
260 template<
typename _Clock,
typename _Dur>
│ │ │ +
261 inline constexpr bool __is_time_point_v<time_point<_Clock, _Dur>> =
true;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
276 template<
typename _ToDur,
typename _Rep,
typename _Period>
│ │ │ +
│ │ │ +
278 constexpr __enable_if_is_duration<_ToDur>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
281#if __cpp_inline_variables && __cpp_if_constexpr
│ │ │ +
282 if constexpr (is_same_v<_ToDur, duration<_Rep, _Period>>)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
287 using __to_period =
typename _ToDur::period;
│ │ │ +
288 using __to_rep =
typename _ToDur::rep;
│ │ │ +
│ │ │ +
│ │ │ +
291 using __dc = __duration_cast_impl<_ToDur, __cf, __cr,
│ │ │ +
292 __cf::num == 1, __cf::den == 1>;
│ │ │ +
293 return __dc::__cast(__d);
│ │ │ +
294#if __cpp_inline_variables && __cpp_if_constexpr
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
310 template<
typename _Rep>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
315#if __cplusplus > 201402L
│ │ │ +
316 template <
typename _Rep>
│ │ │ +
317 inline constexpr bool treat_as_floating_point_v =
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
321 inline constexpr bool treat_as_floating_point_v<int> =
false;
│ │ │ +
│ │ │ +
323 inline constexpr bool treat_as_floating_point_v<long> =
false;
│ │ │ +
│ │ │ +
325 inline constexpr bool treat_as_floating_point_v<long long> =
false;
│ │ │ +
│ │ │ +
327 inline constexpr bool treat_as_floating_point_v<float> =
true;
│ │ │ +
│ │ │ +
329 inline constexpr bool treat_as_floating_point_v<double> =
true;
│ │ │ +
│ │ │ +
331 inline constexpr bool treat_as_floating_point_v<long double> =
true;
│ │ │ +
│ │ │ +
│ │ │ +
334#if __cplusplus > 201703L
│ │ │ +
335#if __cpp_lib_concepts
│ │ │ +
336 template<
typename _Tp>
│ │ │ +
337 inline constexpr bool is_clock_v =
false;
│ │ │ +
│ │ │ +
339 template<
typename _Tp>
│ │ │ +
│ │ │ +
│ │ │ +
342 typename _Tp::period;
│ │ │ +
343 typename _Tp::duration;
│ │ │ +
344 typename _Tp::time_point::clock;
│ │ │ +
345 typename _Tp::time_point::duration;
│ │ │ +
│ │ │ +
347 { _Tp::now() } -> same_as<typename _Tp::time_point>;
│ │ │ +
348 requires same_as<
typename _Tp::duration,
│ │ │ +
349 duration<typename _Tp::rep, typename _Tp::period>>;
│ │ │ +
350 requires same_as<
typename _Tp::time_point::duration,
│ │ │ +
351 typename _Tp::duration>;
│ │ │ +
│ │ │ +
353 inline constexpr bool is_clock_v<_Tp> =
true;
│ │ │ +
│ │ │ +
355 template<
typename _Tp,
typename =
void>
│ │ │ +
356 inline constexpr bool is_clock_v =
false;
│ │ │ +
│ │ │ +
358 template<
typename _Tp>
│ │ │ +
359 inline constexpr bool
│ │ │ +
360 is_clock_v<_Tp,
void_t<
typename _Tp::rep,
typename _Tp::period,
│ │ │ +
361 typename _Tp::duration,
│ │ │ +
362 typename _Tp::time_point::duration,
│ │ │ +
363 decltype(_Tp::is_steady),
│ │ │ +
364 decltype(_Tp::now())>>
│ │ │ +
365 = __and_v<is_same<
typename _Tp::duration,
│ │ │ +
│ │ │ +
367 is_same<
typename _Tp::time_point::duration,
│ │ │ +
368 typename _Tp::duration>,
│ │ │ +
369 is_same<
decltype(&_Tp::is_steady),
const bool*>,
│ │ │ +
370 is_same<
decltype(_Tp::now()),
typename _Tp::time_point>>;
│ │ │ +
│ │ │ +
│ │ │ +
373 template<
typename _Tp>
│ │ │ +
│ │ │ +
375 : bool_constant<is_clock_v<_Tp>>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
379#if __cplusplus >= 201703L
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
390 template<
typename _ToDur,
typename _Rep,
typename _Period>
│ │ │ +
391 [[nodiscard]]
constexpr __enable_if_is_duration<_ToDur>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
396 return __to - _ToDur{1};
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
410 template<
typename _ToDur,
typename _Rep,
typename _Period>
│ │ │ +
411 [[nodiscard]]
constexpr __enable_if_is_duration<_ToDur>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
416 return __to + _ToDur{1};
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
431 template <
typename _ToDur,
typename _Rep,
typename _Period>
│ │ │ +
432 [[nodiscard]]
constexpr
│ │ │ +
│ │ │ +
434 __and_<__is_duration<_ToDur>,
│ │ │ +
435 __not_<treat_as_floating_point<typename _ToDur::rep>>>::value,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
440 _ToDur __t1 = __t0 + _ToDur{1};
│ │ │ +
441 auto __diff0 = __d - __t0;
│ │ │ +
442 auto __diff1 = __t1 - __d;
│ │ │ +
443 if (__diff0 == __diff1)
│ │ │ +
│ │ │ +
445 if (__t0.count() & 1)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
449 else if (__diff0 < __diff1)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
460 template<
typename _Rep,
typename _Period>
│ │ │ +
461 [[nodiscard]]
constexpr
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
465 if (__d >= __d.zero())
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
480 template<
typename _Tp,
typename _Up>
│ │ │ +
│ │ │ +
482 __ceil_impl(
const _Tp& __t,
const _Up& __u)
│ │ │ +
│ │ │ +
484 return (__t < __u) ? (__t + _Tp{1}) : __t;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
488 template<
typename _ToDur,
typename _Rep,
typename _Period>
│ │ │ +
│ │ │ +
490 ceil(
const duration<_Rep, _Period>& __d)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
498 template<
typename _Rep>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
501 static constexpr _Rep
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
505 static constexpr _Rep
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
509 static constexpr _Rep
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
514 template<
typename _Rep,
typename _Period>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
517 static_assert(!__is_duration<_Rep>::value,
│ │ │ +
518 "rep cannot be a std::chrono::duration");
│ │ │ +
519 static_assert(__is_ratio<_Period>::value,
│ │ │ +
520 "period must be a specialization of std::ratio");
│ │ │ +
521 static_assert(_Period::num > 0,
"period must be positive");
│ │ │ +
│ │ │ +
523 template<
typename _Rep2>
│ │ │ +
│ │ │ +
│ │ │ +
526 static constexpr intmax_t
│ │ │ +
527 _S_gcd(intmax_t __m, intmax_t __n)
noexcept
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
531#if __cplusplus >= 201402L
│ │ │ +
│ │ │ +
│ │ │ +
534 intmax_t __rem = __m % __n;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
543 return (__n == 0) ? __m : _S_gcd(__n, __m % __n);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
551 template<
typename _R1,
typename _R2,
│ │ │ +
552 intmax_t __gcd1 = _S_gcd(_R1::num, _R2::num),
│ │ │ +
553 intmax_t __gcd2 = _S_gcd(_R1::den, _R2::den)>
│ │ │ +
554 using __divide =
ratio<(_R1::num / __gcd1) * (_R2::den / __gcd2),
│ │ │ +
555 (_R1::den / __gcd2) * (_R2::num / __gcd1)>;
│ │ │ +
│ │ │ +
│ │ │ +
558 template<
typename _Period2>
│ │ │ +
│ │ │ +
560 = __bool_constant<__divide<_Period2, _Period>::den == 1>;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
565 using period =
typename _Period::type;
│ │ │ +
│ │ │ +
│ │ │ +
568 constexpr duration() =
default;
│ │ │ +
│ │ │ +
570 duration(
const duration&) =
default;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
574 template<
typename _Rep2,
typename = _Require<
│ │ │ +
575 is_convertible<const _Rep2&, rep>,
│ │ │ +
576 __or_<__is_float<rep>, __not_<__is_float<_Rep2>>>>>
│ │ │ +
577 constexpr explicit duration(
const _Rep2& __rep)
│ │ │ +
578 : __r(
static_cast<rep
>(__rep)) { }
│ │ │ +
│ │ │ +
580 template<
typename _Rep2,
typename _Period2,
typename = _Require<
│ │ │ +
581 is_convertible<const _Rep2&, rep>,
│ │ │ +
582 __or_<__is_float<rep>,
│ │ │ +
583 __and_<__is_harmonic<_Period2>,
│ │ │ +
584 __not_<__is_float<_Rep2>>>>>>
│ │ │ +
585 constexpr duration(
const duration<_Rep2, _Period2>& __d)
│ │ │ +
│ │ │ +
│ │ │ +
588 ~duration() =
default;
│ │ │ +
589 duration& operator=(
const duration&) =
default;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
598 constexpr duration<typename common_type<rep>::type, period>
│ │ │ +
│ │ │ +
600 {
return duration<typename common_type<rep>::type, period>(__r); }
│ │ │ +
│ │ │ +
602 constexpr duration<typename common_type<rep>::type, period>
│ │ │ +
│ │ │ +
604 {
return duration<typename common_type<rep>::type, period>(-__r); }
│ │ │ +
│ │ │ +
606 _GLIBCXX17_CONSTEXPR duration&
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
613 _GLIBCXX17_CONSTEXPR duration
│ │ │ +
│ │ │ +
615 {
return duration(__r++); }
│ │ │ +
│ │ │ +
617 _GLIBCXX17_CONSTEXPR duration&
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
624 _GLIBCXX17_CONSTEXPR duration
│ │ │ +
│ │ │ +
626 {
return duration(__r--); }
│ │ │ +
│ │ │ +
628 _GLIBCXX17_CONSTEXPR duration&
│ │ │ +
629 operator+=(
const duration& __d)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
635 _GLIBCXX17_CONSTEXPR duration&
│ │ │ +
636 operator-=(
const duration& __d)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
642 _GLIBCXX17_CONSTEXPR duration&
│ │ │ +
643 operator*=(
const rep& __rhs)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
649 _GLIBCXX17_CONSTEXPR duration&
│ │ │ +
650 operator/=(
const rep& __rhs)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
657 template<
typename _Rep2 = rep>
│ │ │ +
│ │ │ +
659 __enable_if_t<!treat_as_floating_point<_Rep2>::value, duration&>
│ │ │ +
660 operator%=(
const rep& __rhs)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
666 template<
typename _Rep2 = rep>
│ │ │ +
│ │ │ +
668 __enable_if_t<!treat_as_floating_point<_Rep2>::value, duration&>
│ │ │ +
669 operator%=(
const duration& __d)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
676 static constexpr duration
│ │ │ +
│ │ │ +
678 {
return duration(duration_values<rep>::zero()); }
│ │ │ +
│ │ │ +
680 static constexpr duration
│ │ │ +
│ │ │ +
682 {
return duration(duration_values<rep>::min()); }
│ │ │ +
│ │ │ +
684 static constexpr duration
│ │ │ +
│ │ │ +
686 {
return duration(duration_values<rep>::max()); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
696 template<
typename _Rep1,
typename _Period1,
│ │ │ +
697 typename _Rep2,
typename _Period2>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
701 const duration<_Rep2, _Period2>& __rhs)
│ │ │ +
│ │ │ +
703 typedef duration<_Rep1, _Period1> __dur1;
│ │ │ +
704 typedef duration<_Rep2, _Period2> __dur2;
│ │ │ +
│ │ │ +
706 return __cd(__cd(__lhs).count() + __cd(__rhs).count());
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
710 template<
typename _Rep1,
typename _Period1,
│ │ │ +
711 typename _Rep2,
typename _Period2>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
720 return __cd(__cd(__lhs).count() - __cd(__rhs).count());
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
731 template<
typename _Rep1,
typename _Rep2,
│ │ │ +
│ │ │ +
733 using __common_rep_t =
typename
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
743 template<
typename _Rep1,
typename _Period,
typename _Rep2>
│ │ │ +
744 constexpr duration<__common_rep_t<_Rep1, _Rep2>, _Period>
│ │ │ +
│ │ │ +
745 operator*(
const duration<_Rep1, _Period>& __d,
const _Rep2& __s)
│ │ │ +
│ │ │ +
747 typedef duration<typename common_type<_Rep1, _Rep2>::type, _Period>
│ │ │ +
│ │ │ +
749 return __cd(__cd(__d).count() * __s);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
752 template<
typename _Rep1,
typename _Rep2,
typename _Period>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
755 {
return __d * __s; }
│ │ │ +
│ │ │ +
│ │ │ +
757 template<
typename _Rep1,
typename _Period,
typename _Rep2>
│ │ │ +
│ │ │ +
759 duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
764 return __cd(__cd(__d).count() / __s);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
767 template<
typename _Rep1,
typename _Period1,
│ │ │ +
768 typename _Rep2,
typename _Period2>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
776 return __cd(__lhs).count() / __cd(__rhs).count();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
780 template<
typename _Rep1,
typename _Period,
typename _Rep2>
│ │ │ +
│ │ │ +
782 duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
787 return __cd(__cd(__d).count() % __s);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
790 template<
typename _Rep1,
typename _Period1,
│ │ │ +
791 typename _Rep2,
typename _Period2>
│ │ │ +
│ │ │ +
793 duration<_Rep2, _Period2>>
::type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
800 return __cd(__cd(__lhs).count() % __cd(__rhs).count());
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
811 template<
typename _Rep1,
typename _Period1,
│ │ │ +
812 typename _Rep2,
typename _Period2>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
815 const duration<_Rep2, _Period2>& __rhs)
│ │ │ +
│ │ │ +
817 typedef duration<_Rep1, _Period1> __dur1;
│ │ │ +
818 typedef duration<_Rep2, _Period2> __dur2;
│ │ │ +
│ │ │ +
820 return __ct(__lhs).count() == __ct(__rhs).count();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
823 template<
typename _Rep1,
typename _Period1,
│ │ │ +
824 typename _Rep2,
typename _Period2>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
832 return __ct(__lhs).count() < __ct(__rhs).count();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
835#if __cpp_lib_three_way_comparison
│ │ │ +
836 template<
typename _Rep1,
typename _Period1,
│ │ │ +
837 typename _Rep2,
typename _Period2>
│ │ │ +
838 requires three_way_comparable<common_type_t<_Rep1, _Rep2>>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
845 return __ct(__lhs).count() <=> __ct(__rhs).count();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
848 template<
typename _Rep1,
typename _Period1,
│ │ │ +
849 typename _Rep2,
typename _Period2>
│ │ │ +
│ │ │ +
851 operator!=(
const duration<_Rep1, _Period1>& __lhs,
│ │ │ +
852 const duration<_Rep2, _Period2>& __rhs)
│ │ │ +
853 {
return !(__lhs == __rhs); }
│ │ │ +
│ │ │ +
│ │ │ +
856 template<
typename _Rep1,
typename _Period1,
│ │ │ +
857 typename _Rep2,
typename _Period2>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
861 {
return !(__rhs < __lhs); }
│ │ │ +
│ │ │ +
│ │ │ +
863 template<
typename _Rep1,
typename _Period1,
│ │ │ +
864 typename _Rep2,
typename _Period2>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
868 {
return __rhs < __lhs; }
│ │ │ +
│ │ │ +
│ │ │ +
870 template<
typename _Rep1,
typename _Period1,
│ │ │ +
871 typename _Rep2,
typename _Period2>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
875 {
return !(__lhs < __rhs); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
880#ifdef _GLIBCXX_USE_C99_STDINT
│ │ │ +
881# define _GLIBCXX_CHRONO_INT64_T int64_t
│ │ │ +
882#elif defined __INT64_TYPE__
│ │ │ +
883# define _GLIBCXX_CHRONO_INT64_T __INT64_TYPE__
│ │ │ +
│ │ │ +
│ │ │ +
886 "Representation type for nanoseconds must have at least 64 bits");
│ │ │ +
887# define _GLIBCXX_CHRONO_INT64_T long long
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
909#if __cplusplus > 201703L
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
923#undef _GLIBCXX_CHRONO_INT64_T
│ │ │ +
│ │ │ +
925 template<
typename _Clock,
typename _Dur>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
928 static_assert(__is_duration<_Dur>::value,
│ │ │ +
929 "duration must be a specialization of std::chrono::duration");
│ │ │ +
│ │ │ +
│ │ │ +
932 typedef _Clock clock;
│ │ │ +
933 typedef _Dur duration;
│ │ │ +
934 typedef typename duration::rep rep;
│ │ │ +
935 typedef typename duration::period period;
│ │ │ +
│ │ │ +
937 constexpr time_point() : __d(duration::zero())
│ │ │ +
│ │ │ +
│ │ │ +
940 constexpr explicit time_point(
const duration& __dur)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
945 template<
typename _Dur2,
│ │ │ +
946 typename = _Require<is_convertible<_Dur2, _Dur>>>
│ │ │ +
947 constexpr time_point(
const time_point<clock, _Dur2>& __t)
│ │ │ +
948 : __d(__t.time_since_epoch())
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
953 time_since_epoch()
const
│ │ │ +
│ │ │ +
│ │ │ +
956#if __cplusplus > 201703L
│ │ │ +
957 constexpr time_point&
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
966 {
return time_point{__d++}; }
│ │ │ +
│ │ │ +
968 constexpr time_point&
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
977 {
return time_point{__d--}; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
981 _GLIBCXX17_CONSTEXPR time_point&
│ │ │ +
982 operator+=(
const duration& __dur)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
988 _GLIBCXX17_CONSTEXPR time_point&
│ │ │ +
989 operator-=(
const duration& __dur)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
996 static constexpr time_point
│ │ │ +
│ │ │ +
998 {
return time_point(duration::min()); }
│ │ │ +
│ │ │ +
1000 static constexpr time_point
│ │ │ +
│ │ │ +
1002 {
return time_point(duration::max()); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1020 template<
typename _ToDur,
typename _Clock,
typename _Dur>
│ │ │ +
1021 _GLIBCXX_NODISCARD
constexpr
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1029#if __cplusplus > 201402L
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1042 template<
typename _ToDur,
typename _Clock,
typename _Dur>
│ │ │ +
1043 [[nodiscard]]
constexpr
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1063 template<
typename _ToDur,
typename _Clock,
typename _Dur>
│ │ │ +
1064 [[nodiscard]]
constexpr
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1085 template<
typename _ToDur,
typename _Clock,
typename _Dur>
│ │ │ +
1086 [[nodiscard]]
constexpr
│ │ │ +
│ │ │ +
1088 && !treat_as_floating_point_v<typename _ToDur::rep>,
│ │ │ +
1089 time_point<_Clock, _ToDur>>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1101 template<
typename _Clock,
typename _Dur1,
│ │ │ +
1102 typename _Rep2,
typename _Period2>
│ │ │ +
1103 constexpr time_point<_Clock,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1106 const duration<_Rep2, _Period2>& __rhs)
│ │ │ +
│ │ │ +
1108 typedef duration<_Rep2, _Period2> __dur2;
│ │ │ +
│ │ │ +
1110 typedef time_point<_Clock, __ct> __time_point;
│ │ │ +
1111 return __time_point(__lhs.time_since_epoch() + __rhs);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1115 template<
typename _Rep1,
typename _Period1,
│ │ │ +
1116 typename _Clock,
typename _Dur2>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1125 return __time_point(__rhs.time_since_epoch() + __lhs);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1129 template<
typename _Clock,
typename _Dur1,
│ │ │ +
1130 typename _Rep2,
typename _Period2>
│ │ │ +
1131 constexpr time_point<_Clock,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1139 return __time_point(__lhs.time_since_epoch() -__rhs);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1143 template<
typename _Clock,
typename _Dur1,
typename _Dur2>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1147 {
return __lhs.time_since_epoch() - __rhs.time_since_epoch(); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1155 template<
typename _Clock,
typename _Dur1,
typename _Dur2>
│ │ │ +
│ │ │ +
1157 operator==(
const time_point<_Clock, _Dur1>& __lhs,
│ │ │ +
1158 const time_point<_Clock, _Dur2>& __rhs)
│ │ │ +
1159 {
return __lhs.time_since_epoch() == __rhs.time_since_epoch(); }
│ │ │ +
│ │ │ +
1161#if __cpp_lib_three_way_comparison
│ │ │ +
1162 template<
typename _Clock,
typename _Dur1,
│ │ │ +
1163 three_way_comparable_with<_Dur1> _Dur2>
│ │ │ +
│ │ │ +
1165 operator<=>(
const time_point<_Clock, _Dur1>& __lhs,
│ │ │ +
1166 const time_point<_Clock, _Dur2>& __rhs)
│ │ │ +
1167 {
return __lhs.time_since_epoch() <=> __rhs.time_since_epoch(); }
│ │ │ +
│ │ │ +
1169 template<
typename _Clock,
typename _Dur1,
typename _Dur2>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1173 {
return !(__lhs == __rhs); }
│ │ │ +
│ │ │ +
│ │ │ +
1176 template<
typename _Clock,
typename _Dur1,
typename _Dur2>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1180 {
return __lhs.time_since_epoch() < __rhs.time_since_epoch(); }
│ │ │ +
│ │ │ +
1182 template<
typename _Clock,
typename _Dur1,
typename _Dur2>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1186 {
return !(__rhs < __lhs); }
│ │ │ +
│ │ │ +
1188 template<
typename _Clock,
typename _Dur1,
typename _Dur2>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1192 {
return __rhs < __lhs; }
│ │ │ +
│ │ │ +
1194 template<
typename _Clock,
typename _Dur1,
typename _Dur2>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1198 {
return !(__lhs < __rhs); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1222_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1233 typedef duration::rep rep;
│ │ │ +
1234 typedef duration::period period;
│ │ │ +
│ │ │ +
│ │ │ +
1237 static_assert(system_clock::duration::min()
│ │ │ +
1238 < system_clock::duration::zero(),
│ │ │ +
1239 "a clock's minimum duration cannot be less than its epoch");
│ │ │ +
│ │ │ +
1241 static constexpr bool is_steady =
false;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1247 [[__gnu__::__always_inline__]]
│ │ │ +
│ │ │ +
1249 to_time_t(
const time_point& __t)
noexcept
│ │ │ +
│ │ │ +
│ │ │ +
1252 (__t.time_since_epoch()).count());
│ │ │ +
│ │ │ +
│ │ │ +
1255 [[__gnu__::__always_inline__]]
│ │ │ +
│ │ │ +
1257 from_time_t(std::time_t __t)
noexcept
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1275 typedef duration::rep rep;
│ │ │ +
1276 typedef duration::period period;
│ │ │ +
│ │ │ +
│ │ │ +
1279 static constexpr bool is_steady =
true;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1296_GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
│ │ │ +
│ │ │ +
1298#if __cplusplus >= 202002L
│ │ │ +
│ │ │ +
│ │ │ +
1301 template<
typename _Duration>
│ │ │ +
│ │ │ +
1303 using sys_seconds = sys_time<seconds>;
│ │ │ +
1304 using sys_days = sys_time<days>;
│ │ │ +
│ │ │ +
1306 using file_clock = ::std::filesystem::__file_clock;
│ │ │ +
│ │ │ +
1308 template<
typename _Duration>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1312 template<>
struct is_clock<steady_clock> :
true_type { };
│ │ │ +
1313 template<>
struct is_clock<file_clock> : true_type { };
│ │ │ +
│ │ │ +
1315 template<>
inline constexpr bool is_clock_v<system_clock> =
true;
│ │ │ +
1316 template<>
inline constexpr bool is_clock_v<steady_clock> =
true;
│ │ │ +
1317 template<>
inline constexpr bool is_clock_v<file_clock> =
true;
│ │ │ +
│ │ │ +
│ │ │ +
1320#elif __cplusplus >= 202002L
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1324 template<
typename _Duration>
│ │ │ +
│ │ │ +
1326 using sys_seconds = sys_time<seconds>;
│ │ │ +
1327 using sys_days = sys_time<days>;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1331#ifdef __glibcxx_chrono_udls
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1363#pragma GCC diagnostic push
│ │ │ +
1364#pragma GCC diagnostic ignored "-Wliteral-suffix"
│ │ │ +
│ │ │ +
1366 template<
typename _Dur,
char... _Digits>
│ │ │ +
1367 constexpr _Dur __check_overflow()
│ │ │ +
│ │ │ +
1369 using _Val = __parse_int::_Parse_int<_Digits...>;
│ │ │ +
1370 constexpr typename _Dur::rep __repval = _Val::value;
│ │ │ +
1371 static_assert(__repval >= 0 && __repval == _Val::value,
│ │ │ +
1372 "literal value cannot be represented by duration type");
│ │ │ +
1373 return _Dur(__repval);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1378 constexpr chrono::duration<long double, ratio<3600,1>>
│ │ │ +
│ │ │ +
1379 operator""h(
long double __hours)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1383 template <
char... _Digits>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1390 operator""min(
long double __mins)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1394 template <
char... _Digits>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1401 operator""s(
long double __secs)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1405 template <
char... _Digits>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1412 operator""ms(
long double __msecs)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1416 template <
char... _Digits>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1423 operator""us(
long double __usecs)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1427 template <
char... _Digits>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1434 operator""ns(
long double __nsecs)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1438 template <
char... _Digits>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1443#pragma GCC diagnostic pop
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1450 using namespace literals::chrono_literals;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1454#if __cplusplus >= 201703L && _GLIBCXX_HOSTED
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1460 using rep = duration::rep;
│ │ │ +
1461 using period = duration::period;
│ │ │ +
1462 using time_point = chrono::time_point<__file_clock>;
│ │ │ +
1463 static constexpr bool is_steady =
false;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1467 {
return _S_from_sys(chrono::system_clock::now()); }
│ │ │ +
│ │ │ +
1469#if __cplusplus > 201703L
│ │ │ +
1470 template<
typename _Dur>
│ │ │ +
│ │ │ +
1472 chrono::file_time<common_type_t<_Dur, chrono::seconds>>
│ │ │ +
1473 from_sys(
const chrono::sys_time<_Dur>& __t)
noexcept
│ │ │ +
1474 {
return _S_from_sys(__t); }
│ │ │ +
│ │ │ +
│ │ │ +
1477 template<
typename _Dur>
│ │ │ +
│ │ │ +
1479 chrono::sys_time<common_type_t<_Dur, chrono::seconds>>
│ │ │ +
1480 to_sys(
const chrono::file_time<_Dur>& __t)
noexcept
│ │ │ +
1481 {
return _S_to_sys(__t); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1485 using __sys_clock = chrono::system_clock;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1494 template<
typename _Dur>
│ │ │ +
│ │ │ +
1496 chrono::time_point<__file_clock, common_type_t<_Dur, chrono::seconds>>
│ │ │ +
1497 _S_from_sys(
const chrono::time_point<__sys_clock, _Dur>& __t)
noexcept
│ │ │ +
│ │ │ +
│ │ │ +
1500 using __file_time = chrono::time_point<__file_clock, _CDur>;
│ │ │ +
1501 return __file_time{__t.time_since_epoch()} - _S_epoch_diff;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1505 template<
typename _Dur>
│ │ │ +
│ │ │ +
1507 chrono::time_point<__sys_clock, common_type_t<_Dur, chrono::seconds>>
│ │ │ +
1508 _S_to_sys(
const chrono::time_point<__file_clock, _Dur>& __t)
noexcept
│ │ │ +
│ │ │ +
│ │ │ +
1511 using __sys_time = chrono::time_point<__sys_clock, _CDur>;
│ │ │ +
1512 return __sys_time{__t.time_since_epoch()} + _S_epoch_diff;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1519#if ! defined _GLIBCXX_NO_SLEEP || defined _GLIBCXX_HAS_GTHREADS \
│ │ │ +
1520 || _GLIBCXX_HAVE_LINUX_FUTEX
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1525#pragma GCC diagnostic push
│ │ │ +
1526#pragma GCC diagnostic ignored "-Wc++17-extensions"
│ │ │ +
│ │ │ +
│ │ │ +
1529 template<
typename _Rep,
typename _Period>
│ │ │ +
1530 [[__nodiscard__]] _GLIBCXX14_CONSTEXPR
inline
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1534 struct ::timespec __ts{};
│ │ │ +
│ │ │ +
1536 if (__d < __d.zero())
│ │ │ +
│ │ │ +
│ │ │ +
1539 if constexpr (ratio_greater<_Period, ratio<1>>::value
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1545 chrono::duration<double> __fmax(chrono::seconds::max());
│ │ │ +
1546 if (__d > __fmax) [[__unlikely__]]
│ │ │ +
1547 return chrono::__to_timeout_timespec(chrono::seconds::max());
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1552 if constexpr (is_integral<time_t>::value)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1556 if (__s.count() > __tmax) [[__unlikely__]]
│ │ │ +
│ │ │ +
1558 __ts.tv_sec = __tmax;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1566 if (__ns.count() > 999999999) [[__unlikely__]]
│ │ │ +
│ │ │ +
│ │ │ +
1569 __ts.tv_sec =
static_cast<time_t
>(__s.count());
│ │ │ +
1570 __ts.tv_nsec =
static_cast<long>(__ns.count());
│ │ │ +
│ │ │ +
│ │ │ +
1573#pragma GCC diagnostic pop
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1579 template<
typename _Clock,
typename _Dur>
│ │ │ +
1580 [[__nodiscard__]] _GLIBCXX14_CONSTEXPR
inline
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1584 return chrono::__to_timeout_timespec(__t.time_since_epoch());
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1592_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
constexpr __enable_if_is_duration< _ToDur > ceil(const duration< _Rep, _Period > &__d)
│ │ │ +
│ │ │ +
│ │ │ +
constexpr bool operator==(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
│ │ │ +
duration< int64_t, ratio< 604800 > > weeks
weeks
│ │ │ +
constexpr __enable_if_is_duration< _ToDur > floor(const duration< _Rep, _Period > &__d)
│ │ │ +
duration< int64_t, ratio< 2629746 > > months
months
│ │ │ +
constexpr enable_if_t< __and_< __is_duration< _ToDur >, __not_< treat_as_floating_point< typename _ToDur::rep > > >::value, _ToDur > round(const duration< _Rep, _Period > &__d)
│ │ │ +
duration< int64_t, ratio< 86400 > > days
days
│ │ │ +
duration< int64_t, ratio< 31556952 > > years
years
│ │ │ +
constexpr bool operator<=(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
│ │ │ +
duration< int64_t, ratio< 3600 > > hours
hours
│ │ │ +
constexpr bool operator>=(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
│ │ │ +
system_clock high_resolution_clock
Highest-resolution clock.
│ │ │ +
constexpr duration< __common_rep_t< _Rep2, _Rep1 >, _Period > operator*(const _Rep1 &__s, const duration< _Rep2, _Period > &__d)
│ │ │ +
duration< int64_t, nano > nanoseconds
nanoseconds
│ │ │ +
constexpr enable_if_t< numeric_limits< _Rep >::is_signed, duration< _Rep, _Period > > abs(duration< _Rep, _Period > __d)
│ │ │ +
constexpr duration< __common_rep_t< _Rep1, __disable_if_is_duration< _Rep2 > >, _Period > operator%(const duration< _Rep1, _Period > &__d, const _Rep2 &__s)
│ │ │ +
constexpr time_point< local_t, typename common_type< _Dur1, duration< _Rep2, _Period2 > >::type > operator+(const time_point< local_t, _Dur1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
│ │ │ +
duration< int64_t, ratio< 60 > > minutes
minutes
│ │ │ +
constexpr __enable_if_t< __is_duration< _ToDur >::value, time_point< _Clock, _ToDur > > time_point_cast(const time_point< _Clock, _Dur > &__t)
│ │ │ +
duration< int64_t, milli > milliseconds
milliseconds
│ │ │ +
duration< int64_t, micro > microseconds
microseconds
│ │ │ +
constexpr time_point< _Clock, typename common_type< duration< _Rep1, _Period1 >, _Dur2 >::type > operator+(const duration< _Rep1, _Period1 > &__lhs, const time_point< _Clock, _Dur2 > &__rhs)
Adjust a time point forwards by the given duration.
│ │ │ +
constexpr common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type operator+(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
The sum of two durations.
│ │ │ +
constexpr bool operator<(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
│ │ │ +
duration< int64_t > seconds
seconds
│ │ │ +
constexpr bool operator>(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
│ │ │ +
constexpr common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type operator-(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
The difference between two durations.
│ │ │ +
constexpr duration< __common_rep_t< _Rep1, __disable_if_is_duration< _Rep2 > >, _Period > operator/(const duration< _Rep1, _Period > &__d, const _Rep2 &__s)
│ │ │ +
constexpr duration< __common_rep_t< _Rep1, _Rep2 >, _Period > operator*(const duration< _Rep1, _Period > &__d, const _Rep2 &__s)
│ │ │ +
constexpr __enable_if_is_duration< _ToDur > ceil(const duration< _Rep, _Period > &__d)
│ │ │ +
constexpr auto operator<=>(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
│ │ │ +
constexpr __enable_if_is_duration< _ToDur > duration_cast(const duration< _Rep, _Period > &__d)
│ │ │ +
typename __ratio_divide< _R1, _R2 >::type ratio_divide
ratio_divide
│ │ │ +
__bool_constant< true > true_type
The type used as a compile-time boolean with true value.
│ │ │ +
typename common_type< _Tp... >::type common_type_t
Alias template for common_type.
│ │ │ +
typename enable_if< _Cond, _Tp >::type enable_if_t
Alias template for enable_if.
│ │ │ +
__bool_constant< false > false_type
The type used as a compile-time boolean with false value.
│ │ │ +
constexpr const _Tp & min(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ +
void void_t
A metafunction that always yields void, used for detecting valid types.
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ +
ISO C++ inline namespace for literal suffixes.
│ │ │ +
Implementation details not part of the namespace std interface.
│ │ │ +
ISO C++ 2011 namespace for date and time utilities.
│ │ │ +
│ │ │ +
ISO C++ 2017 namespace for File System library.
│ │ │ +
static constexpr int digits
│ │ │ +
static constexpr _Tp max() noexcept
│ │ │ +
static constexpr _Tp lowest() noexcept
│ │ │ +
Provides compile-time rational arithmetic.
│ │ │ +
Define a member typedef type only if a boolean constant is true.
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
chrono::duration represents a distance between two points in time
│ │ │ +
chrono::time_point represents a point in time as measured by a clock
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
[concept.same], concept same_as
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,13 +1,13 @@
│ │ │ │ libstdc++
│ │ │ │ -hash_bytes.h
│ │ │ │ +chrono.h
│ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_.
│ │ │ │ -1// Declarations for hash functions. -*- C++ -*-
│ │ │ │ +1// chrono::duration and chrono::time_point -*- C++ -*-
│ │ │ │ 2
│ │ │ │ -3// Copyright (C) 2010-2026 Free Software Foundation, Inc.
│ │ │ │ +3// Copyright (C) 2008-2026 Free Software Foundation, Inc.
│ │ │ │ 4//
│ │ │ │ 5// This file is part of the GNU ISO C++ Library. This library is free
│ │ │ │ 6// software; you can redistribute it and/or modify it under the
│ │ │ │ 7// terms of the GNU General Public License as published by the
│ │ │ │ 8// Free Software Foundation; either version 3, or (at your option)
│ │ │ │ 9// any later version.
│ │ │ │ 10
│ │ │ │ @@ -21,50 +21,1815 @@
│ │ │ │ 18// 3.1, as published by the Free Software Foundation.
│ │ │ │ 19
│ │ │ │ 20// You should have received a copy of the GNU General Public License and
│ │ │ │ 21// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │ 22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │ 23//
.
│ │ │ │ 24
│ │ │ │ -25/** @file bits/hash_bytes.h
│ │ │ │ +25/** @file include/bits/chrono.h
│ │ │ │ 26 * This is an internal header file, included by other library headers.
│ │ │ │ -27 * Do not attempt to use it directly. @headername{functional}
│ │ │ │ +27 * Do not attempt to use it directly. @headername{chrono}
│ │ │ │ 28 */
│ │ │ │ 29
│ │ │ │ -30#ifndef _HASH_BYTES_H
│ │ │ │ -31#define _HASH_BYTES_H 1
│ │ │ │ +30#ifndef _GLIBCXX_CHRONO_H
│ │ │ │ +31#define _GLIBCXX_CHRONO_H 1
│ │ │ │ 32
│ │ │ │ 33#ifdef _GLIBCXX_SYSHDR
│ │ │ │ 34#pragma GCC system_header
│ │ │ │ 35#endif
│ │ │ │ 36
│ │ │ │ -37#include <_b_i_t_s_/_c_+_+_c_o_n_f_i_g_._h>
│ │ │ │ +37#if __cplusplus >= 201103L
│ │ │ │ 38
│ │ │ │ -39namespace _s_t_d
│ │ │ │ -40{
│ │ │ │ -41_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ -42
│ │ │ │ -43 // Hash function implementation for the nontrivial specialization.
│ │ │ │ -44 // All of them are based on a primitive that hashes a pointer to a
│ │ │ │ -45 // byte array. The actual hash algorithm is not guaranteed to stay
│ │ │ │ -46 // the same from release to release -- it may be updated or tuned to
│ │ │ │ -47 // improve hash quality or speed.
│ │ │ │ -48 size_t
│ │ │ │ -49 _Hash_bytes(const void* __ptr, size_t __len, size_t __seed);
│ │ │ │ +39#include <_r_a_t_i_o>
│ │ │ │ +40#include <_t_y_p_e___t_r_a_i_t_s>
│ │ │ │ +41#include <_l_i_m_i_t_s>
│ │ │ │ +42#if _GLIBCXX_HOSTED
│ │ │ │ +43# include <_c_t_i_m_e>
│ │ │ │ +44#endif
│ │ │ │ +45#include <_b_i_t_s_/_p_a_r_s_e___n_u_m_b_e_r_s_._h> // for literals support.
│ │ │ │ +46#if __cplusplus >= 202002L
│ │ │ │ +47# include <_c_o_n_c_e_p_t_s>
│ │ │ │ +48# include <_c_o_m_p_a_r_e>
│ │ │ │ +49#endif
│ │ │ │ 50
│ │ │ │ -51 // A similar hash primitive, using the FNV hash algorithm. This
│ │ │ │ -52 // algorithm is guaranteed to stay the same from release to release.
│ │ │ │ -53 // (although it might not produce the same values on different
│ │ │ │ -54 // machines.)
│ │ │ │ -55 size_t
│ │ │ │ -56 _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed);
│ │ │ │ -57
│ │ │ │ -58_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ -59} // namespace
│ │ │ │ +51#include <_b_i_t_s_/_v_e_r_s_i_o_n_._h>
│ │ │ │ +52
│ │ │ │ +53namespace _s_t_d _GLIBCXX_VISIBILITY(default)
│ │ │ │ +54{
│ │ │ │ +55_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ +56
│ │ │ │ +57#if __cplusplus >= 201703L && _GLIBCXX_HOSTED
│ │ │ │ +_5_8 namespace _f_i_l_e_s_y_s_t_e_m { struct __file_clock; };
│ │ │ │ +59#endif
│ │ │ │ 60
│ │ │ │ -61#endif
│ │ │ │ -_c_+_+_c_o_n_f_i_g_._h
│ │ │ │ +61 namespace _c_h_r_o_n_o
│ │ │ │ +62 {
│ │ │ │ +63 /// @addtogroup chrono
│ │ │ │ +64 /// @{
│ │ │ │ +65
│ │ │ │ +66 /// `chrono::duration` represents a distance between two points in time
│ │ │ │ +67 template
>
│ │ │ │ +68 class duration;
│ │ │ │ +69
│ │ │ │ +70 /// `chrono::time_point` represents a point in time as measured by a clock
│ │ │ │ +71 template
│ │ │ │ +72 class time_point;
│ │ │ │ +73 /// @}
│ │ │ │ +74 }
│ │ │ │ +75
│ │ │ │ +76 /// @addtogroup chrono
│ │ │ │ +77 /// @{
│ │ │ │ +78
│ │ │ │ +79 // 20.11.4.3 specialization of common_type (for duration, sfinae-friendly)
│ │ │ │ +80
│ │ │ │ +81 /// @cond undocumented
│ │ │ │ +82
│ │ │ │ +83 template
│ │ │ │ +84 struct __duration_common_type
│ │ │ │ +85 { };
│ │ │ │ +86
│ │ │ │ +87 template
│ │ │ │ +88 struct __duration_common_type<_CT, _Period1, _Period2,
│ │ │ │ +89 __void_t>
│ │ │ │ +90 {
│ │ │ │ +91 private:
│ │ │ │ +92 using __gcd_num = __static_gcd<_Period1::num, _Period2::num>;
│ │ │ │ +93 using __gcd_den = __static_gcd<_Period1::den, _Period2::den>;
│ │ │ │ +94 using __cr = typename _CT::type;
│ │ │ │ +95 using __r = ratio<__gcd_num::value,
│ │ │ │ +96 (_Period1::den / __gcd_den::value) * _Period2::den>;
│ │ │ │ +97
│ │ │ │ +98 public:
│ │ │ │ +99 using type = chrono::duration<__cr, typename __r::type>;
│ │ │ │ +100 };
│ │ │ │ +101
│ │ │ │ +102 /// @endcond
│ │ │ │ +103
│ │ │ │ +104 /// @{
│ │ │ │ +105 /// @relates chrono::duration
│ │ │ │ +106
│ │ │ │ +107 /// Specialization of common_type for chrono::duration types.
│ │ │ │ +108 template
│ │ │ │ +_1_0_9 struct _c_o_m_m_o_n___t_y_p_e<_c_h_r_o_n_o::duration<_Rep1, _Period1>,
│ │ │ │ +110 _c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n<_Rep2, _Period2>>
│ │ │ │ +111 : __duration_common_type,
│ │ │ │ +112 typename _Period1::type,
│ │ │ │ +113 typename _Period2::type>
│ │ │ │ +114 { };
│ │ │ │ +115
│ │ │ │ +116 /// Specialization of common_type for two identical chrono::duration types.
│ │ │ │ +117 template
│ │ │ │ +_1_1_8 struct _c_o_m_m_o_n___t_y_p_e<_c_h_r_o_n_o::duration<_Rep, _Period>,
│ │ │ │ +119 _c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n<_Rep, _Period>>
│ │ │ │ +120 {
│ │ │ │ +121 using type = _c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n_<_t_y_p_e_n_a_m_e_ _c_o_m_m_o_n___t_y_p_e_<___R_e_p_>_:_:_t_y_p_e,
│ │ │ │ +122 typename _Period::type>;
│ │ │ │ +123 };
│ │ │ │ +124
│ │ │ │ +125 /// Specialization of common_type for one chrono::duration type.
│ │ │ │ +126 template
│ │ │ │ +_1_2_7 struct _c_o_m_m_o_n___t_y_p_e<_c_h_r_o_n_o::duration<_Rep, _Period>>
│ │ │ │ +128 {
│ │ │ │ +129 using type = _c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n_<_t_y_p_e_n_a_m_e_ _c_o_m_m_o_n___t_y_p_e_<___R_e_p_>_:_:_t_y_p_e,
│ │ │ │ +130 typename _Period::type>;
│ │ │ │ +131 };
│ │ │ │ +132 /// @}
│ │ │ │ +133
│ │ │ │ +134 // 20.11.4.3 specialization of common_type (for time_point, sfinae-
│ │ │ │ +friendly)
│ │ │ │ +135
│ │ │ │ +136 /// @cond undocumented
│ │ │ │ +137
│ │ │ │ +138 template
│ │ │ │ +139 struct __timepoint_common_type
│ │ │ │ +140 { };
│ │ │ │ +141
│ │ │ │ +142 template
│ │ │ │ +143 struct __timepoint_common_type<_CT, _Clock, __void_t>
│ │ │ │ +144 {
│ │ │ │ +145 using type = chrono::time_point<_Clock, typename _CT::type>;
│ │ │ │ +146 };
│ │ │ │ +147
│ │ │ │ +148 /// @endcond
│ │ │ │ +149
│ │ │ │ +150 /// @{
│ │ │ │ +151 /// @relates chrono::time_point
│ │ │ │ +152
│ │ │ │ +153 /// Specialization of common_type for chrono::time_point types.
│ │ │ │ +154 template
│ │ │ │ +_1_5_5 struct _c_o_m_m_o_n___t_y_p_e<_c_h_r_o_n_o::time_point<_Clock, _Duration1>,
│ │ │ │ +156 _c_h_r_o_n_o_:_:_t_i_m_e___p_o_i_n_t<_Clock, _Duration2>>
│ │ │ │ +157 : __timepoint_common_type, _Clock>
│ │ │ │ +158 { };
│ │ │ │ +159
│ │ │ │ +160 /// Specialization of common_type for two identical chrono::time_point
│ │ │ │ +types.
│ │ │ │ +161 template
│ │ │ │ +_1_6_2 struct _c_o_m_m_o_n___t_y_p_e<_c_h_r_o_n_o::time_point<_Clock, _Duration>,
│ │ │ │ +163 _c_h_r_o_n_o_:_:_t_i_m_e___p_o_i_n_t<_Clock, _Duration>>
│ │ │ │ +164 { using type = _c_h_r_o_n_o_:_:_t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_a_t_i_o_n_>; };
│ │ │ │ +165
│ │ │ │ +166 /// Specialization of common_type for one chrono::time_point type.
│ │ │ │ +167 template
│ │ │ │ +_1_6_8 struct _c_o_m_m_o_n___t_y_p_e<_c_h_r_o_n_o::time_point<_Clock, _Duration>>
│ │ │ │ +169 { using type = _c_h_r_o_n_o_:_:_t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_a_t_i_o_n_>; };
│ │ │ │ +170 /// @}
│ │ │ │ +171
│ │ │ │ +172 /// @} group chrono
│ │ │ │ +173
│ │ │ │ +174 namespace _c_h_r_o_n_o
│ │ │ │ +175 {
│ │ │ │ +176 /// @addtogroup chrono
│ │ │ │ +177 /// @{
│ │ │ │ +178
│ │ │ │ +179 /// @cond undocumented
│ │ │ │ +180
│ │ │ │ +181 // Primary template for duration_cast impl.
│ │ │ │ +182 template
│ │ │ │ +184 struct __duration_cast_impl
│ │ │ │ +185 {
│ │ │ │ +186 template
│ │ │ │ +187 static constexpr _ToDur
│ │ │ │ +188 __cast(const duration<_Rep, _Period>& __d)
│ │ │ │ +189 {
│ │ │ │ +190 typedef typename _ToDur::rep __to_rep;
│ │ │ │ +191 return _ToDur(static_cast<__to_rep>(static_cast<_CR>(__d.count())
│ │ │ │ +192 * static_cast<_CR>(_CF::num)
│ │ │ │ +193 / static_cast<_CR>(_CF::den)));
│ │ │ │ +194 }
│ │ │ │ +195 };
│ │ │ │ +196
│ │ │ │ +197 template
│ │ │ │ +198 struct __duration_cast_impl<_ToDur, _CF, _CR, true, true>
│ │ │ │ +199 {
│ │ │ │ +200 template
│ │ │ │ +201 static constexpr _ToDur
│ │ │ │ +202 __cast(const duration<_Rep, _Period>& __d)
│ │ │ │ +203 {
│ │ │ │ +204 typedef typename _ToDur::rep __to_rep;
│ │ │ │ +205 return _ToDur(static_cast<__to_rep>(__d.count()));
│ │ │ │ +206 }
│ │ │ │ +207 };
│ │ │ │ +208
│ │ │ │ +209 template
│ │ │ │ +210 struct __duration_cast_impl<_ToDur, _CF, _CR, true, false>
│ │ │ │ +211 {
│ │ │ │ +212 template
│ │ │ │ +213 static constexpr _ToDur
│ │ │ │ +214 __cast(const duration<_Rep, _Period>& __d)
│ │ │ │ +215 {
│ │ │ │ +216 typedef typename _ToDur::rep __to_rep;
│ │ │ │ +217 return _ToDur(static_cast<__to_rep>(
│ │ │ │ +218 static_cast<_CR>(__d.count()) / static_cast<_CR>(_CF::den)));
│ │ │ │ +219 }
│ │ │ │ +220 };
│ │ │ │ +221
│ │ │ │ +222 template
│ │ │ │ +223 struct __duration_cast_impl<_ToDur, _CF, _CR, false, true>
│ │ │ │ +224 {
│ │ │ │ +225 template
│ │ │ │ +226 static constexpr _ToDur
│ │ │ │ +227 __cast(const duration<_Rep, _Period>& __d)
│ │ │ │ +228 {
│ │ │ │ +229 typedef typename _ToDur::rep __to_rep;
│ │ │ │ +230 return _ToDur(static_cast<__to_rep>(
│ │ │ │ +231 static_cast<_CR>(__d.count()) * static_cast<_CR>(_CF::num)));
│ │ │ │ +232 }
│ │ │ │ +233 };
│ │ │ │ +234
│ │ │ │ +235 template
│ │ │ │ +236 struct __is_duration
│ │ │ │ +237 : _s_t_d_:_:_f_a_l_s_e___t_y_p_e
│ │ │ │ +238 { };
│ │ │ │ +239
│ │ │ │ +240 template
│ │ │ │ +241 struct __is_duration<_d_u_r_a_t_i_o_n<_Rep, _Period>>
│ │ │ │ +242 : _s_t_d_:_:_t_r_u_e___t_y_p_e
│ │ │ │ +243 { };
│ │ │ │ +244
│ │ │ │ +245 template
│ │ │ │ +246 using __enable_if_is_duration
│ │ │ │ +247 = typename enable_if<__is_duration<_Tp>::value, _Tp>::type;
│ │ │ │ +248
│ │ │ │ +249 template
│ │ │ │ +250 using __disable_if_is_duration
│ │ │ │ +251 = typename enable_if::value, _Tp>::type;
│ │ │ │ +252
│ │ │ │ +253#if __cplusplus >= 201703L
│ │ │ │ +254 template
│ │ │ │ +255 inline constexpr bool __is_duration_v = false;
│ │ │ │ +256 template
│ │ │ │ +257 inline constexpr bool __is_duration_v> = true;
│ │ │ │ +258 template
│ │ │ │ +259 inline constexpr bool __is_time_point_v = false;
│ │ │ │ +260 template
│ │ │ │ +261 inline constexpr bool __is_time_point_v> = true;
│ │ │ │ +262#endif
│ │ │ │ +263
│ │ │ │ +264 /// @endcond
│ │ │ │ +265
│ │ │ │ +266 /** Convert a `duration` to type `ToDur`.
│ │ │ │ +267 *
│ │ │ │ +268 * If the duration cannot be represented accurately in the result type,
│ │ │ │ +269 * returns the result of integer truncation (i.e., rounded towards zero).
│ │ │ │ +270 *
│ │ │ │ +271 * @tparam _ToDur The result type must be a `duration`.
│ │ │ │ +272 * @param __d A duration.
│ │ │ │ +273 * @return The value of `__d` converted to type `_ToDur`.
│ │ │ │ +274 * @since C++11
│ │ │ │ +275 */
│ │ │ │ +276 template
│ │ │ │ +277 _GLIBCXX_NODISCARD
│ │ │ │ +278 constexpr __enable_if_is_duration<_ToDur>
│ │ │ │ +_2_7_9 _d_u_r_a_t_i_o_n___c_a_s_t(const _d_u_r_a_t_i_o_n_<___R_e_p_,_ ___P_e_r_i_o_d_>& __d)
│ │ │ │ +280 {
│ │ │ │ +281#if __cpp_inline_variables && __cpp_if_constexpr
│ │ │ │ +282 if constexpr (is_same_v<_ToDur, duration<_Rep, _Period>>)
│ │ │ │ +283 return __d;
│ │ │ │ +284 else
│ │ │ │ +285 {
│ │ │ │ +286#endif
│ │ │ │ +287 using __to_period = typename _ToDur::period;
│ │ │ │ +288 using __to_rep = typename _ToDur::rep;
│ │ │ │ +289 using __cf = _r_a_t_i_o___d_i_v_i_d_e_<___P_e_r_i_o_d_,_ _____t_o___p_e_r_i_o_d_>;
│ │ │ │ +290 using __cr = typename _c_o_m_m_o_n___t_y_p_e_<_____t_o___r_e_p_,_ ___R_e_p_,_ _i_n_t_m_a_x___t_>_:_:_t_y_p_e;
│ │ │ │ +291 using __dc = __duration_cast_impl<_ToDur, __cf, __cr,
│ │ │ │ +292 __cf::num == 1, __cf::den == 1>;
│ │ │ │ +293 return __dc::__cast(__d);
│ │ │ │ +294#if __cpp_inline_variables && __cpp_if_constexpr
│ │ │ │ +295 }
│ │ │ │ +296#endif
│ │ │ │ +297 }
│ │ │ │ +298
│ │ │ │ +299 /** Trait indicating whether to treat a type as a floating-point type.
│ │ │ │ +300 *
│ │ │ │ +301 * The chrono library uses this trait to tell whether a `duration` can
│ │ │ │ +302 * represent fractional values of the given precision, or only integral
│ │ │ │ +303 * values.
│ │ │ │ +304 *
│ │ │ │ +305 * You should specialize this trait for your own numeric types that are
│ │ │ │ +306 * used with `duration` and can represent non-integral values.
│ │ │ │ +307 *
│ │ │ │ +308 * @since C++11
│ │ │ │ +309 */
│ │ │ │ +310 template
│ │ │ │ +_3_1_1 struct _t_r_e_a_t___a_s___f_l_o_a_t_i_n_g___p_o_i_n_t
│ │ │ │ +312 : _i_s___f_l_o_a_t_i_n_g___p_o_i_n_t<_Rep>
│ │ │ │ +313 { };
│ │ │ │ +314
│ │ │ │ +315#if __cplusplus > 201402L
│ │ │ │ +316 template
│ │ │ │ +317 inline constexpr bool treat_as_floating_point_v =
│ │ │ │ +318 _t_r_e_a_t___a_s___f_l_o_a_t_i_n_g___p_o_i_n_t_<___R_e_p_>_:_:_v_a_l_u_e;
│ │ │ │ +319
│ │ │ │ +320 template<>
│ │ │ │ +321 inline constexpr bool treat_as_floating_point_v = false;
│ │ │ │ +322 template<>
│ │ │ │ +323 inline constexpr bool treat_as_floating_point_v = false;
│ │ │ │ +324 template<>
│ │ │ │ +325 inline constexpr bool treat_as_floating_point_v = false;
│ │ │ │ +326 template<>
│ │ │ │ +327 inline constexpr bool treat_as_floating_point_v = true;
│ │ │ │ +328 template<>
│ │ │ │ +329 inline constexpr bool treat_as_floating_point_v = true;
│ │ │ │ +330 template<>
│ │ │ │ +331 inline constexpr bool treat_as_floating_point_v = true;
│ │ │ │ +332#endif // C++17
│ │ │ │ +333
│ │ │ │ +334#if __cplusplus > 201703L
│ │ │ │ +335#if __cpp_lib_concepts
│ │ │ │ +336 template
│ │ │ │ +337 inline constexpr bool is_clock_v = false;
│ │ │ │ +338
│ │ │ │ +339 template
│ │ │ │ +340 requires requires {
│ │ │ │ +341 typename _Tp::rep;
│ │ │ │ +342 typename _Tp::period;
│ │ │ │ +343 typename _Tp::duration;
│ │ │ │ +344 typename _Tp::time_point::clock;
│ │ │ │ +345 typename _Tp::time_point::duration;
│ │ │ │ +346 { &_Tp::is_steady } -> _s_a_m_e___a_s_<_c_o_n_s_t_ _b_o_o_l_*_>;
│ │ │ │ +347 { _Tp::now() } -> same_as;
│ │ │ │ +348 requires same_as>;
│ │ │ │ +350 requires same_as;
│ │ │ │ +352 }
│ │ │ │ +353 inline constexpr bool is_clock_v<_Tp> = true;
│ │ │ │ +354#else
│ │ │ │ +355 template
│ │ │ │ +356 inline constexpr bool is_clock_v = false;
│ │ │ │ +357
│ │ │ │ +358 template
│ │ │ │ +359 inline constexpr bool
│ │ │ │ +360 is_clock_v<_Tp, _v_o_i_d___t>
│ │ │ │ +365 = __and_v>,
│ │ │ │ +367 is_same,
│ │ │ │ +369 is_same,
│ │ │ │ +370 is_same>;
│ │ │ │ +371#endif
│ │ │ │ +372
│ │ │ │ +373 template
│ │ │ │ +374 struct is_clock
│ │ │ │ +375 : bool_constant>
│ │ │ │ +376 { };
│ │ │ │ +377#endif // C++20
│ │ │ │ +378
│ │ │ │ +379#if __cplusplus >= 201703L // C++ >= 17
│ │ │ │ +380 /** Convert a `duration` to type `ToDur` and round down.
│ │ │ │ +381 *
│ │ │ │ +382 * If the duration cannot be represented exactly in the result type,
│ │ │ │ +383 * returns the closest value that is less than the argument.
│ │ │ │ +384 *
│ │ │ │ +385 * @tparam _ToDur The result type must be a `duration`.
│ │ │ │ +386 * @param __d A duration.
│ │ │ │ +387 * @return The value of `__d` converted to type `_ToDur`.
│ │ │ │ +388 * @since C++17
│ │ │ │ +389 */
│ │ │ │ +390 template
│ │ │ │ +391 [[nodiscard]] constexpr __enable_if_is_duration<_ToDur>
│ │ │ │ +_3_9_2 _f_l_o_o_r(const _d_u_r_a_t_i_o_n_<___R_e_p_,_ ___P_e_r_i_o_d_>& __d)
│ │ │ │ +393 {
│ │ │ │ +394 auto __to = _c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n___c_a_s_t_<___T_o_D_u_r_>(__d);
│ │ │ │ +395 if (__to > __d)
│ │ │ │ +396 return __to - _ToDur{1};
│ │ │ │ +397 return __to;
│ │ │ │ +398 }
│ │ │ │ +399
│ │ │ │ +400 /** Convert a `duration` to type `ToDur` and round up.
│ │ │ │ +401 *
│ │ │ │ +402 * If the duration cannot be represented exactly in the result type,
│ │ │ │ +403 * returns the closest value that is greater than the argument.
│ │ │ │ +404 *
│ │ │ │ +405 * @tparam _ToDur The result type must be a `duration`.
│ │ │ │ +406 * @param __d A duration.
│ │ │ │ +407 * @return The value of `__d` converted to type `_ToDur`.
│ │ │ │ +408 * @since C++17
│ │ │ │ +409 */
│ │ │ │ +410 template
│ │ │ │ +411 [[nodiscard]] constexpr __enable_if_is_duration<_ToDur>
│ │ │ │ +_4_1_2 _c_e_i_l(const _d_u_r_a_t_i_o_n_<___R_e_p_,_ ___P_e_r_i_o_d_>& __d)
│ │ │ │ +413 {
│ │ │ │ +414 auto __to = _c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n___c_a_s_t_<___T_o_D_u_r_>(__d);
│ │ │ │ +415 if (__to < __d)
│ │ │ │ +416 return __to + _ToDur{1};
│ │ │ │ +417 return __to;
│ │ │ │ +418 }
│ │ │ │ +419
│ │ │ │ +420 /** Convert a `duration` to type `ToDur` and round to the closest value.
│ │ │ │ +421 *
│ │ │ │ +422 * If the duration cannot be represented exactly in the result type,
│ │ │ │ +423 * returns the closest value, rounding ties to even.
│ │ │ │ +424 *
│ │ │ │ +425 * @tparam _ToDur The result type must be a `duration` with a
│ │ │ │ +426 * non-floating-point `rep` type.
│ │ │ │ +427 * @param __d A duration.
│ │ │ │ +428 * @return The value of `__d` converted to type `_ToDur`.
│ │ │ │ +429 * @since C++17
│ │ │ │ +430 */
│ │ │ │ +431 template
│ │ │ │ +432 [[nodiscard]] constexpr
│ │ │ │ +433 _e_n_a_b_l_e___i_f___t<
│ │ │ │ +434 __and_<__is_duration<_ToDur>,
│ │ │ │ +435 __not_>>::value,
│ │ │ │ +436 _ToDur>
│ │ │ │ +_4_3_7 _r_o_u_n_d(const _d_u_r_a_t_i_o_n_<___R_e_p_,_ ___P_e_r_i_o_d_>& __d)
│ │ │ │ +438 {
│ │ │ │ +439 _ToDur __t0 = _c_h_r_o_n_o_:_:_f_l_o_o_r_<___T_o_D_u_r_>(__d);
│ │ │ │ +440 _ToDur __t1 = __t0 + _ToDur{1};
│ │ │ │ +441 auto __diff0 = __d - __t0;
│ │ │ │ +442 auto __diff1 = __t1 - __d;
│ │ │ │ +443 if (__diff0 == __diff1)
│ │ │ │ +444 {
│ │ │ │ +445 if (__t0.count() & 1)
│ │ │ │ +446 return __t1;
│ │ │ │ +447 return __t0;
│ │ │ │ +448 }
│ │ │ │ +449 else if (__diff0 < __diff1)
│ │ │ │ +450 return __t0;
│ │ │ │ +451 return __t1;
│ │ │ │ +452 }
│ │ │ │ +453
│ │ │ │ +454 /** The absolute (non-negative) value of a duration.
│ │ │ │ +455 *
│ │ │ │ +456 * @param __d A duration with a signed `rep` type.
│ │ │ │ +457 * @return A duration of the same type as the argument, with value |d|.
│ │ │ │ +458 * @since C++17
│ │ │ │ +459 */
│ │ │ │ +460 template
│ │ │ │ +461 [[nodiscard]] constexpr
│ │ │ │ +462 _e_n_a_b_l_e___i_f___t_<_n_u_m_e_r_i_c___l_i_m_i_t_s_<___R_e_p_>_:_:_i_s___s_i_g_n_e_d, duration<_Rep, _Period>>
│ │ │ │ +_4_6_3 _a_b_s(_d_u_r_a_t_i_o_n_<___R_e_p_,_ ___P_e_r_i_o_d_> __d)
│ │ │ │ +464 {
│ │ │ │ +465 if (__d >= __d.zero())
│ │ │ │ +466 return __d;
│ │ │ │ +467 return -__d;
│ │ │ │ +468 }
│ │ │ │ +469
│ │ │ │ +470 // Make chrono::ceil also usable as chrono::__detail::ceil.
│ │ │ │ +471 namespace _____d_e_t_a_i_l { using _c_h_r_o_n_o_:_:_c_e_i_l; }
│ │ │ │ +472
│ │ │ │ +473#else // ! __glibcxx_chrono
│ │ │ │ +474
│ │ │ │ +475 // We want to use ceil even when compiling for earlier standards versions.
│ │ │ │ +476 // C++11 only allows a single statement in a constexpr function, so we
│ │ │ │ +477 // need to move the comparison into a separate function, __ceil_impl.
│ │ │ │ +478 namespace __detail
│ │ │ │ +479 {
│ │ │ │ +480 template
│ │ │ │ +481 constexpr _Tp
│ │ │ │ +482 __ceil_impl(const _Tp& __t, const _Up& __u)
│ │ │ │ +483 {
│ │ │ │ +484 return (__t < __u) ? (__t + _Tp{1}) : __t;
│ │ │ │ +485 }
│ │ │ │ +486
│ │ │ │ +487 // C++11-friendly version of std::chrono::ceil for internal use.
│ │ │ │ +488 template
│ │ │ │ +489 constexpr _ToDur
│ │ │ │ +490 _c_e_i_l(const duration<_Rep, _Period>& __d)
│ │ │ │ +491 {
│ │ │ │ +492 return __detail::__ceil_impl(_c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n___c_a_s_t_<___T_o_D_u_r_>(__d), __d);
│ │ │ │ +493 }
│ │ │ │ +494 }
│ │ │ │ +495#endif // __glibcxx_chrono
│ │ │ │ +496
│ │ │ │ +497 /// duration_values
│ │ │ │ +498 template
│ │ │ │ +_4_9_9 struct _d_u_r_a_t_i_o_n___v_a_l_u_e_s
│ │ │ │ +500 {
│ │ │ │ +501 static constexpr _Rep
│ │ │ │ +502 zero() noexcept
│ │ │ │ +503 { return _Rep(0); }
│ │ │ │ +504
│ │ │ │ +505 static constexpr _Rep
│ │ │ │ +506 max() noexcept
│ │ │ │ +507 { return _n_u_m_e_r_i_c___l_i_m_i_t_s_<___R_e_p_>_:_:_m_a_x(); }
│ │ │ │ +508
│ │ │ │ +509 static constexpr _Rep
│ │ │ │ +510 min() noexcept
│ │ │ │ +511 { return _n_u_m_e_r_i_c___l_i_m_i_t_s_<___R_e_p_>_:_:_l_o_w_e_s_t(); }
│ │ │ │ +512 };
│ │ │ │ +513
│ │ │ │ +514 template
│ │ │ │ +_5_1_5 class duration
│ │ │ │ +516 {
│ │ │ │ +517 static_assert(!__is_duration<_Rep>::value,
│ │ │ │ +518 "rep cannot be a std::chrono::duration");
│ │ │ │ +519 static_assert(__is_ratio<_Period>::value,
│ │ │ │ +520 "period must be a specialization of std::ratio");
│ │ │ │ +521 static_assert(_Period::num > 0, "period must be positive");
│ │ │ │ +522
│ │ │ │ +523 template
│ │ │ │ +524 using __is_float = _t_r_e_a_t___a_s___f_l_o_a_t_i_n_g___p_o_i_n_t_<___R_e_p_2_>;
│ │ │ │ +525
│ │ │ │ +526 static constexpr intmax_t
│ │ │ │ +527 _S_gcd(intmax_t __m, intmax_t __n) noexcept
│ │ │ │ +528 {
│ │ │ │ +529 // Duration only allows positive periods so we don't need to
│ │ │ │ +530 // handle negative values here (unlike __static_gcd and std::gcd).
│ │ │ │ +531#if __cplusplus >= 201402L
│ │ │ │ +532 do
│ │ │ │ +533 {
│ │ │ │ +534 intmax_t __rem = __m % __n;
│ │ │ │ +535 __m = __n;
│ │ │ │ +536 __n = __rem;
│ │ │ │ +537 }
│ │ │ │ +538 while (__n != 0);
│ │ │ │ +539 return __m;
│ │ │ │ +540#else
│ │ │ │ +541 // C++11 doesn't allow loops in constexpr functions, but this
│ │ │ │ +542 // recursive version can be more expensive to evaluate.
│ │ │ │ +543 return (__n == 0) ? __m : _S_gcd(__n, __m % __n);
│ │ │ │ +544#endif
│ │ │ │ +545 }
│ │ │ │ +546
│ │ │ │ +547 // _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ +548 // 2094. overflow shouldn't participate in overload resolution
│ │ │ │ +549 // 3090. What is [2094] intended to mean?
│ │ │ │ +550 // This only produces a valid type if no overflow occurs.
│ │ │ │ +551 template
│ │ │ │ +554 using __divide = _r_a_t_i_o<(_R1::num / __gcd1) * (_R2::den / __gcd2),
│ │ │ │ +555 (_R1::den / __gcd2) * (_R2::num / __gcd1)>;
│ │ │ │ +556
│ │ │ │ +557 // _Period2 is an exact multiple of _Period
│ │ │ │ +558 template
│ │ │ │ +559 using __is_harmonic
│ │ │ │ +560 = __bool_constant<__divide<_Period2, _Period>::den == 1>;
│ │ │ │ +561
│ │ │ │ +562 public:
│ │ │ │ +563
│ │ │ │ +564 using rep = _Rep;
│ │ │ │ +565 using period = typename _Period::type;
│ │ │ │ +566
│ │ │ │ +567 // 20.11.5.1 construction / copy / destroy
│ │ │ │ +568 constexpr duration() = default;
│ │ │ │ +569
│ │ │ │ +570 duration(const duration&) = default;
│ │ │ │ +571
│ │ │ │ +572 // _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ +573 // 3050. Conversion specification problem in chrono::duration
│ │ │ │ +574 template,
│ │ │ │ +576 __or_<__is_float, __not_<__is_float<_Rep2>>>>>
│ │ │ │ +577 constexpr explicit duration(const _Rep2& __rep)
│ │ │ │ +578 : __r(static_cast(__rep)) { }
│ │ │ │ +579
│ │ │ │ +580 template,
│ │ │ │ +582 __or_<__is_float,
│ │ │ │ +583 __and_<__is_harmonic<_Period2>,
│ │ │ │ +584 __not_<__is_float<_Rep2>>>>>>
│ │ │ │ +585 constexpr duration(const duration<_Rep2, _Period2>& __d)
│ │ │ │ +586 : __r(_d_u_r_a_t_i_o_n___c_a_s_t_<_d_u_r_a_t_i_o_n_>(__d).count()) { }
│ │ │ │ +587
│ │ │ │ +588 ~duration() = default;
│ │ │ │ +589 duration& operator=(const duration&) = default;
│ │ │ │ +590
│ │ │ │ +591 // 20.11.5.2 observer
│ │ │ │ +592 constexpr rep
│ │ │ │ +593 count() const
│ │ │ │ +594 { return __r; }
│ │ │ │ +595
│ │ │ │ +596 // 20.11.5.3 arithmetic
│ │ │ │ +597
│ │ │ │ +598 constexpr duration::type, period>
│ │ │ │ +599 operator+() const
│ │ │ │ +600 { return duration::type, period>(__r); }
│ │ │ │ +601
│ │ │ │ +602 constexpr duration::type, period>
│ │ │ │ +603 operator-() const
│ │ │ │ +604 { return duration::type, period>(-__r); }
│ │ │ │ +605
│ │ │ │ +606 _GLIBCXX17_CONSTEXPR duration&
│ │ │ │ +607 operator++()
│ │ │ │ +608 {
│ │ │ │ +609 ++__r;
│ │ │ │ +610 return *this;
│ │ │ │ +611 }
│ │ │ │ +612
│ │ │ │ +613 _GLIBCXX17_CONSTEXPR duration
│ │ │ │ +614 operator++(int)
│ │ │ │ +615 { return duration(__r++); }
│ │ │ │ +616
│ │ │ │ +617 _GLIBCXX17_CONSTEXPR duration&
│ │ │ │ +618 operator--()
│ │ │ │ +619 {
│ │ │ │ +620 --__r;
│ │ │ │ +621 return *this;
│ │ │ │ +622 }
│ │ │ │ +623
│ │ │ │ +624 _GLIBCXX17_CONSTEXPR duration
│ │ │ │ +625 operator--(int)
│ │ │ │ +626 { return duration(__r--); }
│ │ │ │ +627
│ │ │ │ +628 _GLIBCXX17_CONSTEXPR duration&
│ │ │ │ +629 operator+=(const duration& __d)
│ │ │ │ +630 {
│ │ │ │ +631 __r += __d.count();
│ │ │ │ +632 return *this;
│ │ │ │ +633 }
│ │ │ │ +634
│ │ │ │ +635 _GLIBCXX17_CONSTEXPR duration&
│ │ │ │ +636 operator-=(const duration& __d)
│ │ │ │ +637 {
│ │ │ │ +638 __r -= __d.count();
│ │ │ │ +639 return *this;
│ │ │ │ +640 }
│ │ │ │ +641
│ │ │ │ +642 _GLIBCXX17_CONSTEXPR duration&
│ │ │ │ +643 operator*=(const rep& __rhs)
│ │ │ │ +644 {
│ │ │ │ +645 __r *= __rhs;
│ │ │ │ +646 return *this;
│ │ │ │ +647 }
│ │ │ │ +648
│ │ │ │ +649 _GLIBCXX17_CONSTEXPR duration&
│ │ │ │ +650 operator/=(const rep& __rhs)
│ │ │ │ +651 {
│ │ │ │ +652 __r /= __rhs;
│ │ │ │ +653 return *this;
│ │ │ │ +654 }
│ │ │ │ +655
│ │ │ │ +656 // DR 934.
│ │ │ │ +657 template
│ │ │ │ +658 _GLIBCXX17_CONSTEXPR
│ │ │ │ +659 __enable_if_t::value, duration&>
│ │ │ │ +660 operator%=(const rep& __rhs)
│ │ │ │ +661 {
│ │ │ │ +662 __r %= __rhs;
│ │ │ │ +663 return *this;
│ │ │ │ +664 }
│ │ │ │ +665
│ │ │ │ +666 template
│ │ │ │ +667 _GLIBCXX17_CONSTEXPR
│ │ │ │ +668 __enable_if_t::value, duration&>
│ │ │ │ +669 operator%=(const duration& __d)
│ │ │ │ +670 {
│ │ │ │ +671 __r %= __d.count();
│ │ │ │ +672 return *this;
│ │ │ │ +673 }
│ │ │ │ +674
│ │ │ │ +675 // 20.11.5.4 special values
│ │ │ │ +676 static constexpr duration
│ │ │ │ +677 zero() noexcept
│ │ │ │ +678 { return duration(duration_values::zero()); }
│ │ │ │ +679
│ │ │ │ +680 static constexpr duration
│ │ │ │ +681 min() noexcept
│ │ │ │ +682 { return duration(duration_values::min()); }
│ │ │ │ +683
│ │ │ │ +684 static constexpr duration
│ │ │ │ +685 max() noexcept
│ │ │ │ +686 { return duration(duration_values::max()); }
│ │ │ │ +687
│ │ │ │ +688 private:
│ │ │ │ +689 rep __r;
│ │ │ │ +690 };
│ │ │ │ +691
│ │ │ │ +692 /// @{
│ │ │ │ +693 /// @relates std::chrono::duration
│ │ │ │ +694
│ │ │ │ +695 /// The sum of two durations.
│ │ │ │ +696 template
│ │ │ │ +698 constexpr typename _c_o_m_m_o_n___t_y_p_e_<_d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_>,
│ │ │ │ +699 _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_>>_:_:_t_y_p_e
│ │ │ │ +_7_0_0 _o_p_e_r_a_t_o_r_+(const duration<_Rep1, _Period1>& __lhs,
│ │ │ │ +701 const duration<_Rep2, _Period2>& __rhs)
│ │ │ │ +702 {
│ │ │ │ +703 typedef duration<_Rep1, _Period1> __dur1;
│ │ │ │ +704 typedef duration<_Rep2, _Period2> __dur2;
│ │ │ │ +705 typedef typename _c_o_m_m_o_n___t_y_p_e_<_____d_u_r_1_,_____d_u_r_2_>_:_:_t_y_p_e __cd;
│ │ │ │ +706 return __cd(__cd(__lhs).count() + __cd(__rhs).count());
│ │ │ │ +707 }
│ │ │ │ +708
│ │ │ │ +709 /// The difference between two durations.
│ │ │ │ +710 template
│ │ │ │ +712 constexpr typename _c_o_m_m_o_n___t_y_p_e_<_d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_>,
│ │ │ │ +713 _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_>>_:_:_t_y_p_e
│ │ │ │ +_7_1_4 _o_p_e_r_a_t_o_r_-(const _d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_>& __lhs,
│ │ │ │ +715 const _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_>& __rhs)
│ │ │ │ +716 {
│ │ │ │ +717 typedef _d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_> __dur1;
│ │ │ │ +718 typedef _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_> __dur2;
│ │ │ │ +719 typedef typename _c_o_m_m_o_n___t_y_p_e_<_____d_u_r_1_,_____d_u_r_2_>_:_:_t_y_p_e __cd;
│ │ │ │ +720 return __cd(__cd(__lhs).count() - __cd(__rhs).count());
│ │ │ │ +721 }
│ │ │ │ +722
│ │ │ │ +723 /// @}
│ │ │ │ +724
│ │ │ │ +725 /// @cond undocumented
│ │ │ │ +726
│ │ │ │ +727 // SFINAE helper to obtain common_type<_Rep1, _Rep2> only if _Rep2
│ │ │ │ +728 // is implicitly convertible to it.
│ │ │ │ +729 // _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ +730 // 3050. Conversion specification problem in chrono::duration constructor
│ │ │ │ +731 template_:_:_t_y_p_e>
│ │ │ │ +733 using __common_rep_t = typename
│ │ │ │ +734 _e_n_a_b_l_e___i_f_<_i_s___c_o_n_v_e_r_t_i_b_l_e_<_c_o_n_s_t_ ___R_e_p_2_&_,_ ___C_R_e_p_>_:_:_v_a_l_u_e, _CRep>_:_:_t_y_p_e;
│ │ │ │ +735
│ │ │ │ +736 /// @endcond
│ │ │ │ +737
│ │ │ │ +738 /** @{
│ │ │ │ +739 * Arithmetic operators for chrono::duration
│ │ │ │ +740 * @relates std::chrono::duration
│ │ │ │ +741 */
│ │ │ │ +742
│ │ │ │ +743 template
│ │ │ │ +744 constexpr duration<__common_rep_t<_Rep1, _Rep2>, _Period>
│ │ │ │ +_7_4_5 _o_p_e_r_a_t_o_r_*(const duration<_Rep1, _Period>& __d, const _Rep2& __s)
│ │ │ │ +746 {
│ │ │ │ +747 typedef duration::type, _Period>
│ │ │ │ +748 __cd;
│ │ │ │ +749 return __cd(__cd(__d).count() * __s);
│ │ │ │ +750 }
│ │ │ │ +751
│ │ │ │ +752 template
│ │ │ │ +753 constexpr _d_u_r_a_t_i_o_n_<_____c_o_m_m_o_n___r_e_p___t_<___R_e_p_2_,_ ___R_e_p_1_>, _Period>
│ │ │ │ +_7_5_4 _o_p_e_r_a_t_o_r_*(const _Rep1& __s, const _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_>& __d)
│ │ │ │ +755 { return __d * __s; }
│ │ │ │ +756
│ │ │ │ +757 template
│ │ │ │ +758 constexpr
│ │ │ │ +759 duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period>
│ │ │ │ +_7_6_0 _o_p_e_r_a_t_o_r_/(const _d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_>& __d, const _Rep2& __s)
│ │ │ │ +761 {
│ │ │ │ +762 typedef _d_u_r_a_t_i_o_n_<_t_y_p_e_n_a_m_e_ _c_o_m_m_o_n___t_y_p_e_<___R_e_p_1_,_ ___R_e_p_2_>_:_:_t_y_p_e, _Period>
│ │ │ │ +763 __cd;
│ │ │ │ +764 return __cd(__cd(__d).count() / __s);
│ │ │ │ +765 }
│ │ │ │ +766
│ │ │ │ +767 template
│ │ │ │ +769 constexpr typename _c_o_m_m_o_n___t_y_p_e_<___R_e_p_1_,_ ___R_e_p_2_>_:_:_t_y_p_e
│ │ │ │ +_7_7_0 _o_p_e_r_a_t_o_r_/(const _d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_>& __lhs,
│ │ │ │ +771 const _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_>& __rhs)
│ │ │ │ +772 {
│ │ │ │ +773 typedef _d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_> __dur1;
│ │ │ │ +774 typedef _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_> __dur2;
│ │ │ │ +775 typedef typename _c_o_m_m_o_n___t_y_p_e_<_____d_u_r_1_,_____d_u_r_2_>_:_:_t_y_p_e __cd;
│ │ │ │ +776 return __cd(__lhs).count() / __cd(__rhs).count();
│ │ │ │ +777 }
│ │ │ │ +778
│ │ │ │ +779 // DR 934.
│ │ │ │ +780 template
│ │ │ │ +781 constexpr
│ │ │ │ +782 duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period>
│ │ │ │ +_7_8_3 _o_p_e_r_a_t_o_r_%(const _d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_>& __d, const _Rep2& __s)
│ │ │ │ +784 {
│ │ │ │ +785 typedef _d_u_r_a_t_i_o_n_<_t_y_p_e_n_a_m_e_ _c_o_m_m_o_n___t_y_p_e_<___R_e_p_1_,_ ___R_e_p_2_>_:_:_t_y_p_e, _Period>
│ │ │ │ +786 __cd;
│ │ │ │ +787 return __cd(__cd(__d).count() % __s);
│ │ │ │ +788 }
│ │ │ │ +789
│ │ │ │ +790 template
│ │ │ │ +792 constexpr typename _c_o_m_m_o_n___t_y_p_e_<_d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_>,
│ │ │ │ +793 duration<_Rep2, _Period2>>_:_:_t_y_p_e
│ │ │ │ +_7_9_4 _o_p_e_r_a_t_o_r_%(const _d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_>& __lhs,
│ │ │ │ +795 const _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_>& __rhs)
│ │ │ │ +796 {
│ │ │ │ +797 typedef _d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_> __dur1;
│ │ │ │ +798 typedef _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_> __dur2;
│ │ │ │ +799 typedef typename _c_o_m_m_o_n___t_y_p_e_<_____d_u_r_1_,_____d_u_r_2_>_:_:_t_y_p_e __cd;
│ │ │ │ +800 return __cd(__cd(__lhs).count() % __cd(__rhs).count());
│ │ │ │ +801 }
│ │ │ │ +802 /// @}
│ │ │ │ +803
│ │ │ │ +804 // comparisons
│ │ │ │ +805
│ │ │ │ +806 /** @{
│ │ │ │ +807 * Comparisons for chrono::duration
│ │ │ │ +808 * @relates std::chrono::duration
│ │ │ │ +809 */
│ │ │ │ +810
│ │ │ │ +811 template
│ │ │ │ +813 constexpr bool
│ │ │ │ +_8_1_4 _o_p_e_r_a_t_o_r_=_=(const duration<_Rep1, _Period1>& __lhs,
│ │ │ │ +815 const duration<_Rep2, _Period2>& __rhs)
│ │ │ │ +816 {
│ │ │ │ +817 typedef duration<_Rep1, _Period1> __dur1;
│ │ │ │ +818 typedef duration<_Rep2, _Period2> __dur2;
│ │ │ │ +819 typedef typename _c_o_m_m_o_n___t_y_p_e_<_____d_u_r_1_,_____d_u_r_2_>_:_:_t_y_p_e __ct;
│ │ │ │ +820 return __ct(__lhs).count() == __ct(__rhs).count();
│ │ │ │ +821 }
│ │ │ │ +822
│ │ │ │ +823 template
│ │ │ │ +_8_2_5 constexpr bool
│ │ │ │ +826 _o_p_e_r_a_t_o_r_<(const _d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_>& __lhs,
│ │ │ │ +827 const _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_>& __rhs)
│ │ │ │ +828 {
│ │ │ │ +829 typedef _d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_> __dur1;
│ │ │ │ +830 typedef _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_> __dur2;
│ │ │ │ +831 typedef typename _c_o_m_m_o_n___t_y_p_e_<_____d_u_r_1_,_____d_u_r_2_>_:_:_t_y_p_e __ct;
│ │ │ │ +832 return __ct(__lhs).count() < __ct(__rhs).count();
│ │ │ │ +833 }
│ │ │ │ +834
│ │ │ │ +835#if __cpp_lib_three_way_comparison
│ │ │ │ +836 template
│ │ │ │ +838 requires three_way_comparable>
│ │ │ │ +_8_3_9 constexpr auto
│ │ │ │ +840 _o_p_e_r_a_t_o_r_<_=_>(const _d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_>& __lhs,
│ │ │ │ +841 const _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_>& __rhs)
│ │ │ │ +842 {
│ │ │ │ +843 using __ct = _c_o_m_m_o_n___t_y_p_e___t_<_d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_>,
│ │ │ │ +844 _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_>>;
│ │ │ │ +845 return __ct(__lhs).count() <=> __ct(__rhs).count();
│ │ │ │ +846 }
│ │ │ │ +847#else
│ │ │ │ +848 template
│ │ │ │ +850 constexpr bool
│ │ │ │ +851 operator!=(const duration<_Rep1, _Period1>& __lhs,
│ │ │ │ +852 const duration<_Rep2, _Period2>& __rhs)
│ │ │ │ +853 { return !(__lhs == __rhs); }
│ │ │ │ +854#endif
│ │ │ │ +855
│ │ │ │ +856 template
│ │ │ │ +_8_5_8 constexpr bool
│ │ │ │ +859 _o_p_e_r_a_t_o_r_<_=(const _d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_>& __lhs,
│ │ │ │ +860 const _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_>& __rhs)
│ │ │ │ +861 { return !(__rhs < __lhs); }
│ │ │ │ +862
│ │ │ │ +863 template
│ │ │ │ +865 constexpr bool
│ │ │ │ +_8_6_6 _o_p_e_r_a_t_o_r_>(const _d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_>& __lhs,
│ │ │ │ +867 const _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_>& __rhs)
│ │ │ │ +868 { return __rhs < __lhs; }
│ │ │ │ +869
│ │ │ │ +870 template
│ │ │ │ +872 constexpr bool
│ │ │ │ +_8_7_3 _o_p_e_r_a_t_o_r_>_=(const _d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_>& __lhs,
│ │ │ │ +874 const _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_>& __rhs)
│ │ │ │ +875 { return !(__lhs < __rhs); }
│ │ │ │ +876
│ │ │ │ +877 /// @}
│ │ │ │ +878
│ │ │ │ +879 /// @cond undocumented
│ │ │ │ +880#ifdef _GLIBCXX_USE_C99_STDINT
│ │ │ │ +881# define _GLIBCXX_CHRONO_INT64_T int64_t
│ │ │ │ +882#elif defined __INT64_TYPE__
│ │ │ │ +883# define _GLIBCXX_CHRONO_INT64_T __INT64_TYPE__
│ │ │ │ +884#else
│ │ │ │ +885 static_assert(_s_t_d_:_:_n_u_m_e_r_i_c___l_i_m_i_t_s_<_u_n_s_i_g_n_e_d_ _l_o_n_g_ _l_o_n_g_>_:_:_d_i_g_i_t_s >= 64,
│ │ │ │ +886 "Representation type for nanoseconds must have at least 64 bits");
│ │ │ │ +887# define _GLIBCXX_CHRONO_INT64_T long long
│ │ │ │ +888#endif
│ │ │ │ +889 /// @endcond
│ │ │ │ +890
│ │ │ │ +891 /// nanoseconds
│ │ │ │ +_8_9_2 using _n_a_n_o_s_e_c_o_n_d_s = _d_u_r_a_t_i_o_n_<___G_L_I_B_C_X_X___C_H_R_O_N_O___I_N_T_6_4___T_,_ _n_a_n_o_>;
│ │ │ │ +893
│ │ │ │ +894 /// microseconds
│ │ │ │ +_8_9_5 using _m_i_c_r_o_s_e_c_o_n_d_s = _d_u_r_a_t_i_o_n_<___G_L_I_B_C_X_X___C_H_R_O_N_O___I_N_T_6_4___T_,_ _m_i_c_r_o_>;
│ │ │ │ +896
│ │ │ │ +897 /// milliseconds
│ │ │ │ +_8_9_8 using _m_i_l_l_i_s_e_c_o_n_d_s = _d_u_r_a_t_i_o_n_<___G_L_I_B_C_X_X___C_H_R_O_N_O___I_N_T_6_4___T_,_ _m_i_l_l_i_>;
│ │ │ │ +899
│ │ │ │ +900 /// seconds
│ │ │ │ +_9_0_1 using _s_e_c_o_n_d_s = _d_u_r_a_t_i_o_n_<___G_L_I_B_C_X_X___C_H_R_O_N_O___I_N_T_6_4___T_>;
│ │ │ │ +902
│ │ │ │ +903 /// minutes
│ │ │ │ +_9_0_4 using _m_i_n_u_t_e_s = _d_u_r_a_t_i_o_n_<___G_L_I_B_C_X_X___C_H_R_O_N_O___I_N_T_6_4___T_,_ _r_a_t_i_o_<_ _6_0_>>;
│ │ │ │ +905
│ │ │ │ +906 /// hours
│ │ │ │ +_9_0_7 using _h_o_u_r_s = _d_u_r_a_t_i_o_n_<___G_L_I_B_C_X_X___C_H_R_O_N_O___I_N_T_6_4___T_,_ _r_a_t_i_o_<_3_6_0_0_>>;
│ │ │ │ +908
│ │ │ │ +909#if __cplusplus > 201703L
│ │ │ │ +910 /// days
│ │ │ │ +_9_1_1 using _d_a_y_s = _d_u_r_a_t_i_o_n_<___G_L_I_B_C_X_X___C_H_R_O_N_O___I_N_T_6_4___T_,_ _r_a_t_i_o_<_8_6_4_0_0_>>;
│ │ │ │ +912
│ │ │ │ +913 /// weeks
│ │ │ │ +_9_1_4 using _w_e_e_k_s = _d_u_r_a_t_i_o_n_<___G_L_I_B_C_X_X___C_H_R_O_N_O___I_N_T_6_4___T_,_ _r_a_t_i_o_<_6_0_4_8_0_0_>>;
│ │ │ │ +915
│ │ │ │ +916 /// years
│ │ │ │ +_9_1_7 using _y_e_a_r_s = _d_u_r_a_t_i_o_n_<___G_L_I_B_C_X_X___C_H_R_O_N_O___I_N_T_6_4___T_,_ _r_a_t_i_o_<_3_1_5_5_6_9_5_2_>>;
│ │ │ │ +918
│ │ │ │ +919 /// months
│ │ │ │ +_9_2_0 using _m_o_n_t_h_s = _d_u_r_a_t_i_o_n_<___G_L_I_B_C_X_X___C_H_R_O_N_O___I_N_T_6_4___T_,_ _r_a_t_i_o_<_2_6_2_9_7_4_6_>>;
│ │ │ │ +921#endif // C++20
│ │ │ │ +922
│ │ │ │ +923#undef _GLIBCXX_CHRONO_INT64_T
│ │ │ │ +924
│ │ │ │ +925 template
│ │ │ │ +_9_2_6 class time_point
│ │ │ │ +927 {
│ │ │ │ +928 static_assert(__is_duration<_Dur>::value,
│ │ │ │ +929 "duration must be a specialization of std::chrono::duration");
│ │ │ │ +930
│ │ │ │ +931 public:
│ │ │ │ +932 typedef _Clock clock;
│ │ │ │ +933 typedef _Dur duration;
│ │ │ │ +934 typedef typename duration::rep rep;
│ │ │ │ +935 typedef typename duration::period period;
│ │ │ │ +936
│ │ │ │ +937 constexpr time_point() : __d(duration::zero())
│ │ │ │ +938 { }
│ │ │ │ +939
│ │ │ │ +940 constexpr explicit time_point(const duration& __dur)
│ │ │ │ +941 : __d(__dur)
│ │ │ │ +942 { }
│ │ │ │ +943
│ │ │ │ +944 // conversions
│ │ │ │ +945 template>>
│ │ │ │ +947 constexpr time_point(const time_point& __t)
│ │ │ │ +948 : __d(__t.time_since_epoch())
│ │ │ │ +949 { }
│ │ │ │ +950
│ │ │ │ +951 // observer
│ │ │ │ +952 constexpr duration
│ │ │ │ +953 time_since_epoch() const
│ │ │ │ +954 { return __d; }
│ │ │ │ +955
│ │ │ │ +956#if __cplusplus > 201703L
│ │ │ │ +957 constexpr time_point&
│ │ │ │ +958 operator++()
│ │ │ │ +959 {
│ │ │ │ +960 ++__d;
│ │ │ │ +961 return *this;
│ │ │ │ +962 }
│ │ │ │ +963
│ │ │ │ +964 constexpr time_point
│ │ │ │ +965 operator++(int)
│ │ │ │ +966 { return time_point{__d++}; }
│ │ │ │ +967
│ │ │ │ +968 constexpr time_point&
│ │ │ │ +969 operator--()
│ │ │ │ +970 {
│ │ │ │ +971 --__d;
│ │ │ │ +972 return *this;
│ │ │ │ +973 }
│ │ │ │ +974
│ │ │ │ +975 constexpr time_point
│ │ │ │ +976 operator--(int)
│ │ │ │ +977 { return time_point{__d--}; }
│ │ │ │ +978#endif
│ │ │ │ +979
│ │ │ │ +980 // arithmetic
│ │ │ │ +981 _GLIBCXX17_CONSTEXPR time_point&
│ │ │ │ +982 operator+=(const duration& __dur)
│ │ │ │ +983 {
│ │ │ │ +984 __d += __dur;
│ │ │ │ +985 return *this;
│ │ │ │ +986 }
│ │ │ │ +987
│ │ │ │ +988 _GLIBCXX17_CONSTEXPR time_point&
│ │ │ │ +989 operator-=(const duration& __dur)
│ │ │ │ +990 {
│ │ │ │ +991 __d -= __dur;
│ │ │ │ +992 return *this;
│ │ │ │ +993 }
│ │ │ │ +994
│ │ │ │ +995 // special values
│ │ │ │ +996 static constexpr time_point
│ │ │ │ +997 min() noexcept
│ │ │ │ +998 { return time_point(duration::min()); }
│ │ │ │ +999
│ │ │ │ +1000 static constexpr time_point
│ │ │ │ +1001 max() noexcept
│ │ │ │ +1002 { return time_point(duration::max()); }
│ │ │ │ +1003
│ │ │ │ +1004 private:
│ │ │ │ +1005 duration __d;
│ │ │ │ +1006 };
│ │ │ │ +1007
│ │ │ │ +1008 /** Convert a `time_point` to use `duration` type `ToDur`.
│ │ │ │ +1009 *
│ │ │ │ +1010 * The result is the same time point as measured by the same clock, but
│ │ │ │ +1011 * using the specified `duration` to represent the time.
│ │ │ │ +1012 * If the time point cannot be represented accurately in the result type,
│ │ │ │ +1013 * returns the result of integer truncation (i.e., rounded towards zero).
│ │ │ │ +1014 *
│ │ │ │ +1015 * @tparam _ToDur The `duration` type to use for the result.
│ │ │ │ +1016 * @param __t A time point.
│ │ │ │ +1017 * @return The value of `__t` converted to use type `_ToDur`.
│ │ │ │ +1018 * @since C++11
│ │ │ │ +1019 */
│ │ │ │ +1020 template
│ │ │ │ +1021 _GLIBCXX_NODISCARD constexpr
│ │ │ │ +1022 __enable_if_t<__is_duration<_ToDur>::value, _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___T_o_D_u_r_>>
│ │ │ │ +_1_0_2_3 _t_i_m_e___p_o_i_n_t___c_a_s_t(const _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_>& __t)
│ │ │ │ +1024 {
│ │ │ │ +1025 typedef _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___T_o_D_u_r_> __time_point;
│ │ │ │ +1026 return __time_point(_d_u_r_a_t_i_o_n___c_a_s_t_<___T_o_D_u_r_>(__t.time_since_epoch()));
│ │ │ │ +1027 }
│ │ │ │ +1028
│ │ │ │ +1029#if __cplusplus > 201402L
│ │ │ │ +1030 /** Convert a `time_point` to type `ToDur` and round down.
│ │ │ │ +1031 *
│ │ │ │ +1032 * The result is the same time point as measured by the same clock, but
│ │ │ │ +1033 * using the specified `duration` to represent the time.
│ │ │ │ +1034 * If the time point cannot be represented exactly in the result type,
│ │ │ │ +1035 * returns the closest value that is less than the argument.
│ │ │ │ +1036 *
│ │ │ │ +1037 * @tparam _ToDur The `duration` type to use for the result.
│ │ │ │ +1038 * @param __t A time point.
│ │ │ │ +1039 * @return The value of `__d` converted to type `_ToDur`.
│ │ │ │ +1040 * @since C++17
│ │ │ │ +1041 */
│ │ │ │ +1042 template
│ │ │ │ +1043 [[nodiscard]] constexpr
│ │ │ │ +1044 _e_n_a_b_l_e___i_f___t_<_____i_s___d_u_r_a_t_i_o_n___v_<___T_o_D_u_r_>, time_point<_Clock, _ToDur>>
│ │ │ │ +_1_0_4_5 _f_l_o_o_r(const _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_>& __tp)
│ │ │ │ +1046 {
│ │ │ │ +1047 return _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___T_o_D_u_r_>{
│ │ │ │ +1048 _c_h_r_o_n_o_:_:_f_l_o_o_r_<___T_o_D_u_r_>(__tp.time_since_epoch())};
│ │ │ │ +1049 }
│ │ │ │ +1050
│ │ │ │ +1051 /** Convert a `time_point` to type `ToDur` and round up.
│ │ │ │ +1052 *
│ │ │ │ +1053 * The result is the same time point as measured by the same clock, but
│ │ │ │ +1054 * using the specified `duration` to represent the time.
│ │ │ │ +1055 * If the time point cannot be represented exactly in the result type,
│ │ │ │ +1056 * returns the closest value that is greater than the argument.
│ │ │ │ +1057 *
│ │ │ │ +1058 * @tparam _ToDur The `duration` type to use for the result.
│ │ │ │ +1059 * @param __t A time point.
│ │ │ │ +1060 * @return The value of `__d` converted to type `_ToDur`.
│ │ │ │ +1061 * @since C++17
│ │ │ │ +1062 */
│ │ │ │ +1063 template
│ │ │ │ +1064 [[nodiscard]] constexpr
│ │ │ │ +1065 _e_n_a_b_l_e___i_f___t_<_____i_s___d_u_r_a_t_i_o_n___v_<___T_o_D_u_r_>, time_point<_Clock, _ToDur>>
│ │ │ │ +_1_0_6_6 _c_e_i_l(const _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_>& __tp)
│ │ │ │ +1067 {
│ │ │ │ +1068 return _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___T_o_D_u_r_>{
│ │ │ │ +1069 _c_h_r_o_n_o_:_:_c_e_i_l_<___T_o_D_u_r_>(__tp.time_since_epoch())};
│ │ │ │ +1070 }
│ │ │ │ +1071
│ │ │ │ +1072 /** Convert a `time_point` to type `ToDur` and round to the closest value.
│ │ │ │ +1073 *
│ │ │ │ +1074 * The result is the same time point as measured by the same clock, but
│ │ │ │ +1075 * using the specified `duration` to represent the time.
│ │ │ │ +1076 * If the time point cannot be represented exactly in the result type,
│ │ │ │ +1077 * returns the closest value, rounding ties to even.
│ │ │ │ +1078 *
│ │ │ │ +1079 * @tparam _ToDur The `duration` type to use for the result,
│ │ │ │ +1080 * which must have a non-floating-point `rep` type.
│ │ │ │ +1081 * @param __t A time point.
│ │ │ │ +1082 * @return The value of `__d` converted to type `_ToDur`.
│ │ │ │ +1083 * @since C++17
│ │ │ │ +1084 */
│ │ │ │ +1085 template
│ │ │ │ +1086 [[nodiscard]] constexpr
│ │ │ │ +1087 _e_n_a_b_l_e___i_f___t_<_____i_s___d_u_r_a_t_i_o_n___v_<___T_o_D_u_r_>
│ │ │ │ +1088 && !treat_as_floating_point_v,
│ │ │ │ +1089 time_point<_Clock, _ToDur>>
│ │ │ │ +_1_0_9_0 _r_o_u_n_d(const _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_>& __tp)
│ │ │ │ +1091 {
│ │ │ │ +1092 return _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___T_o_D_u_r_>{
│ │ │ │ +1093 _c_h_r_o_n_o_:_:_r_o_u_n_d_<___T_o_D_u_r_>(__tp.time_since_epoch())};
│ │ │ │ +1094 }
│ │ │ │ +1095#endif // C++17
│ │ │ │ +1096
│ │ │ │ +1097 /// @{
│ │ │ │ +1098 /// @relates time_point
│ │ │ │ +1099
│ │ │ │ +1100 /// Adjust a time point forwards by the given duration.
│ │ │ │ +1101 template
│ │ │ │ +1103 constexpr time_point<_Clock,
│ │ │ │ +1104 typename _c_o_m_m_o_n___t_y_p_e_<___D_u_r_1_,_ _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_>>_:_:_t_y_p_e>
│ │ │ │ +_1_1_0_5 _o_p_e_r_a_t_o_r_+(const time_point<_Clock, _Dur1>& __lhs,
│ │ │ │ +1106 const duration<_Rep2, _Period2>& __rhs)
│ │ │ │ +1107 {
│ │ │ │ +1108 typedef duration<_Rep2, _Period2> __dur2;
│ │ │ │ +1109 typedef typename _c_o_m_m_o_n___t_y_p_e_<___D_u_r_1_,_____d_u_r_2_>_:_:_t_y_p_e __ct;
│ │ │ │ +1110 typedef time_point<_Clock, __ct> __time_point;
│ │ │ │ +1111 return __time_point(__lhs.time_since_epoch() + __rhs);
│ │ │ │ +1112 }
│ │ │ │ +1113
│ │ │ │ +1114 /// Adjust a time point forwards by the given duration.
│ │ │ │ +1115 template
│ │ │ │ +1117 constexpr _t_i_m_e___p_o_i_n_t<_Clock,
│ │ │ │ +1118 typename _c_o_m_m_o_n___t_y_p_e_<_d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_>, _Dur2>_:_:_t_y_p_e>
│ │ │ │ +_1_1_1_9 _o_p_e_r_a_t_o_r_+(const _d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_>& __lhs,
│ │ │ │ +1120 const _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_2_>& __rhs)
│ │ │ │ +1121 {
│ │ │ │ +1122 typedef _d_u_r_a_t_i_o_n_<___R_e_p_1_,_ ___P_e_r_i_o_d_1_> __dur1;
│ │ │ │ +1123 typedef typename _c_o_m_m_o_n___t_y_p_e_<_____d_u_r_1_,___D_u_r_2_>_:_:_t_y_p_e __ct;
│ │ │ │ +1124 typedef _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ _____c_t_> __time_point;
│ │ │ │ +1125 return __time_point(__rhs.time_since_epoch() + __lhs);
│ │ │ │ +1126 }
│ │ │ │ +1127
│ │ │ │ +1128 /// Adjust a time point backwards by the given duration.
│ │ │ │ +1129 template
│ │ │ │ +1131 constexpr time_point<_Clock,
│ │ │ │ +1132 typename _c_o_m_m_o_n___t_y_p_e_<___D_u_r_1_,_ _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_>>_:_:_t_y_p_e>
│ │ │ │ +_1_1_3_3 _o_p_e_r_a_t_o_r_-(const _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_1_>& __lhs,
│ │ │ │ +1134 const _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_>& __rhs)
│ │ │ │ +1135 {
│ │ │ │ +1136 typedef _d_u_r_a_t_i_o_n_<___R_e_p_2_,_ ___P_e_r_i_o_d_2_> __dur2;
│ │ │ │ +1137 typedef typename _c_o_m_m_o_n___t_y_p_e_<___D_u_r_1_,_____d_u_r_2_>_:_:_t_y_p_e __ct;
│ │ │ │ +1138 typedef _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ _____c_t_> __time_point;
│ │ │ │ +1139 return __time_point(__lhs.time_since_epoch() -__rhs);
│ │ │ │ +1140 }
│ │ │ │ +1141
│ │ │ │ +1142 /// The difference between two time points (as a duration)
│ │ │ │ +1143 template
│ │ │ │ +1144 constexpr typename _c_o_m_m_o_n___t_y_p_e_<___D_u_r_1_,_ ___D_u_r_2_>_:_:_t_y_p_e
│ │ │ │ +_1_1_4_5 _o_p_e_r_a_t_o_r_-(const _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_1_>& __lhs,
│ │ │ │ +1146 const _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_2_>& __rhs)
│ │ │ │ +1147 { return __lhs.time_since_epoch() - __rhs.time_since_epoch(); }
│ │ │ │ +1148 /// @}
│ │ │ │ +1149
│ │ │ │ +1150 /** @{
│ │ │ │ +1151 * Comparisons for time_point
│ │ │ │ +1152 * @relates chrono::time_point
│ │ │ │ +1153 */
│ │ │ │ +1154
│ │ │ │ +1155 template
│ │ │ │ +1156 constexpr bool
│ │ │ │ +1157 operator==(const time_point<_Clock, _Dur1>& __lhs,
│ │ │ │ +1158 const time_point<_Clock, _Dur2>& __rhs)
│ │ │ │ +1159 { return __lhs.time_since_epoch() == __rhs.time_since_epoch(); }
│ │ │ │ +1160
│ │ │ │ +1161#if __cpp_lib_three_way_comparison
│ │ │ │ +1162 template _Dur2>
│ │ │ │ +1164 constexpr auto
│ │ │ │ +1165 _o_p_e_r_a_t_o_r_<_=_>(const time_point<_Clock, _Dur1>& __lhs,
│ │ │ │ +1166 const time_point<_Clock, _Dur2>& __rhs)
│ │ │ │ +1167 { return __lhs.time_since_epoch() <=> __rhs.time_since_epoch(); }
│ │ │ │ +1168#else
│ │ │ │ +1169 template
│ │ │ │ +1170 constexpr bool
│ │ │ │ +1171 operator!=(const _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_1_>& __lhs,
│ │ │ │ +1172 const _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_2_>& __rhs)
│ │ │ │ +1173 { return !(__lhs == __rhs); }
│ │ │ │ +1174#endif
│ │ │ │ +1175
│ │ │ │ +1176 template
│ │ │ │ +1177 constexpr bool
│ │ │ │ +1178 _o_p_e_r_a_t_o_r_<(const _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_1_>& __lhs,
│ │ │ │ +1179 const _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_2_>& __rhs)
│ │ │ │ +1180 { return __lhs.time_since_epoch() < __rhs.time_since_epoch(); }
│ │ │ │ +1181
│ │ │ │ +1182 template
│ │ │ │ +1183 constexpr bool
│ │ │ │ +1184 _o_p_e_r_a_t_o_r_<_=(const _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_1_>& __lhs,
│ │ │ │ +1185 const _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_2_>& __rhs)
│ │ │ │ +1186 { return !(__rhs < __lhs); }
│ │ │ │ +1187
│ │ │ │ +1188 template
│ │ │ │ +1189 constexpr bool
│ │ │ │ +1190 _o_p_e_r_a_t_o_r_>(const _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_1_>& __lhs,
│ │ │ │ +1191 const _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_2_>& __rhs)
│ │ │ │ +1192 { return __rhs < __lhs; }
│ │ │ │ +1193
│ │ │ │ +1194 template
│ │ │ │ +1195 constexpr bool
│ │ │ │ +1196 _o_p_e_r_a_t_o_r_>_=(const _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_1_>& __lhs,
│ │ │ │ +1197 const _t_i_m_e___p_o_i_n_t_<___C_l_o_c_k_,_ ___D_u_r_2_>& __rhs)
│ │ │ │ +1198 { return !(__lhs < __rhs); }
│ │ │ │ +1199
│ │ │ │ +1200 /// @}
│ │ │ │ +1201 /// @} group chrono
│ │ │ │ +1202
│ │ │ │ +1203#if _GLIBCXX_HOSTED
│ │ │ │ +1204 // Clocks.
│ │ │ │ +1205
│ │ │ │ +1206 // Why nanosecond resolution as the default?
│ │ │ │ +1207 // Why have std::system_clock always count in the highest
│ │ │ │ +1208 // resolution (ie nanoseconds), even if on some OSes the low 3
│ │ │ │ +1209 // or 9 decimal digits will be always zero? This allows later
│ │ │ │ +1210 // implementations to change the system_clock::now()
│ │ │ │ +1211 // implementation any time to provide better resolution without
│ │ │ │ +1212 // changing function signature or units.
│ │ │ │ +1213
│ │ │ │ +1214 // To support the (forward) evolution of the library's defined
│ │ │ │ +1215 // clocks, wrap inside inline namespace so that the current
│ │ │ │ +1216 // defintions of system_clock, steady_clock, and
│ │ │ │ +1217 // high_resolution_clock types are uniquely mangled. This way, new
│ │ │ │ +1218 // code can use the latests clocks, while the library can contain
│ │ │ │ +1219 // compatibility definitions for previous versions. At some
│ │ │ │ +1220 // point, when these clocks settle down, the inlined namespaces
│ │ │ │ +1221 // can be removed. XXX GLIBCXX_ABI Deprecated
│ │ │ │ +1222_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
│ │ │ │ +1223
│ │ │ │ +1224 /**
│ │ │ │ +1225 * @brief System clock.
│ │ │ │ +1226 *
│ │ │ │ +1227 * Time returned represents wall time from the system-wide clock.
│ │ │ │ +1228 * @ingroup chrono
│ │ │ │ +1229 */
│ │ │ │ +_1_2_3_0 struct _s_y_s_t_e_m___c_l_o_c_k
│ │ │ │ +1231 {
│ │ │ │ +1232 typedef _c_h_r_o_n_o_:_:_n_a_n_o_s_e_c_o_n_d_s duration;
│ │ │ │ +1233 typedef duration::rep rep;
│ │ │ │ +1234 typedef duration::period period;
│ │ │ │ +1235 typedef _c_h_r_o_n_o_:_:_t_i_m_e___p_o_i_n_t_<_s_y_s_t_e_m___c_l_o_c_k_,_ _d_u_r_a_t_i_o_n_> time_point;
│ │ │ │ +1236
│ │ │ │ +1237 static_assert(system_clock::duration::min()
│ │ │ │ +1238 < system_clock::duration::zero(),
│ │ │ │ +1239 "a clock's minimum duration cannot be less than its epoch");
│ │ │ │ +1240
│ │ │ │ +1241 static constexpr bool is_steady = false;
│ │ │ │ +1242
│ │ │ │ +1243 static time_point
│ │ │ │ +1244 now() noexcept;
│ │ │ │ +1245
│ │ │ │ +1246 // Map to C API
│ │ │ │ +1247 [[__gnu__::__always_inline__]]
│ │ │ │ +1248 static std::time_t
│ │ │ │ +1249 to_time_t(const time_point& __t) noexcept
│ │ │ │ +1250 {
│ │ │ │ +1251 return std::time_t(_d_u_r_a_t_i_o_n___c_a_s_t_<_c_h_r_o_n_o_:_:_s_e_c_o_n_d_s_>
│ │ │ │ +1252 (__t.time_since_epoch()).count());
│ │ │ │ +1253 }
│ │ │ │ +1254
│ │ │ │ +1255 [[__gnu__::__always_inline__]]
│ │ │ │ +1256 static time_point
│ │ │ │ +1257 from_time_t(std::time_t __t) noexcept
│ │ │ │ +1258 {
│ │ │ │ +1259 typedef _c_h_r_o_n_o_:_:_t_i_m_e___p_o_i_n_t_<_s_y_s_t_e_m___c_l_o_c_k_,_ _s_e_c_o_n_d_s_> __from;
│ │ │ │ +1260 return _t_i_m_e___p_o_i_n_t___c_a_s_t_<_s_y_s_t_e_m___c_l_o_c_k_:_:_d_u_r_a_t_i_o_n_>
│ │ │ │ +1261 (__from(_c_h_r_o_n_o_:_:_s_e_c_o_n_d_s(__t)));
│ │ │ │ +1262 }
│ │ │ │ +1263 };
│ │ │ │ +1264
│ │ │ │ +1265
│ │ │ │ +1266 /**
│ │ │ │ +1267 * @brief Monotonic clock
│ │ │ │ +1268 *
│ │ │ │ +1269 * Time returned has the property of only increasing at a uniform rate.
│ │ │ │ +1270 * @ingroup chrono
│ │ │ │ +1271 */
│ │ │ │ +_1_2_7_2 struct _s_t_e_a_d_y___c_l_o_c_k
│ │ │ │ +1273 {
│ │ │ │ +1274 typedef _c_h_r_o_n_o_:_:_n_a_n_o_s_e_c_o_n_d_s duration;
│ │ │ │ +1275 typedef duration::rep rep;
│ │ │ │ +1276 typedef duration::period period;
│ │ │ │ +1277 typedef _c_h_r_o_n_o_:_:_t_i_m_e___p_o_i_n_t_<_s_t_e_a_d_y___c_l_o_c_k_,_ _d_u_r_a_t_i_o_n_> time_point;
│ │ │ │ +1278
│ │ │ │ +1279 static constexpr bool is_steady = true;
│ │ │ │ +1280
│ │ │ │ +1281 static time_point
│ │ │ │ +1282 now() noexcept;
│ │ │ │ +1283 };
│ │ │ │ +1284
│ │ │ │ +1285
│ │ │ │ +1286 /**
│ │ │ │ +1287 * @brief Highest-resolution clock
│ │ │ │ +1288 *
│ │ │ │ +1289 * This is the clock "with the shortest tick period." Alias to
│ │ │ │ +1290 * std::system_clock until higher-than-nanosecond definitions
│ │ │ │ +1291 * become feasible.
│ │ │ │ +1292 * @ingroup chrono
│ │ │ │ +1293 */
│ │ │ │ +_1_2_9_4 using _h_i_g_h___r_e_s_o_l_u_t_i_o_n___c_l_o_c_k = _s_y_s_t_e_m___c_l_o_c_k;
│ │ │ │ +1295
│ │ │ │ +1296_GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
│ │ │ │ +1297
│ │ │ │ +1298#if __cplusplus >= 202002L
│ │ │ │ +1299 /// @addtogroup chrono
│ │ │ │ +1300 /// @{
│ │ │ │ +1301 template
│ │ │ │ +1302 using sys_time = _t_i_m_e___p_o_i_n_t_<_s_y_s_t_e_m___c_l_o_c_k_,_ ___D_u_r_a_t_i_o_n_>;
│ │ │ │ +1303 using sys_seconds = sys_time;
│ │ │ │ +1304 using sys_days = sys_time;
│ │ │ │ +1305
│ │ │ │ +1306 using file_clock = ::std::filesystem::__file_clock;
│ │ │ │ +1307
│ │ │ │ +1308 template
│ │ │ │ +1309 using file_time = _t_i_m_e___p_o_i_n_t_<_f_i_l_e___c_l_o_c_k_,_ ___D_u_r_a_t_i_o_n_>;
│ │ │ │ +1310
│ │ │ │ +1311 template<> struct is_clock<_s_y_s_t_e_m___c_l_o_c_k> : _t_r_u_e___t_y_p_e { };
│ │ │ │ +1312 template<> struct is_clock : _t_r_u_e___t_y_p_e { };
│ │ │ │ +1313 template<> struct is_clock