│ │ │ │ +36# endif
│ │ │ │ +37#endif
│ │ │ │ +38
│ │ │ │ +39#ifndef _GLIBCXX_TGMATH_H
│ │ │ │ +40#define _GLIBCXX_TGMATH_H 1
│ │ │ │ +41
│ │ │ │ +42#endif
│ │ │ │ +_c_t_g_m_a_t_h
│ │ │ │ _c_+_+_c_o_n_f_i_g_._h
│ │ │ │ - * _c_o_m_p_l_e_x_._h
│ │ │ │ + * _t_g_m_a_t_h_._h
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00026_source.html
│ │ │ @@ -99,18 +99,18 @@
│ │ │
│ │ │
│ │ │ 44 #pragma GCC system_header
│ │ │
│ │ │ 46 #pragma GCC visibility push(default)
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -770,22 +770,22 @@
│ │ │
│ │ │
│ │ │ 713 #pragma GCC visibility pop
│ │ │
│ │ │
│ │ │ char * __cxa_demangle(const char *__mangled_name, char *__output_buffer, size_t *__length, int *__status)
Demangling routine. ABI-mandated entry point in the C++ runtime library for demangling.
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ GNU extensions for public use.
│ │ │ The cross-vendor C++ Application Binary Interface. A namespace alias to __cxxabiv1,...
│ │ │ -constexpr _Iterator __base(_Iterator __it)
│ │ │ -Base class for all library exceptions.
│ │ │ +constexpr _Iterator __base(_Iterator __it)
│ │ │ +Base class for all library exceptions.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ cxxabi.h
│ │ │ ├── html2text {}
│ │ │ │ @@ -724,16 +724,16 @@
│ │ │ │ char * __cxa_demangle(const char *__mangled_name, char *__output_buffer, size_t
│ │ │ │ *__length, int *__status)
│ │ │ │ Demangling routine. ABI-mandated entry point in the C++ runtime library for
│ │ │ │ demangling.
│ │ │ │ _t_y_p_e_i_n_f_o
│ │ │ │ _c_x_x_a_b_i___i_n_i_t___e_x_c_e_p_t_i_o_n_._h
│ │ │ │ _c_x_x_a_b_i___f_o_r_c_e_d_._h
│ │ │ │ -_c_+_+_c_o_n_f_i_g_._h
│ │ │ │ _c_x_x_a_b_i___t_w_e_a_k_s_._h
│ │ │ │ +_c_+_+_c_o_n_f_i_g_._h
│ │ │ │ _____g_n_u___c_x_x
│ │ │ │ GNU extensions for public use.
│ │ │ │ _a_b_i
│ │ │ │ The cross-vendor C++ Application Binary Interface. A namespace alias to
│ │ │ │ __cxxabiv1,...
│ │ │ │ _____g_n_u___d_e_b_u_g_:_:_____b_a_s_e
│ │ │ │ constexpr _Iterator __base(_Iterator __it)
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00029_source.html
│ │ │ @@ -87,16 +87,16 @@
│ │ │
│ │ │
│ │ │
│ │ │ 33 #pragma GCC system_header
│ │ │
│ │ │ 35 #pragma GCC visibility push(default)
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -205,23 +205,23 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 150 #pragma GCC visibility pop
│ │ │
│ │ │ 152 #if (__cplusplus >= 201103L)
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ int uncaught_exceptions() noexcept
│ │ │ unexpected_handler get_unexpected() noexcept
Return the current unexpected handler.
│ │ │ void(* terminate_handler)()
If you write a replacement terminate handler, it must be of this type.
│ │ │ terminate_handler get_terminate() noexcept
Return the current terminate handler.
│ │ │ unexpected_handler set_unexpected(unexpected_handler) noexcept
Takes a new handler function as an argument, returns the old function.
│ │ │ terminate_handler set_terminate(terminate_handler) noexcept
Takes a new handler function as an argument, returns the old function.
│ │ │ void terminate() noexcept
│ │ │ ├── html2text {}
│ │ │ │ @@ -154,17 +154,17 @@
│ │ │ │ 151
│ │ │ │ 152#if (__cplusplus >= 201103L)
│ │ │ │ 153#include <_b_i_t_s_/_e_x_c_e_p_t_i_o_n___p_t_r_._h>
│ │ │ │ 154#include <_b_i_t_s_/_n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_._h>
│ │ │ │ 155#endif
│ │ │ │ 156
│ │ │ │ 157#endif
│ │ │ │ +_e_x_c_e_p_t_i_o_n_._h
│ │ │ │ _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_._h
│ │ │ │ _e_x_c_e_p_t_i_o_n___p_t_r_._h
│ │ │ │ -_e_x_c_e_p_t_i_o_n_._h
│ │ │ │ _c_+_+_c_o_n_f_i_g_._h
│ │ │ │ _s_t_d_:_:_u_n_c_a_u_g_h_t___e_x_c_e_p_t_i_o_n_s
│ │ │ │ int uncaught_exceptions() noexcept
│ │ │ │ _s_t_d_:_:_g_e_t___u_n_e_x_p_e_c_t_e_d
│ │ │ │ unexpected_handler get_unexpected() noexcept
│ │ │ │ Return the current unexpected handler.
│ │ │ │ _s_t_d_:_:_t_e_r_m_i_n_a_t_e___h_a_n_d_l_e_r
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00032_source.html
│ │ │ @@ -86,20 +86,20 @@
│ │ │
│ │ │ 30 #ifndef _INITIALIZER_LIST
│ │ │ 31 #define _INITIALIZER_LIST
│ │ │
│ │ │ 33 #pragma GCC system_header
│ │ │
│ │ │ 35 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 39 #pragma GCC visibility push(default)
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
47 class initializer_list
│ │ │ @@ -166,16 +166,16 @@
│ │ │
│ │ │
│ │ │
105 #pragma GCC visibility pop
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │
constexpr const _Tp * begin(initializer_list< _Tp > __ils) noexcept
Return an iterator pointing to the first element of the initializer_list.
│ │ │
constexpr const _Tp * end(initializer_list< _Tp > __ils) noexcept
Return an iterator pointing to one past the last element of the initializer_list.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00035_source.html
│ │ │ @@ -90,16 +90,16 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 38 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 43 #pragma GCC visibility push(default)
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -285,16 +285,16 @@
│ │ │ 226 # define __cpp_lib_destroying_delete 201806L
│ │ │
│ │ │
│ │ │
│ │ │ 230 #pragma GCC visibility pop
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ new_handler set_new_handler(new_handler)
Takes a replacement handler as the argument, returns the previous handler.
│ │ │ new_handler get_new_handler() noexcept
Return the current new handler.
│ │ │
│ │ │ Exception possibly thrown by new.
│ │ │ virtual const char * what() const
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00038_source.html
│ │ │ @@ -84,17 +84,17 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 32 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ +
│ │ │ 35 #if __cplusplus >= 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 39 #pragma GCC visibility push(default)
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -284,16 +284,16 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 223 #pragma GCC visibility pop
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │ const char * name() const noexcept
│ │ │
│ │ │ virtual const char * what() const noexcept
│ │ │ virtual const char * what() const noexcept
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -222,16 +222,16 @@
│ │ │ │ 219} // namespace std
│ │ │ │ 220
│ │ │ │ 221} // extern "C++"
│ │ │ │ 222
│ │ │ │ 223#pragma GCC visibility pop
│ │ │ │ 224
│ │ │ │ 225#endif
│ │ │ │ -_h_a_s_h___b_y_t_e_s_._h
│ │ │ │ _e_x_c_e_p_t_i_o_n_._h
│ │ │ │ +_h_a_s_h___b_y_t_e_s_._h
│ │ │ │ _s_t_d
│ │ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ │ _s_t_d_:_:_t_y_p_e___i_n_f_o
│ │ │ │ Part of RTTI.
│ │ │ │ DDeeffiinniittiioonn _t_y_p_e_i_n_f_o_:_8_9
│ │ │ │ _s_t_d_:_:_t_y_p_e___i_n_f_o_:_:_n_a_m_e
│ │ │ │ const char * name() const noexcept
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00041_source.html
│ │ │ @@ -111,18 +111,18 @@
│ │ │
│ │ │ 55 #ifndef _GLIBCXX_ALGORITHM
│ │ │ 56 #define _GLIBCXX_ALGORITHM 1
│ │ │
│ │ │ 58 #pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ 63 #if __cplusplus > 201703L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 67 #if __cplusplus > 201402L
│ │ │
│ │ │ 69 # if _PSTL_EXECUTION_POLICIES_DEFINED
│ │ │
│ │ │ 71 # include <pstl/glue_algorithm_impl.h>
│ │ │ @@ -138,17 +138,17 @@
│ │ │
│ │ │ 82 #ifdef _GLIBCXX_PARALLEL
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -84,13 +84,13 @@
│ │ │ │ 81
│ │ │ │ 82#ifdef _GLIBCXX_PARALLEL
│ │ │ │ 83# include <_p_a_r_a_l_l_e_l_/_a_l_g_o_r_i_t_h_m>
│ │ │ │ 84#endif
│ │ │ │ 85
│ │ │ │ 86#endif /* _GLIBCXX_ALGORITHM */
│ │ │ │ _u_t_i_l_i_t_y
│ │ │ │ -_s_t_l___a_l_g_o_b_a_s_e_._h
│ │ │ │ _s_t_l___a_l_g_o_._h
│ │ │ │ +_s_t_l___a_l_g_o_b_a_s_e_._h
│ │ │ │ _r_a_n_g_e_s___a_l_g_o_._h
│ │ │ │ _a_l_g_o_r_i_t_h_m
│ │ │ │ * _a_l_g_o_r_i_t_h_m
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00044_source.html
│ │ │ @@ -761,17 +761,17 @@
│ │ │ typename conditional< _Cond, _Iftrue, _Iffalse >::type conditional_t
Alias template for conditional.
│ │ │ integral_constant< bool, true > true_type
The type used as a compile-time boolean with true value.
│ │ │ typename enable_if< _Cond, _Tp >::type enable_if_t
Alias template for enable_if.
│ │ │ typename decay< _Tp >::type decay_t
Alias template for decay.
│ │ │ typename remove_cv< _Tp >::type remove_cv_t
Alias template for remove_cv.
│ │ │ enable_if_t< is_constructible_v< any, in_place_type_t< _Tp >, _Args... >, any > make_any(_Args &&... __args)
Create an any holding a _Tp constructed from __args....
│ │ │ _ValueType any_cast(const any &__any)
Access the contained object.
│ │ │ -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.
│ │ │ void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
│ │ │ -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.
│ │ │
│ │ │
│ │ │ Exception class thrown by a failed any_cast.
│ │ │ virtual const char * what() const noexcept
│ │ │ A type-safe container of any type.
│ │ │ const type_info & type() const noexcept
The typeid of the contained object, or typeid(void) if empty.
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00047_source.html
│ │ │ @@ -85,22 +85,22 @@
│ │ │
│ │ │
│ │ │ 30 #define _GLIBCXX_ARRAY 1
│ │ │
│ │ │ 32 #pragma GCC system_header
│ │ │
│ │ │ 34 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 44 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 46 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ 48 template <
typename _Tp, std::
size_t _Nm>
│ │ │
│ │ │ @@ -519,22 +519,22 @@
│ │ │ 456 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ integral_constant< bool, true > true_type
The type used as a compile-time boolean with true value.
│ │ │ 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.
│ │ │ void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
│ │ │ constexpr array< remove_cv_t< _Tp >, _Nm > to_array(_Tp(&__a)[_Nm]) noexcept(is_nothrow_constructible< remove_cv_t< _Tp >, _Tp & >::value)
Create a std::array from an array.
│ │ │ 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.
│ │ │ A standard container for storing a fixed size sequence of elements.
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -459,18 +459,18 @@
│ │ │ │ 456_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 457} // namespace std
│ │ │ │ 458
│ │ │ │ 459#endif // C++11
│ │ │ │ 460
│ │ │ │ 461#endif // _GLIBCXX_ARRAY
│ │ │ │ _u_t_i_l_i_t_y
│ │ │ │ +_c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ +_f_u_n_c_t_e_x_c_e_p_t_._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_e_x_c_e_p_t_._h
│ │ │ │ -_c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ _a_s_s_e_r_t_i_o_n_s_._h
│ │ │ │ _s_t_d_:_:_t_r_u_e___t_y_p_e
│ │ │ │ integral_constant< bool, 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_:_8_3
│ │ │ │ _s_t_d_:_:_e_n_a_b_l_e___i_f___t
│ │ │ │ typename enable_if< _Cond, _Tp >::type enable_if_t
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00050_source.html
│ │ │ @@ -88,18 +88,18 @@
│ │ │
│ │ │ 32 #ifndef _GLIBCXX_ATOMIC
│ │ │ 33 #define _GLIBCXX_ATOMIC 1
│ │ │
│ │ │ 35 #pragma GCC system_header
│ │ │
│ │ │ 37 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 43 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 45 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ @@ -1775,17 +1775,17 @@
│ │ │
│ │ │ 1685 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ +
│ │ │ +
│ │ │ +constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ atomic< unsigned long > atomic_ulong
atomic_ulong
│ │ │ atomic< intmax_t > atomic_intmax_t
atomic_intmax_t
│ │ │ atomic< uintptr_t > atomic_uintptr_t
atomic_uintptr_t
│ │ │ atomic< signed char > atomic_schar
atomic_schar
│ │ │ atomic< int_least8_t > atomic_int_least8_t
atomic_int_least8_t
│ │ │ atomic< unsigned long long > atomic_ullong
atomic_ullong
│ │ │ atomic< uint_fast8_t > atomic_uint_fast8_t
atomic_uint_fast8_t
│ │ │ @@ -1796,28 +1796,28 @@
│ │ │ atomic< uint_least8_t > atomic_uint_least8_t
atomic_uint_least8_t
│ │ │ atomic< short > atomic_short
atomic_short
│ │ │ atomic< uint_least16_t > atomic_uint_least16_t
atomic_uint_least16_t
│ │ │ atomic< uint16_t > atomic_uint16_t
atomic_uint16_t
│ │ │ atomic< uint64_t > atomic_uint64_t
atomic_uint64_t
│ │ │ atomic< int_least32_t > atomic_int_least32_t
atomic_int_least32_t
│ │ │ atomic< uint8_t > atomic_uint8_t
atomic_uint8_t
│ │ │ -#define ATOMIC_BOOL_LOCK_FREE
│ │ │ +#define ATOMIC_BOOL_LOCK_FREE
│ │ │ atomic< wchar_t > atomic_wchar_t
atomic_wchar_t
│ │ │ atomic< unsigned int > atomic_uint
atomic_uint
│ │ │ atomic< uint_least32_t > atomic_uint_least32_t
atomic_uint_least32_t
│ │ │ atomic< uint_fast64_t > atomic_uint_fast64_t
atomic_uint_fast64_t
│ │ │ atomic< int_fast32_t > atomic_int_fast32_t
atomic_int_fast32_t
│ │ │ atomic< char > atomic_char
atomic_char
│ │ │ atomic< int > atomic_int
atomic_int
│ │ │ atomic< uint_least64_t > atomic_uint_least64_t
atomic_uint_least64_t
│ │ │ atomic< int64_t > atomic_int64_t
atomic_int64_t
│ │ │ atomic< uintmax_t > atomic_uintmax_t
atomic_uintmax_t
│ │ │ atomic< int_fast16_t > atomic_int_fast16_t
atomic_int_fast16_t
│ │ │ atomic< int32_t > atomic_int32_t
atomic_int32_t
│ │ │ -memory_order
Enumeration for memory_order.
│ │ │ +memory_order
Enumeration for memory_order.
│ │ │ atomic< uint_fast16_t > atomic_uint_fast16_t
atomic_uint_fast16_t
│ │ │ atomic< int8_t > atomic_int8_t
atomic_int8_t
│ │ │ atomic< long long > atomic_llong
atomic_llong
│ │ │ atomic< char16_t > atomic_char16_t
atomic_char16_t
│ │ │ atomic< int_fast64_t > atomic_int_fast64_t
atomic_int_fast64_t
│ │ │ atomic< ptrdiff_t > atomic_ptrdiff_t
atomic_ptrdiff_t
│ │ │ atomic< char32_t > atomic_char32_t
atomic_char32_t
│ │ │ @@ -1829,16 +1829,16 @@
│ │ │ atomic< bool > atomic_bool
atomic_bool
│ │ │ atomic< uint_fast32_t > atomic_uint_fast32_t
atomic_uint_fast32_t
│ │ │ atomic< uint32_t > atomic_uint32_t
atomic_uint32_t
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ constexpr _Tp exchange(_Tp &__obj, _Up &&__new_val)
Assign __new_val to __obj and return its previous value.
│ │ │ Generic atomic type, primary class template.
│ │ │
│ │ │ -Base class for atomic integrals.
│ │ │ -
│ │ │ +Base class for atomic integrals.
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ atomic
│ │ │ ├── html2text {}
│ │ │ │ @@ -1695,16 +1695,16 @@
│ │ │ │ 1684
│ │ │ │ 1685_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 1686} // namespace
│ │ │ │ 1687
│ │ │ │ 1688#endif // C++11
│ │ │ │ 1689
│ │ │ │ 1690#endif // _GLIBCXX_ATOMIC
│ │ │ │ -_c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ _a_t_o_m_i_c___b_a_s_e_._h
│ │ │ │ +_c_+_+_0_x___w_a_r_n_i_n_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_:_4_9
│ │ │ │ _s_t_d_:_:_a_t_o_m_i_c___u_l_o_n_g
│ │ │ │ atomic< unsigned long > atomic_ulong
│ │ │ │ atomic_ulong
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00053_source.html
│ │ │ @@ -94,18 +94,18 @@
│ │ │
│ │ │ 38 #ifndef _GLIBCXX_BARRIER
│ │ │ 39 #define _GLIBCXX_BARRIER 1
│ │ │
│ │ │ 41 #pragma GCC system_header
│ │ │
│ │ │ 43 #if __cplusplus > 201703L
│ │ │ -
│ │ │ +
│ │ │ 45 #if __cpp_lib_atomic_wait && __cpp_aligned_new
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ 51 #define __cpp_lib_barrier 201907L
│ │ │
│ │ │ 53 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ @@ -316,22 +316,22 @@
│ │ │
│ │ │ 260 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -_MakeUniq< _Tp >::__single_object make_unique(_Args &&... __args)
std::make_unique for single objects
│ │ │ -constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ -constexpr const _Tp & max(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +_MakeUniq< _Tp >::__single_object make_unique(_Args &&... __args)
std::make_unique for single objects
│ │ │ +constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ +constexpr const _Tp & max(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -thread::id get_id() noexcept
this_thread::get_id
│ │ │ +thread::id get_id() noexcept
this_thread::get_id
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ barrier
│ │ │ ├── html2text {}
│ │ │ │ @@ -264,17 +264,17 @@
│ │ │ │ 259
│ │ │ │ 260_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 261} // namespace
│ │ │ │ 262#endif // __cpp_lib_atomic_wait && __cpp_aligned_new
│ │ │ │ 263#endif // __cplusplus > 201703L
│ │ │ │ 264#endif // _GLIBCXX_BARRIER
│ │ │ │ _a_r_r_a_y
│ │ │ │ -_u_n_i_q_u_e___p_t_r_._h
│ │ │ │ -_s_t_d___t_h_r_e_a_d_._h
│ │ │ │ _a_t_o_m_i_c___b_a_s_e_._h
│ │ │ │ +_s_t_d___t_h_r_e_a_d_._h
│ │ │ │ +_u_n_i_q_u_e___p_t_r_._h
│ │ │ │ _s_t_d_:_:_u_n_i_q_u_e___p_t_r_:_:_m_a_k_e___u_n_i_q_u_e
│ │ │ │ _MakeUniq< _Tp >::__single_object make_unique(_Args &&... __args)
│ │ │ │ std::make_unique for single objects
│ │ │ │ DDeeffiinniittiioonn _u_n_i_q_u_e___p_t_r_._h_:_9_6_1
│ │ │ │ _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-11-base/libstdc++/user/a00059_source.html
│ │ │ @@ -98,21 +98,21 @@
│ │ │
│ │ │ 42 #ifndef _GLIBCXX_BITSET
│ │ │ 43 #define _GLIBCXX_BITSET 1
│ │ │
│ │ │ 45 #pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 53 #if __cplusplus >= 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 57 #define _GLIBCXX_BITSET_BITS_PER_WORD (__CHAR_BIT__ * __SIZEOF_LONG__)
│ │ │ 58 #define _GLIBCXX_BITSET_WORDS(__n) \
│ │ │ 59 ((__n) / _GLIBCXX_BITSET_BITS_PER_WORD + \
│ │ │ 60 ((__n) % _GLIBCXX_BITSET_BITS_PER_WORD == 0 ? 0 : 1))
│ │ │
│ │ │ @@ -1743,26 +1743,26 @@
│ │ │ 1594 #ifdef _GLIBCXX_DEBUG
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ size_t _Find_next(size_t __prev) const noexcept
Finds the index of the next "on" bit after prev.
│ │ │ bitset< _Nb > & _Unchecked_flip(size_t __pos) noexcept
│ │ │ size_t _Find_first() const noexcept
Finds the index of the first "on" bit.
│ │ │ constexpr bool _Unchecked_test(size_t __pos) const noexcept
│ │ │ bitset< _Nb > & _Unchecked_set(size_t __pos, int __val) noexcept
│ │ │ bitset< _Nb > & _Unchecked_reset(size_t __pos) noexcept
│ │ │ bitset< _Nb > & _Unchecked_set(size_t __pos) noexcept
│ │ │ -constexpr const _Tp & min(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ -const _Facet & use_facet(const locale &__loc)
Return a facet.
│ │ │ +constexpr const _Tp & min(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ +const _Facet & use_facet(const locale &__loc)
Return a facet.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ bitset< _Nb > operator&(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
│ │ │ 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.
│ │ │ bitset< _Nb > operator^(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
│ │ │
│ │ │ @@ -1794,30 +1794,30 @@
│ │ │ constexpr size_t size() const noexcept
Returns the total number of bits.
│ │ │ size_t count() const noexcept
Returns the number of bits which are set.
│ │ │ std::basic_string< _CharT, _Traits, _Alloc > to_string() const
Returns a character interpretation of the bitset.
│ │ │ bitset< _Nb > & operator|=(const bitset< _Nb > &__rhs) noexcept
│ │ │ constexpr bool operator[](size_t __position) const
Array-indexing support.
│ │ │ bool operator==(const bitset< _Nb > &__rhs) const noexcept
These comparisons for equality/inequality are, well, bitwise.
│ │ │
│ │ │ -void setstate(iostate __state)
Sets additional flags in the error state.
│ │ │ -char_type widen(char __c) const
Widens characters.
│ │ │ -basic_streambuf< _CharT, _Traits > * rdbuf() const
Accessing the underlying buffer.
│ │ │ +void setstate(iostate __state)
Sets additional flags in the error state.
│ │ │ +char_type widen(char __c) const
Widens characters.
│ │ │ +basic_streambuf< _CharT, _Traits > * rdbuf() const
Accessing the underlying buffer.
│ │ │ Template class basic_istream.
│ │ │ Template class basic_ostream.
│ │ │ -Primary class template hash.
│ │ │ -Managing sequences of characters and character-like objects.
│ │ │ -void push_back(_CharT __c)
Append a single character.
│ │ │ -const _CharT * data() const noexcept
Return const pointer to contents.
│ │ │ -void reserve(size_type __res_arg)
Attempt to preallocate enough memory for specified number of characters.
│ │ │ -basic_string & assign(const basic_string &__str)
Set value to contents of another string.
│ │ │ -static const size_type npos
Value returned by various member functions when they fail.
│ │ │ -size_type size() const noexcept
Returns the number of characters in the string, not including any null-termination.
│ │ │ -bool empty() const noexcept
│ │ │ -Thrown as part of forced unwinding.
│ │ │ -locale getloc() const
Locale access.
│ │ │ +Primary class template hash.
│ │ │ +Managing sequences of characters and character-like objects.
│ │ │ +void push_back(_CharT __c)
Append a single character.
│ │ │ +const _CharT * data() const noexcept
Return const pointer to contents.
│ │ │ +void reserve(size_type __res_arg)
Attempt to preallocate enough memory for specified number of characters.
│ │ │ +basic_string & assign(const basic_string &__str)
Set value to contents of another string.
│ │ │ +static const size_type npos
Value returned by various member functions when they fail.
│ │ │ +size_type size() const noexcept
Returns the number of characters in the string, not including any null-termination.
│ │ │ +bool empty() const noexcept
│ │ │ +Thrown as part of forced unwinding.
│ │ │ +locale getloc() const
Locale access.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1602,17 +1602,17 @@
│ │ │ │ 1594#ifdef _GLIBCXX_DEBUG
│ │ │ │ 1595# include <_d_e_b_u_g_/_b_i_t_s_e_t>
│ │ │ │ 1596#endif
│ │ │ │ 1597
│ │ │ │ 1598#endif /* _GLIBCXX_BITSET */
│ │ │ │ _i_o_s_f_w_d
│ │ │ │ _s_t_r_i_n_g
│ │ │ │ -_c_x_x_a_b_i___f_o_r_c_e_d_._h
│ │ │ │ _f_u_n_c_t_i_o_n_a_l___h_a_s_h_._h
│ │ │ │ _f_u_n_c_t_e_x_c_e_p_t_._h
│ │ │ │ +_c_x_x_a_b_i___f_o_r_c_e_d_._h
│ │ │ │ _s_t_d_:_:_b_i_t_s_e_t_:_:___F_i_n_d___n_e_x_t
│ │ │ │ size_t _Find_next(size_t __prev) const noexcept
│ │ │ │ Finds the index of the next "on" bit after prev.
│ │ │ │ DDeeffiinniittiioonn _b_i_t_s_e_t_:_1_3_8_4
│ │ │ │ _s_t_d_:_:_b_i_t_s_e_t_:_:___U_n_c_h_e_c_k_e_d___f_l_i_p
│ │ │ │ bitset< _Nb > & _Unchecked_flip(size_t __pos) noexcept
│ │ │ │ DDeeffiinniittiioonn _b_i_t_s_e_t_:_1_0_5_8
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00062_source.html
│ │ │ @@ -92,16 +92,16 @@
│ │ │
│ │ │
│ │ │
│ │ │ 38 #if __cplusplus >= 201402L
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │ 46 #if _GLIBCXX_HAVE_USELOCALE
│ │ │ 47 # define __cpp_lib_to_chars 201611L
│ │ │
│ │ │
│ │ │ 50 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ @@ -800,31 +800,31 @@
│ │ │
│ │ │ 730 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ typename enable_if< _Cond, _Tp >::type enable_if_t
Alias template for enable_if.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -ios_base & scientific(ios_base &__base)
Calls base.setf(ios_base::scientific, ios_base::floatfield).
│ │ │ -ios_base & hex(ios_base &__base)
Calls base.setf(ios_base::hex, ios_base::basefield).
│ │ │ +ios_base & scientific(ios_base &__base)
Calls base.setf(ios_base::scientific, ios_base::floatfield).
│ │ │ +ios_base & hex(ios_base &__base)
Calls base.setf(ios_base::hex, ios_base::basefield).
│ │ │ chars_format
floating-point format for primitive numerical conversion
│ │ │ bitset< _Nb > operator&(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
│ │ │ __detail::__integer_from_chars_result_type< _Tp > from_chars(const char *__first, const char *__last, _Tp &__value, int __base=10)
std::from_chars for integral types.
│ │ │ -ios_base & fixed(ios_base &__base)
Calls base.setf(ios_base::fixed, ios_base::floatfield).
│ │ │ +ios_base & fixed(ios_base &__base)
Calls base.setf(ios_base::fixed, ios_base::floatfield).
│ │ │ bitset< _Nb > operator|(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
│ │ │ 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.
│ │ │ bool __from_chars_alnum(const char *&__first, const char *__last, _Tp &__val, int __base)
std::from_chars implementation for integers in bases 11 to 36.
│ │ │ bool __from_chars_binary(const char *&__first, const char *__last, _Tp &__val)
std::from_chars implementation for integers in base 2.
│ │ │ bool __from_chars_digit(const char *&__first, const char *__last, _Tp &__val, int __base)
std::from_chars implementation for integers in bases 3 to 10.
│ │ │ -constexpr _Iterator __base(_Iterator __it)
│ │ │ +constexpr _Iterator __base(_Iterator __it)
│ │ │ Result type of std::to_chars.
│ │ │ Result type of std::from_chars.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00065_source.html
│ │ │ @@ -86,22 +86,22 @@
│ │ │
│ │ │ 30 #ifndef _GLIBCXX_CHRONO
│ │ │ 31 #define _GLIBCXX_CHRONO 1
│ │ │
│ │ │ 33 #pragma GCC system_header
│ │ │
│ │ │ 35 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │ 44 #if __cplusplus > 201703L
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 49 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ @@ -3573,16 +3573,16 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ 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)
│ │ │ duration< int64_t, ratio< 3600 > > hours
hours
│ │ │ 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 duration< __common_rep_t< _Rep2, _Rep1 >, _Period > operator*(const _Rep1 &__s, const duration< _Rep2, _Period > &__d)
│ │ │ duration< int64_t, nano > nanoseconds
nanoseconds
│ │ │ @@ -3604,16 +3604,16 @@
│ │ │ constexpr __enable_if_is_duration< _ToDur > duration_cast(const duration< _Rep, _Period > &__d)
duration_cast
│ │ │ typename __ratio_divide< _R1, _R2 >::type ratio_divide
ratio_divide
│ │ │ void void_t
A metafunction that always yields void, used for detecting valid types.
│ │ │ typename common_type< _Tp... >::type common_type_t
Alias template for common_type.
│ │ │ integral_constant< bool, true > true_type
The type used as a compile-time boolean with true value.
│ │ │ typename enable_if< _Cond, _Tp >::type enable_if_t
Alias template for enable_if.
│ │ │ integral_constant< bool, false > false_type
The type used as a compile-time boolean with false value.
│ │ │ -constexpr const _Tp & max(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 const _Tp & max(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.
│ │ │ ISO C++ inline namespace for literal suffixes.
│ │ │ ISO C++ 2017 namespace for File System library.
│ │ │ ISO C++ 2011 namespace for date and time utilities.
│ │ │
│ │ │ chrono::duration represents a distance between two points in time
│ │ │ chrono::time_point represents a point in time as measured by a clock
│ │ │ ├── html2text {}
│ │ │ │ @@ -3436,16 +3436,16 @@
│ │ │ │ 3426#endif //_GLIBCXX_CHRONO
│ │ │ │ _c_o_m_p_a_r_e
│ │ │ │ _c_o_n_c_e_p_t_s
│ │ │ │ _l_i_m_i_t_s
│ │ │ │ _r_a_t_i_o
│ │ │ │ _t_y_p_e___t_r_a_i_t_s
│ │ │ │ _c_t_i_m_e
│ │ │ │ -_p_a_r_s_e___n_u_m_b_e_r_s_._h
│ │ │ │ _c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ +_p_a_r_s_e___n_u_m_b_e_r_s_._h
│ │ │ │ _s_t_d_:_:_c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n_:_:_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_:_7_6_0
│ │ │ │ _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-11-base/libstdc++/user/a00068_source.html
│ │ │ @@ -87,19 +87,19 @@
│ │ │
│ │ │ 31 #ifndef _GLIBCXX_CODECVT
│ │ │ 32 #define _GLIBCXX_CODECVT 1
│ │ │
│ │ │ 34 #pragma GCC system_header
│ │ │
│ │ │ 36 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 43 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 45 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ @@ -228,19 +228,19 @@
│ │ │
│ │ │ 172 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -Primary class template codecvt.
│ │ │ +Primary class template codecvt.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ codecvt
│ │ │ ├── html2text {}
│ │ │ │ @@ -174,17 +174,17 @@
│ │ │ │ 171
│ │ │ │ 172_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 173} // namespace
│ │ │ │ 174
│ │ │ │ 175#endif // C++11
│ │ │ │ 176
│ │ │ │ 177#endif /* _GLIBCXX_CODECVT */
│ │ │ │ +_c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ _l_o_c_a_l_e___c_l_a_s_s_e_s_._h
│ │ │ │ _c_o_d_e_c_v_t_._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_:_:_c_o_d_e_c_v_t
│ │ │ │ Primary class template codecvt.
│ │ │ │ DDeeffiinniittiioonn _c_o_d_e_c_v_t_._h_:_2_7_9
│ │ │ │ * _c_o_d_e_c_v_t
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00071_source.html
│ │ │ @@ -91,17 +91,17 @@
│ │ │
│ │ │
│ │ │ 36 #ifndef _GLIBCXX_COMPLEX
│ │ │ 37 #define _GLIBCXX_COMPLEX 1
│ │ │
│ │ │ 39 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 50 #if __cplusplus > 201703L
│ │ │ @@ -2183,17 +2183,17 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ constexpr complex< _Tp > & operator-=(const complex< _Up > &)
Subtract another complex number from this one.
│ │ │ complex< _Tp > log10(const complex< _Tp > &)
Return complex base 10 logarithm of z.
│ │ │ constexpr complex< _Tp > operator*(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x times y.
│ │ │ complex< _Tp > sin(const complex< _Tp > &)
Return complex sine of z.
│ │ │ 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< _Up > &)
Assign another complex number to this one.
│ │ │ constexpr complex< _Tp > & operator*=(const _Tp &)
Multiply this complex number by a scalar.
│ │ │ @@ -2218,15 +2218,15 @@
│ │ │ complex< _Tp > cos(const complex< _Tp > &)
Return complex cosine of z.
│ │ │ complex< _Tp > sqrt(const complex< _Tp > &)
Return complex square root of z.
│ │ │ constexpr complex< _Tp > & operator*=(const complex< _Up > &)
Multiply this complex number by another.
│ │ │ basic_ostream< char > ostream
Base class for char output streams.
│ │ │ basic_istream< char > istream
Base class for char input streams.
│ │ │ basic_ostream< wchar_t > wostream
Base class for wchar_t output streams.
│ │ │ basic_istream< wchar_t > wistream
Base class for wchar_t input streams.
│ │ │ -constexpr const _Tp & max(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ +constexpr const _Tp & max(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ _Tp fabs(const std::complex< _Tp > &)
fabs(__z) [8.1.8].
│ │ │ std::complex< _Tp > asinh(const std::complex< _Tp > &)
asinh(__z) [8.1.6].
│ │ │ std::complex< _Tp > atan(const std::complex< _Tp > &)
atan(__z) [8.1.4].
│ │ │ 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.
│ │ │ std::complex< _Tp > atanh(const std::complex< _Tp > &)
atanh(__z) [8.1.7].
│ │ │ @@ -2237,20 +2237,20 @@
│ │ │ GNU extensions for public use.
│ │ │
│ │ │ _Tp value_type
Value typedef.
│ │ │ constexpr complex(const _Tp &__r=_Tp(), const _Tp &__i=_Tp())
Default constructor. First parameter is x, second parameter is y. Unspecified parameters default to 0...
│ │ │ constexpr complex(const complex< _Up > &__z)
Converting constructor.
│ │ │ constexpr complex< _Tp > & operator-=(const _Tp &__t)
Subtract a scalar from this complex number.
│ │ │ constexpr complex< _Tp > & operator+=(const _Tp &__t)
Add a scalar to this complex number.
│ │ │ -void setstate(iostate __state)
Sets additional flags in the error state.
│ │ │ -char_type widen(char __c) const
Widens characters.
│ │ │ +void setstate(iostate __state)
Sets additional flags in the error state.
│ │ │ +char_type widen(char __c) const
Widens characters.
│ │ │ Template class basic_istream.
│ │ │ -__istream_type & putback(char_type __c)
Unextracting a single character.
│ │ │ -fmtflags flags() const
Access to format flags.
│ │ │ -static const iostate failbit
Indicates that an input operation failed to read the expected characters, or that an output operation...
│ │ │ +__istream_type & putback(char_type __c)
Unextracting a single character.
│ │ │ +fmtflags flags() const
Access to format flags.
│ │ │ +static const iostate failbit
Indicates that an input operation failed to read the expected characters, or that an output operation...
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ complex
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00077_source.html
│ │ │ @@ -85,24 +85,24 @@
│ │ │
│ │ │ 29 #ifndef _GLIBCXX_CONDITION_VARIABLE
│ │ │ 30 #define _GLIBCXX_CONDITION_VARIABLE 1
│ │ │
│ │ │ 32 #pragma GCC system_header
│ │ │
│ │ │ 34 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 46 #if __cplusplus > 201703L
│ │ │
│ │ │
│ │ │
│ │ │ 50 #if defined(_GLIBCXX_HAS_GTHREADS)
│ │ │
│ │ │ @@ -508,33 +508,33 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ constexpr enable_if< __is_duration< _ToDur >::value, time_point< _Clock, _ToDur > >::type time_point_cast(const time_point< _Clock, _Dur > &__t)
time_point_cast
│ │ │ constexpr __enable_if_is_duration< _ToDur > duration_cast(const duration< _Rep, _Period > &__d)
duration_cast
│ │ │
│ │ │ shared_ptr< _Tp > make_shared(_Args &&... __args)
Create an object that is owned by a shared_ptr.
│ │ │ -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.
│ │ │ chrono::duration represents a distance between two points in time
│ │ │ chrono::time_point represents a point in time as measured by a clock
│ │ │
│ │ │
│ │ │
│ │ │ -Thrown as part of forced unwinding.
│ │ │ +Thrown as part of forced unwinding.
│ │ │ A smart pointer with reference-counted copy semantics.
│ │ │ -A simple scoped lock type.
│ │ │ -A movable scoped lock type.
│ │ │ +A simple scoped lock type.
│ │ │ +A movable scoped lock type.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -451,18 +451,18 @@
│ │ │ │ 447} // namespace
│ │ │ │ 448
│ │ │ │ 449#endif // _GLIBCXX_HAS_GTHREADS
│ │ │ │ 450#endif // C++11
│ │ │ │ 451#endif // _GLIBCXX_CONDITION_VARIABLE
│ │ │ │ _c_h_r_o_n_o
│ │ │ │ _s_t_o_p___t_o_k_e_n
│ │ │ │ -_c_x_x_a_b_i___f_o_r_c_e_d_._h
│ │ │ │ _u_n_i_q_u_e___l_o_c_k_._h
│ │ │ │ _s_t_d___m_u_t_e_x_._h
│ │ │ │ _c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ +_c_x_x_a_b_i___f_o_r_c_e_d_._h
│ │ │ │ _s_t_d_:_:_c_h_r_o_n_o_:_:_t_i_m_e___p_o_i_n_t___c_a_s_t
│ │ │ │ constexpr enable_if< __is_duration< _ToDur >::value, time_point< _Clock, _ToDur
│ │ │ │ > >::type time_point_cast(const time_point< _Clock, _Dur > &__t)
│ │ │ │ time_point_cast
│ │ │ │ DDeeffiinniittiioonn _c_h_r_o_n_o_:_9_5_7
│ │ │ │ _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,
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00080_source.html
│ │ │ @@ -110,24 +110,24 @@
│ │ │
│ │ │
│ │ │
│ │ │
56 #define _GLIBCXX_DEQUE 1
│ │ │
│ │ │
58 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ +
│ │ │
61 #if __cplusplus > 201703L
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
75 #if __cplusplus >= 201703L
│ │ │
76 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ @@ -170,24 +170,24 @@
│ │ │
113 return __osz - __cont.size();
│ │ │
│ │ │
115 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ -
A standard container using fixed-size memory allocation and constant-time manipulation of elements at...
│ │ │ +
A standard container using fixed-size memory allocation and constant-time manipulation of elements at...
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -117,21 +117,21 @@
│ │ │ │ 114 }
│ │ │ │ 115_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 116} // namespace std
│ │ │ │ 117#endif // C++20
│ │ │ │ 118
│ │ │ │ 119#endif /* _GLIBCXX_DEQUE */
│ │ │ │ _s_t_l___u_n_i_n_i_t_i_a_l_i_z_e_d_._h
│ │ │ │ +_d_e_q_u_e_._t_c_c
│ │ │ │ _s_t_l___d_e_q_u_e_._h
│ │ │ │ _s_t_l___c_o_n_s_t_r_u_c_t_._h
│ │ │ │ -_s_t_l___a_l_g_o_b_a_s_e_._h
│ │ │ │ +_a_l_l_o_c_a_t_o_r_._h
│ │ │ │ _s_t_l___a_l_g_o_._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
│ │ │ │ -_d_e_q_u_e_._t_c_c
│ │ │ │ -_a_l_l_o_c_a_t_o_r_._h
│ │ │ │ _s_t_d
│ │ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ │ _s_t_d_:_:_d_e_q_u_e
│ │ │ │ A standard container using fixed-size memory allocation and constant-time
│ │ │ │ manipulation of elements at...
│ │ │ │ DDeeffiinniittiioonn _s_t_l___d_e_q_u_e_._h_:_7_6_8
│ │ │ │ _d_e_q_u_e
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00086_source.html
│ │ │ @@ -85,20 +85,20 @@
│ │ │
│ │ │ 29 #ifndef _GLIBCXX_FORWARD_LIST
│ │ │ 30 #define _GLIBCXX_FORWARD_LIST 1
│ │ │
│ │ │ 32 #pragma GCC system_header
│ │ │
│ │ │ 34 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 46 #if __cplusplus >= 201703L
│ │ │ 47 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ @@ -138,20 +138,20 @@
│ │ │ 81 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -A standard container with linear time access to elements, and fixed time insertion/deletion at any po...
│ │ │ +A standard container with linear time access to elements, and fixed time insertion/deletion at any po...
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -84,18 +84,18 @@
│ │ │ │ 81_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 82} // namespace std
│ │ │ │ 83#endif // C++20
│ │ │ │ 84
│ │ │ │ 85#endif // C++11
│ │ │ │ 86
│ │ │ │ 87#endif // _GLIBCXX_FORWARD_LIST
│ │ │ │ -_r_a_n_g_e___a_c_c_e_s_s_._h
│ │ │ │ -_f_o_r_w_a_r_d___l_i_s_t_._t_c_c
│ │ │ │ _f_o_r_w_a_r_d___l_i_s_t_._h
│ │ │ │ +_f_o_r_w_a_r_d___l_i_s_t_._t_c_c
│ │ │ │ _c_+_+_0_x___w_a_r_n_i_n_g_._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_:_:_f_o_r_w_a_r_d___l_i_s_t
│ │ │ │ A standard container with linear time access to elements, and fixed time
│ │ │ │ insertion/deletion at any po...
│ │ │ │ DDeeffiinniittiioonn _f_o_r_w_a_r_d___l_i_s_t_._h_:_4_2_4
│ │ │ │ _f_o_r_w_a_r_d___l_i_s_t
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00089_source.html
│ │ │ @@ -90,17 +90,17 @@
│ │ │ 33 #ifndef _GLIBCXX_FSTREAM
│ │ │ 34 #define _GLIBCXX_FSTREAM 1
│ │ │
│ │ │ 36 #pragma GCC system_header
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │ 43 #if __cplusplus >= 201103L
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 48 #ifndef _GLIBCXX_BUFSIZ
│ │ │ 49 # define _GLIBCXX_BUFSIZ BUFSIZ
│ │ │ @@ -1444,31 +1444,31 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 1295 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ typename enable_if< _Cond, _Tp >::type enable_if_t
Alias template for enable_if.
│ │ │ auto declval() noexcept -> decltype(__declval< _Tp >(0))
│ │ │ -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.
│ │ │ void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
│ │ │ -basic_string< char > string
A string of char.
│ │ │ +basic_string< char > string
A string of char.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
│ │ │ +ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
│ │ │ The actual work of input and output (for files).
│ │ │ virtual pos_type seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode=ios_base::in|ios_base::out)
│ │ │ virtual int_type underflow()
│ │ │
│ │ │ virtual streamsize showmanyc()
│ │ │ ios_base::openmode _M_mode
│ │ │ virtual ~basic_filebuf()
The destructor closes the file first.
│ │ │ @@ -1476,28 +1476,28 @@
│ │ │ char_type * _M_pback_cur_save
│ │ │ _If_fs_path< _Path, __filebuf_type * > open(const _Path &__s, ios_base::openmode __mode)
Opens an external file.
│ │ │ __filebuf_type * open(const std::string &__s, ios_base::openmode __mode)
Opens an external file.
│ │ │ virtual void imbue(const locale &__loc)
│ │ │ virtual streamsize xsgetn(char_type *__s, streamsize __n)
│ │ │ bool is_open() const
Returns true if the external file is open.
│ │ │
│ │ │ -__filebuf_type * close()
Closes the currently associated file.
│ │ │ +__filebuf_type * close()
Closes the currently associated file.
│ │ │ char_type * _M_pback_end_save
│ │ │
│ │ │
│ │ │ virtual pos_type seekpos(pos_type __pos, ios_base::openmode __mode=ios_base::in|ios_base::out)
│ │ │
│ │ │ virtual int_type pbackfail(int_type __c=traits_type::eof())
│ │ │ virtual streamsize xsputn(const char_type *__s, streamsize __n)
│ │ │
│ │ │ virtual int_type overflow(int_type __c=traits_type::eof())
│ │ │
│ │ │
│ │ │ -__filebuf_type * open(const char *__s, ios_base::openmode __mode)
Opens an external file.
│ │ │ -basic_filebuf()
Does not open any files.
│ │ │ +__filebuf_type * open(const char *__s, ios_base::openmode __mode)
Opens an external file.
│ │ │ +basic_filebuf()
Does not open any files.
│ │ │ void _M_set_buffer(streamsize __off)
│ │ │
│ │ │
│ │ │ virtual __streambuf_type * setbuf(char_type *__s, streamsize __n)
│ │ │ Controlling input for files.
│ │ │ basic_ifstream()
Default constructor.
│ │ │ ~basic_ifstream()
The destructor does nothing.
│ │ │ @@ -1530,40 +1530,40 @@
│ │ │ basic_fstream(const std::string &__s, ios_base::openmode __mode=ios_base::in|ios_base::out)
Create an input/output file stream.
│ │ │ void open(const std::string &__s, ios_base::openmode __mode=ios_base::in|ios_base::out)
Opens an external file.
│ │ │ __filebuf_type * rdbuf() const
Accessing the underlying buffer.
│ │ │ bool is_open()
Wrapper to test for an open file.
│ │ │ void close()
Close the file.
│ │ │ basic_fstream(const char *__s, ios_base::openmode __mode=ios_base::in|ios_base::out)
Create an input/output file stream.
│ │ │ basic_fstream()
Default constructor.
│ │ │ -Template class basic_ios, virtual base class for all stream classes.
│ │ │ -void clear(iostate __state=goodbit)
[Re]sets the error state.
│ │ │ -void setstate(iostate __state)
Sets additional flags in the error state.
│ │ │ -void init(basic_streambuf< _CharT, _Traits > *__sb)
All setup is performed here.
│ │ │ +Template class basic_ios, virtual base class for all stream classes.
│ │ │ +void clear(iostate __state=goodbit)
[Re]sets the error state.
│ │ │ +void setstate(iostate __state)
Sets additional flags in the error state.
│ │ │ +void init(basic_streambuf< _CharT, _Traits > *__sb)
All setup is performed here.
│ │ │ 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.
│ │ │ void setp(char_type *__pbeg, char_type *__pend)
Setting the three write area pointers.
│ │ │ basic_streambuf()
Base constructor.
│ │ │ basic_istream(__streambuf_type *__sb)
Base constructor.
│ │ │ basic_ostream(__streambuf_type *__sb)
Base constructor.
│ │ │ basic_iostream(basic_streambuf< _CharT, _Traits > *__sb)
Constructor does nothing.
│ │ │
│ │ │
│ │ │
│ │ │ -const _CharT * c_str() const noexcept
Return const pointer to null-terminated contents.
│ │ │ -Primary class template codecvt.
│ │ │ -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.
│ │ │ -static const openmode trunc
Truncate an existing stream when opening. Default for ofstream.
│ │ │ -static const iostate failbit
Indicates that an input operation failed to read the expected characters, or that an output operation...
│ │ │ -Container class for localization functionality.
│ │ │ -Class representing stream positions.
│ │ │ +const _CharT * c_str() const noexcept
Return const pointer to null-terminated contents.
│ │ │ +Primary class template codecvt.
│ │ │ +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.
│ │ │ +static const openmode trunc
Truncate an existing stream when opening. Default for ofstream.
│ │ │ +static const iostate failbit
Indicates that an input operation failed to read the expected characters, or that an output operation...
│ │ │ +Container class for localization functionality.
│ │ │ +Class representing stream positions.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ fstream
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00092_source.html
│ │ │ @@ -98,35 +98,35 @@
│ │ │
│ │ │
│ │ │ 43 #ifndef _GLIBCXX_FUNCTIONAL
│ │ │ 44 #define _GLIBCXX_FUNCTIONAL 1
│ │ │
│ │ │ 46 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 51 #if __cplusplus >= 201103L
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ 60 #if __cplusplus > 201402L
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 67 #if __cplusplus > 201703L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 74 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ @@ -1384,58 +1384,58 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ integral_constant< bool, true > true_type
The type used as a compile-time boolean with true value.
│ │ │ typename make_unsigned< _Tp >::type make_unsigned_t
Alias template for make_unsigned.
│ │ │ typename decay< _Tp >::type decay_t
Alias template for decay.
│ │ │ typename invoke_result< _Fn, _Args... >::type invoke_result_t
std::invoke_result_t
│ │ │ integral_constant< bool, false > false_type
The type used as a compile-time boolean with false value.
│ │ │ -constexpr pair< typename __decay_and_strip< _T1 >::__type, typename __decay_and_strip< _T2 >::__type > make_pair(_T1 &&__x, _T2 &&__y)
A convenience wrapper for creating a pair from two objects.
│ │ │ +constexpr pair< typename __decay_and_strip< _T1 >::__type, typename __decay_and_strip< _T2 >::__type > make_pair(_T1 &&__x, _T2 &&__y)
A convenience wrapper for creating a pair from two objects.
│ │ │ auto declval() noexcept -> decltype(__declval< _Tp >(0))
│ │ │ constexpr tuple< _Elements &&... > forward_as_tuple(_Elements &&... __args) noexcept
std::forward_as_tuple
│ │ │ -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 && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ -constexpr const _Tp & max(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ +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 && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ +constexpr const _Tp & max(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ constexpr _Mem_fn< _Tp _Class::* > mem_fn(_Tp _Class::*__pm) noexcept
Returns a function object that forwards to the member pointer pm.
│ │ │ constexpr _Bind_helper< __is_socketlike< _Func >::value, _Func, _BoundArgs... >::type bind(_Func &&__f, _BoundArgs &&... __args)
Function template for std::bind.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ constexpr invoke_result_t< _Callable, _Args... > invoke(_Callable &&__fn, _Args &&... __args) noexcept(is_nothrow_invocable_v< _Callable, _Args... >)
Invoke a callable object.
│ │ │ constexpr auto not_fn(_Fn &&__fn) noexcept(std::is_nothrow_constructible< std::decay_t< _Fn >, _Fn && >::value)
[func.not_fn] Function template not_fn
│ │ │ -constexpr iterator_traits< _InputIterator >::difference_type distance(_InputIterator __first, _InputIterator __last)
A generalization of pointer arithmetic.
│ │ │ -constexpr void advance(_InputIterator &__i, _Distance __n)
A generalization of pointer arithmetic.
│ │ │ +constexpr iterator_traits< _InputIterator >::difference_type distance(_InputIterator __first, _InputIterator __last)
A generalization of pointer arithmetic.
│ │ │ +constexpr void advance(_InputIterator &__i, _Distance __n)
A generalization of pointer arithmetic.
│ │ │
│ │ │ make_index_sequence< sizeof...(_Types)> index_sequence_for
Alias template index_sequence_for.
│ │ │ ISO C++ 2011 namespace for std::bind placeholders.
│ │ │ The type of placeholder objects defined by libstdc++.
│ │ │ Determines if the given type _Tp is a function object that should be treated as a subexpression when ...
│ │ │ Determines if the given type _Tp is a placeholder in a bind() expression and, if so,...
│ │ │
│ │ │ Type of the function object returned from bind().
│ │ │ Type of the function object returned from bind<R>().
│ │ │
│ │ │ Primary class template, tuple.
│ │ │ -Primary class template for reference_wrapper.
│ │ │ +Primary class template for reference_wrapper.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -One of the comparison functors.
│ │ │ +One of the comparison functors.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ functional
│ │ │ ├── html2text {}
│ │ │ │ @@ -1289,21 +1289,21 @@
│ │ │ │ _n_e_w
│ │ │ │ _a_r_r_a_y
│ │ │ │ _t_u_p_l_e
│ │ │ │ _t_y_p_e___t_r_a_i_t_s
│ │ │ │ _u_n_o_r_d_e_r_e_d___m_a_p
│ │ │ │ _u_t_i_l_i_t_y
│ │ │ │ _v_e_c_t_o_r
│ │ │ │ +_f_u_n_c_t_i_o_n_a_l___h_a_s_h_._h
│ │ │ │ _s_t_l___f_u_n_c_t_i_o_n_._h
│ │ │ │ +_r_a_n_g_e_s___c_m_p_._h
│ │ │ │ _s_t_l___a_l_g_o_._h
│ │ │ │ -_s_t_d___f_u_n_c_t_i_o_n_._h
│ │ │ │ _r_e_f_w_r_a_p_._h
│ │ │ │ -_r_a_n_g_e_s___c_m_p_._h
│ │ │ │ _i_n_v_o_k_e_._h
│ │ │ │ -_f_u_n_c_t_i_o_n_a_l___h_a_s_h_._h
│ │ │ │ +_s_t_d___f_u_n_c_t_i_o_n_._h
│ │ │ │ _c_+_+_c_o_n_f_i_g_._h
│ │ │ │ _s_t_d_:_:_t_r_u_e___t_y_p_e
│ │ │ │ integral_constant< bool, 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_:_8_3
│ │ │ │ _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-11-base/libstdc++/user/a00095_source.html
│ │ │ @@ -85,30 +85,30 @@
│ │ │
│ │ │ 29 #ifndef _GLIBCXX_FUTURE
│ │ │ 30 #define _GLIBCXX_FUTURE 1
│ │ │
│ │ │ 32 #pragma GCC system_header
│ │ │
│ │ │ 34 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ 49 #include <bits/uses_allocator.h>
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 52 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 54 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ @@ -1945,39 +1945,39 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ const error_category & future_category() noexcept
Points to a statically-allocated object derived from error_category.
│ │ │ future_status
Status code for futures.
│ │ │ future_errc
Error code for futures.
│ │ │ launch
Launch code for futures.
│ │ │ future< __async_result_of< _Fn, _Args... > > async(launch __policy, _Fn &&__fn, _Args &&... __args)
async
│ │ │ shared_ptr< _Tp > make_shared(_Args &&... __args)
Create an object that is owned by a shared_ptr.
│ │ │ shared_ptr< _Tp > allocate_shared(const _Alloc &__a, _Args &&... __args)
Create an object that is owned by a shared_ptr.
│ │ │ void swap(shared_ptr< _Tp > &__a, shared_ptr< _Tp > &__b) noexcept
Swap overload for shared_ptr.
│ │ │ integral_constant< bool, true > true_type
The type used as a compile-time boolean with true 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 _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.
│ │ │ void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
│ │ │ -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.
│ │ │ exception_ptr current_exception() noexcept
│ │ │ -exception_ptr make_exception_ptr(_Ex) noexcept
Obtain an exception_ptr pointing to a copy of the supplied object.
│ │ │ +exception_ptr make_exception_ptr(_Ex) noexcept
Obtain an exception_ptr pointing to a copy of the supplied object.
│ │ │ void rethrow_exception(exception_ptr)
Throw the object pointed to by the exception_ptr.
│ │ │ 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.
│ │ │ bitset< _Nb > operator&(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
│ │ │ bitset< _Nb > operator|(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
│ │ │ bitset< _Nb > operator^(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
│ │ │ chrono::duration represents a distance between two points in time
│ │ │ @@ -2019,20 +2019,20 @@
│ │ │
│ │ │ An exception type that includes an error_code value.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ Define a member typedef type only if a boolean constant is true.
│ │ │ -The standard allocator, as per C++03 [20.4.1].
│ │ │ -Thrown as part of forced unwinding.
│ │ │ -An opaque pointer to an arbitrary exception.
│ │ │ +The standard allocator, as per C++03 [20.4.1].
│ │ │ +Thrown as part of forced unwinding.
│ │ │ +An opaque pointer to an arbitrary exception.
│ │ │ A smart pointer with reference-counted copy semantics.
│ │ │ -
│ │ │ -20.7.1.2 unique_ptr for single objects.
│ │ │ +
│ │ │ +20.7.1.2 unique_ptr for single objects.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1820,21 +1820,21 @@
│ │ │ │ 1816#endif // C++11
│ │ │ │ 1817
│ │ │ │ 1818#endif // _GLIBCXX_FUTURE
│ │ │ │ _a_t_o_m_i_c
│ │ │ │ _c_o_n_d_i_t_i_o_n___v_a_r_i_a_b_l_e
│ │ │ │ _m_u_t_e_x
│ │ │ │ _s_y_s_t_e_m___e_r_r_o_r
│ │ │ │ -_u_n_i_q_u_e___p_t_r_._h
│ │ │ │ -_s_t_d___t_h_r_e_a_d_._h
│ │ │ │ -_s_t_d___f_u_n_c_t_i_o_n_._h
│ │ │ │ -_i_n_v_o_k_e_._h
│ │ │ │ _c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ _a_t_o_m_i_c___f_u_t_e_x_._h
│ │ │ │ +_i_n_v_o_k_e_._h
│ │ │ │ _a_l_l_o_c_a_t_e_d___p_t_r_._h
│ │ │ │ +_s_t_d___f_u_n_c_t_i_o_n_._h
│ │ │ │ +_s_t_d___t_h_r_e_a_d_._h
│ │ │ │ +_u_n_i_q_u_e___p_t_r_._h
│ │ │ │ _a_l_i_g_n_e_d___b_u_f_f_e_r_._h
│ │ │ │ _s_t_d_:_:_f_u_t_u_r_e___c_a_t_e_g_o_r_y
│ │ │ │ const error_category & future_category() noexcept
│ │ │ │ Points to a statically-allocated object derived from error_category.
│ │ │ │ _s_t_d_:_:_f_u_t_u_r_e___s_t_a_t_u_s
│ │ │ │ future_status
│ │ │ │ Status code for futures.
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00098_source.html
│ │ │ @@ -88,22 +88,22 @@
│ │ │
│ │ │
│ │ │ 33 #ifndef _GLIBCXX_IOMANIP
│ │ │ 34 #define _GLIBCXX_IOMANIP 1
│ │ │
│ │ │ 36 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 42 #if __cplusplus >= 201103L
│ │ │
│ │ │ 44 #if __cplusplus > 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ 49 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 51 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ @@ -615,52 +615,52 @@
│ │ │
│ │ │ 537 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ basic_ostream< char > ostream
Base class for char output streams.
│ │ │ basic_istream< char > istream
Base class for char input streams.
│ │ │ basic_ostream< wchar_t > wostream
Base class for wchar_t output streams.
│ │ │ basic_istream< wchar_t > wistream
Base class for wchar_t input streams.
│ │ │ -const _Facet & use_facet(const locale &__loc)
Return a facet.
│ │ │ +const _Facet & use_facet(const locale &__loc)
Return a facet.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ _Put_time< _CharT > put_time(const std::tm *__tmb, const _CharT *__fmt)
Extended manipulator for formatting time.
│ │ │ _Resetiosflags resetiosflags(ios_base::fmtflags __mask)
Manipulator for setf.
│ │ │ _Get_money< _MoneyT > get_money(_MoneyT &__mon, bool __intl=false)
Extended manipulator for extracting money.
│ │ │ _Setw setw(int __n)
Manipulator for width.
│ │ │ _Setprecision setprecision(int __n)
Manipulator for precision.
│ │ │ _Setfill< _CharT > setfill(_CharT __c)
Manipulator for fill.
│ │ │ std::basic_istream< _CharT, _Traits > & operator>>(std::basic_istream< _CharT, _Traits > &__is, bitset< _Nb > &__x)
Global I/O operators for bitsets.
│ │ │ _Put_money< _MoneyT > put_money(const _MoneyT &__mon, bool __intl=false)
Extended manipulator for inserting money.
│ │ │ _Setiosflags setiosflags(ios_base::fmtflags __mask)
Manipulator for setf.
│ │ │ std::basic_ostream< _CharT, _Traits > & operator<<(std::basic_ostream< _CharT, _Traits > &__os, const bitset< _Nb > &__x)
Global I/O operators for bitsets.
│ │ │ auto quoted(const _CharT *__string, _CharT __delim=_CharT('"'), _CharT __escape = _CharT('\\'))
Manipulator for quoted strings.
│ │ │ _Get_time< _CharT > get_time(std::tm *__tmb, const _CharT *__fmt)
Extended manipulator for extracting time.
│ │ │ _Setbase setbase(int __base)
Manipulator for setf.
│ │ │ -char_type fill() const
Retrieves the empty character.
│ │ │ +char_type fill() const
Retrieves the empty character.
│ │ │ Template class basic_ostream.
│ │ │ A non-owning reference to a string.
│ │ │ -Managing sequences of characters and character-like objects.
│ │ │ -fmtflags setf(fmtflags __fmtfl)
Setting new format flags.
│ │ │ -_Ios_Fmtflags fmtflags
This is a bitmask type.
│ │ │ -_Ios_Iostate iostate
This is a bitmask type.
│ │ │ -static const fmtflags hex
Converts integer input or generates integer output in hexadecimal base.
│ │ │ -static const fmtflags basefield
A mask of dec|oct|hex. Useful for the 2-arg form of setf.
│ │ │ -streamsize precision() const
Flags access.
│ │ │ -static const fmtflags dec
Converts integer input or generates integer output in decimal base.
│ │ │ -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...
│ │ │ -streamsize width() const
Flags access.
│ │ │ -static const fmtflags oct
Converts integer input or generates integer output in octal base.
│ │ │ -Struct for delimited strings.
│ │ │ +Managing sequences of characters and character-like objects.
│ │ │ +fmtflags setf(fmtflags __fmtfl)
Setting new format flags.
│ │ │ +_Ios_Fmtflags fmtflags
This is a bitmask type.
│ │ │ +_Ios_Iostate iostate
This is a bitmask type.
│ │ │ +static const fmtflags hex
Converts integer input or generates integer output in hexadecimal base.
│ │ │ +static const fmtflags basefield
A mask of dec|oct|hex. Useful for the 2-arg form of setf.
│ │ │ +streamsize precision() const
Flags access.
│ │ │ +static const fmtflags dec
Converts integer input or generates integer output in decimal base.
│ │ │ +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...
│ │ │ +streamsize width() const
Flags access.
│ │ │ +static const fmtflags oct
Converts integer input or generates integer output in octal base.
│ │ │ +Struct for delimited strings.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ iomanip
│ │ │ ├── html2text {}
│ │ │ │ @@ -539,16 +539,16 @@
│ │ │ │ 536
│ │ │ │ 537_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 538} // namespace
│ │ │ │ 539
│ │ │ │ 540#endif /* _GLIBCXX_IOMANIP */
│ │ │ │ _i_o_s_f_w_d
│ │ │ │ _l_o_c_a_l_e
│ │ │ │ -_q_u_o_t_e_d___s_t_r_i_n_g_._h
│ │ │ │ _i_o_s___b_a_s_e_._h
│ │ │ │ +_q_u_o_t_e_d___s_t_r_i_n_g_._h
│ │ │ │ _c_+_+_c_o_n_f_i_g_._h
│ │ │ │ _s_t_d_:_:_o_s_t_r_e_a_m
│ │ │ │ basic_ostream< char > ostream
│ │ │ │ Base class for char output streams.
│ │ │ │ DDeeffiinniittiioonn _i_o_s_f_w_d_:_1_4_1
│ │ │ │ _s_t_d_:_:_i_s_t_r_e_a_m
│ │ │ │ basic_istream< char > istream
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00101_source.html
│ │ │ @@ -90,28 +90,28 @@
│ │ │
│ │ │
│ │ │
│ │ │ 36 #pragma GCC system_header
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ios
│ │ │ ├── html2text {}
│ │ │ │ @@ -46,13 +46,13 @@
│ │ │ │ 43#include <_s_t_r_e_a_m_b_u_f>
│ │ │ │ 44#include <_b_i_t_s_/_b_a_s_i_c___i_o_s_._h>
│ │ │ │ 45
│ │ │ │ 46#endif /* _GLIBCXX_IOS */
│ │ │ │ _e_x_c_e_p_t_i_o_n
│ │ │ │ _i_o_s_f_w_d
│ │ │ │ _s_t_r_e_a_m_b_u_f
│ │ │ │ -_l_o_c_a_l_e_f_w_d_._h
│ │ │ │ -_i_o_s___b_a_s_e_._h
│ │ │ │ _c_h_a_r___t_r_a_i_t_s_._h
│ │ │ │ +_i_o_s___b_a_s_e_._h
│ │ │ │ _b_a_s_i_c___i_o_s_._h
│ │ │ │ +_l_o_c_a_l_e_f_w_d_._h
│ │ │ │ * _i_o_s
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00104_source.html
│ │ │ @@ -88,17 +88,17 @@
│ │ │
│ │ │
│ │ │ 33 #ifndef _GLIBCXX_IOSFWD
│ │ │ 34 #define _GLIBCXX_IOSFWD 1
│ │ │
│ │ │ 36 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 42 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 44 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ @@ -284,17 +284,17 @@
│ │ │
│ │ │
│ │ │
│ │ │ 230 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ basic_ifstream< wchar_t > wifstream
Class for wchar_t input file streams.
│ │ │ basic_stringstream< char > stringstream
Class for char mixed input and output memory streams.
│ │ │ basic_iostream< wchar_t > wiostream
Base class for wchar_t mixed input and output streams.
│ │ │ basic_streambuf< char > streambuf
Base class for char buffers.
│ │ │ basic_stringbuf< wchar_t > wstringbuf
Class for wchar_t memory buffers.
│ │ │ basic_ostream< char > ostream
Base class for char output streams.
│ │ │ basic_ifstream< char > ifstream
Class for char input file streams.
│ │ │ @@ -318,26 +318,26 @@
│ │ │ basic_ostringstream< char > ostringstream
Class for char output memory streams.
│ │ │ basic_stringbuf< char > stringbuf
Class for char memory buffers.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ The actual work of input and output (for files).
│ │ │ Controlling input for files.
│ │ │ Controlling output for files.
│ │ │ Controlling input and output for files.
│ │ │ -Template class basic_ios, virtual base class for all stream classes.
│ │ │ +Template class basic_ios, virtual base class for all stream classes.
│ │ │ The actual work of input and output (interface).
│ │ │ Template class basic_istream.
│ │ │ Template class basic_ostream.
│ │ │ Template class basic_iostream.
│ │ │ The actual work of input and output (for std::string).
│ │ │ Controlling input for std::string.
│ │ │ Controlling output for std::string.
│ │ │ Controlling input and output for std::string.
│ │ │ -Provides input iterator semantics for streambufs.
│ │ │ -Provides output iterator semantics for streambufs.
│ │ │ -The base of the I/O class hierarchy.
│ │ │ +Provides input iterator semantics for streambufs.
│ │ │ +Provides output iterator semantics for streambufs.
│ │ │ +The base of the I/O class hierarchy.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ iosfwd
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00107_source.html
│ │ │ @@ -88,15 +88,15 @@
│ │ │
│ │ │
│ │ │ 33 #ifndef _GLIBCXX_IOSTREAM
│ │ │ 34 #define _GLIBCXX_IOSTREAM 1
│ │ │
│ │ │ 36 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ 42 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 44 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ @@ -132,15 +132,15 @@
│ │ │
│ │ │ 76 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │ basic_ostream< char > ostream
Base class for char output streams.
│ │ │ basic_istream< char > istream
Base class for char input streams.
│ │ │ basic_ostream< wchar_t > wostream
Base class for wchar_t output streams.
│ │ │ basic_istream< wchar_t > wistream
Base class for wchar_t input streams.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ wostream wclog
Linked to standard error (unbuffered).
│ │ │ wostream wcout
Linked to standard input.
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00110_source.html
│ │ │ @@ -1128,87 +1128,87 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 1013 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │ basic_istream< char > istream
Base class for char input streams.
│ │ │ auto declval() noexcept -> decltype(__declval< _Tp >(0))
│ │ │ -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.
│ │ │ void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
│ │ │ -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.
│ │ │ -ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
│ │ │ +ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
│ │ │ std::basic_istream< _CharT, _Traits > & operator>>(std::basic_istream< _CharT, _Traits > &__is, bitset< _Nb > &__x)
Global I/O operators for bitsets.
│ │ │ -basic_istream< _CharT, _Traits > & ws(basic_istream< _CharT, _Traits > &__is)
Quick and easy way to eat whitespace.
│ │ │ -void init(basic_streambuf< _CharT, _Traits > *__sb)
All setup is performed here.
│ │ │ -char_type widen(char __c) const
Widens characters.
│ │ │ -basic_ios(basic_streambuf< _CharT, _Traits > *__sb)
Constructor performs initialization.
│ │ │ +basic_istream< _CharT, _Traits > & ws(basic_istream< _CharT, _Traits > &__is)
Quick and easy way to eat whitespace.
│ │ │ +void init(basic_streambuf< _CharT, _Traits > *__sb)
All setup is performed here.
│ │ │ +char_type widen(char __c) const
Widens characters.
│ │ │ +basic_ios(basic_streambuf< _CharT, _Traits > *__sb)
Constructor performs initialization.
│ │ │ The actual work of input and output (interface).
│ │ │ Template class basic_istream.
│ │ │ __istream_type & operator>>(void *&__p)
Basic arithmetic extractors.
│ │ │ -__istream_type & seekg(pos_type)
Changing the current read position.
│ │ │ +__istream_type & seekg(pos_type)
Changing the current read position.
│ │ │ streamsize gcount() const
Character counting.
│ │ │ -int_type get()
Simple extraction.
│ │ │ -streamsize readsome(char_type *__s, streamsize __n)
Extraction until the buffer is exhausted, but no more.
│ │ │ -__istream_type & get(__streambuf_type &__sb, char_type __delim)
Extraction into another streambuf.
│ │ │ -int_type peek()
Looking ahead in the stream.
│ │ │ -__istream_type & ignore(streamsize __n, int_type __delim)
Discarding characters.
│ │ │ -__istream_type & operator>>(__streambuf_type *__sb)
Extracting into another streambuf.
│ │ │ -__istream_type & unget()
Unextracting the previous character.
│ │ │ -pos_type tellg()
Getting the current read position.
│ │ │ -__istream_type & operator>>(int &__n)
Integer arithmetic extractors.
│ │ │ +int_type get()
Simple extraction.
│ │ │ +streamsize readsome(char_type *__s, streamsize __n)
Extraction until the buffer is exhausted, but no more.
│ │ │ +__istream_type & get(__streambuf_type &__sb, char_type __delim)
Extraction into another streambuf.
│ │ │ +int_type peek()
Looking ahead in the stream.
│ │ │ +__istream_type & ignore(streamsize __n, int_type __delim)
Discarding characters.
│ │ │ +__istream_type & operator>>(__streambuf_type *__sb)
Extracting into another streambuf.
│ │ │ +__istream_type & unget()
Unextracting the previous character.
│ │ │ +pos_type tellg()
Getting the current read position.
│ │ │ +__istream_type & operator>>(int &__n)
Integer arithmetic extractors.
│ │ │ __istream_type & get(__streambuf_type &__sb)
Extraction into another streambuf.
│ │ │
│ │ │ __istream_type & operator>>(double &__f)
Floating point arithmetic extractors.
│ │ │ -__istream_type & ignore()
Simple extraction.
│ │ │ +__istream_type & ignore()
Simple extraction.
│ │ │ __istream_type & operator>>(bool &__n)
Integer arithmetic extractors.
│ │ │ __istream_type & operator>>(long &__n)
Integer arithmetic extractors.
│ │ │ -__istream_type & get(char_type &__c)
Simple extraction.
│ │ │ +__istream_type & get(char_type &__c)
Simple extraction.
│ │ │ virtual ~basic_istream()
Base destructor.
│ │ │ __istream_type & getline(char_type *__s, streamsize __n)
String extraction.
│ │ │ __istream_type & operator>>(unsigned long long &__n)
Integer arithmetic extractors.
│ │ │ __istream_type & operator>>(float &__f)
Floating point arithmetic extractors.
│ │ │ __istream_type & operator>>(__ios_type &(*__pf)(__ios_type &))
Interface for manipulators.
│ │ │ __istream_type & operator>>(long long &__n)
Integer arithmetic extractors.
│ │ │ __istream_type & operator>>(unsigned long &__n)
Integer arithmetic extractors.
│ │ │ -__istream_type & read(char_type *__s, streamsize __n)
Extraction without delimiters.
│ │ │ +__istream_type & read(char_type *__s, streamsize __n)
Extraction without delimiters.
│ │ │ __istream_type & operator>>(unsigned int &__n)
Integer arithmetic extractors.
│ │ │ __istream_type & operator>>(unsigned short &__n)
Integer arithmetic extractors.
│ │ │ -__istream_type & putback(char_type __c)
Unextracting a single character.
│ │ │ +__istream_type & putback(char_type __c)
Unextracting a single character.
│ │ │ basic_istream(__streambuf_type *__sb)
Base constructor.
│ │ │ -__istream_type & seekg(off_type, ios_base::seekdir)
Changing the current read position.
│ │ │ -__istream_type & getline(char_type *__s, streamsize __n, char_type __delim)
String extraction.
│ │ │ -__istream_type & get(char_type *__s, streamsize __n, char_type __delim)
Simple multiple-character extraction.
│ │ │ +__istream_type & seekg(off_type, ios_base::seekdir)
Changing the current read position.
│ │ │ +__istream_type & getline(char_type *__s, streamsize __n, char_type __delim)
String extraction.
│ │ │ +__istream_type & get(char_type *__s, streamsize __n, char_type __delim)
Simple multiple-character extraction.
│ │ │ __istream_type & get(char_type *__s, streamsize __n)
Simple multiple-character extraction.
│ │ │ __istream_type & operator>>(ios_base &(*__pf)(ios_base &))
Interface for manipulators.
│ │ │ __istream_type & operator>>(long double &__f)
Floating point arithmetic extractors.
│ │ │ __istream_type & operator>>(__istream_type &(*__pf)(__istream_type &))
Interface for manipulators.
│ │ │ -int sync()
Synchronizing the stream buffer.
│ │ │ -__istream_type & operator>>(short &__n)
Integer arithmetic extractors.
│ │ │ -__istream_type & ignore(streamsize __n)
Simple extraction.
│ │ │ +int sync()
Synchronizing the stream buffer.
│ │ │ +__istream_type & operator>>(short &__n)
Integer arithmetic extractors.
│ │ │ +__istream_type & ignore(streamsize __n)
Simple extraction.
│ │ │ basic_ostream(__streambuf_type *__sb)
Base constructor.
│ │ │ basic_iostream(basic_streambuf< _CharT, _Traits > *__sb)
Constructor does nothing.
│ │ │ virtual ~basic_iostream()
Destructor does nothing.
│ │ │ -sentry(basic_istream< _CharT, _Traits > &__is, bool __noskipws=false)
The constructor performs all the work.
│ │ │ +sentry(basic_istream< _CharT, _Traits > &__is, bool __noskipws=false)
The constructor performs all the work.
│ │ │ _Traits traits_type
Easy access to dependent types.
│ │ │
│ │ │ -The base of the I/O class hierarchy.
│ │ │ -static const iostate eofbit
Indicates that an input operation reached the end of an input sequence.
│ │ │ -_Ios_Seekdir seekdir
This is an enumerated type.
│ │ │ -static const iostate failbit
Indicates that an input operation failed to read the expected characters, or that an output operation...
│ │ │ -Primary class template ctype facet.
│ │ │ -Primary class template num_get.
│ │ │ +The base of the I/O class hierarchy.
│ │ │ +static const iostate eofbit
Indicates that an input operation reached the end of an input sequence.
│ │ │ +_Ios_Seekdir seekdir
This is an enumerated type.
│ │ │ +static const iostate failbit
Indicates that an input operation failed to read the expected characters, or that an output operation...
│ │ │ +Primary class template ctype facet.
│ │ │ +Primary class template num_get.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ istream
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00113_source.html
│ │ │ @@ -110,35 +110,35 @@
│ │ │
│ │ │
│ │ │ 55 #ifndef _GLIBCXX_ITERATOR
│ │ │ 56 #define _GLIBCXX_ITERATOR 1
│ │ │
│ │ │ 58 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 69 #if __cplusplus >= 201402L && ! defined _GLIBCXX_DEBUG
│ │ │ 70 # define __cpp_lib_null_iterators 201304L
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -71,16 +71,16 @@
│ │ │ │ 68
│ │ │ │ 69#if __cplusplus >= 201402L && ! defined _GLIBCXX_DEBUG // PR libstdc++/70303
│ │ │ │ 70# define __cpp_lib_null_iterators 201304L
│ │ │ │ 71#endif
│ │ │ │ 72
│ │ │ │ 73#endif /* _GLIBCXX_ITERATOR */
│ │ │ │ _i_o_s_f_w_d
│ │ │ │ -_s_t_r_e_a_m_b_u_f___i_t_e_r_a_t_o_r_._h
│ │ │ │ _s_t_r_e_a_m___i_t_e_r_a_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___i_t_e_r_a_t_o_r___b_a_s_e___f_u_n_c_s_._h
│ │ │ │ +_s_t_r_e_a_m_b_u_f___i_t_e_r_a_t_o_r_._h
│ │ │ │ _r_a_n_g_e___a_c_c_e_s_s_._h
│ │ │ │ _c_+_+_c_o_n_f_i_g_._h
│ │ │ │ _s_t_l___i_t_e_r_a_t_o_r_._h
│ │ │ │ * _i_t_e_r_a_t_o_r
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00116_source.html
│ │ │ @@ -86,15 +86,15 @@
│ │ │
│ │ │ 30 #define _GLIBCXX_LATCH 1
│ │ │
│ │ │ 32 #pragma GCC system_header
│ │ │
│ │ │ 34 #if __cplusplus > 201703L
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 39 #if __cpp_lib_atomic_wait
│ │ │ 40 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 42 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ @@ -145,16 +145,16 @@
│ │ │ 88 alignas (__alignof__(__detail::__platform_wait_t)) __detail::__platform_wait_t _M_a;
│ │ │
│ │ │ 90 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -constexpr const _Tp & max(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ +
│ │ │ +constexpr const _Tp & max(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00119_source.html
│ │ │ @@ -92,15 +92,15 @@
│ │ │
│ │ │
│ │ │
37 #ifndef _GLIBCXX_NUMERIC_LIMITS
│ │ │
38 #define _GLIBCXX_NUMERIC_LIMITS 1
│ │ │
│ │ │
40 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -1996,15 +1996,15 @@
│ │ │
│ │ │
│ │ │
1897 #undef __glibcxx_digits
│ │ │
1898 #undef __glibcxx_digits10
│ │ │
1899 #undef __glibcxx_max_digits10
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │
float_round_style
Describes the rounding style for floating-point types.
│ │ │
@ round_toward_zero
Intermediate.
│ │ │
@ round_toward_infinity
To the nearest representable value.
│ │ │
@ round_to_nearest
To zero.
│ │ │
@ round_toward_neg_infinity
To infinity.
│ │ │
float_denorm_style
Describes the denormalization for floating-point types.
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00122_source.html
│ │ │ @@ -110,19 +110,19 @@
│ │ │
│ │ │
│ │ │
│ │ │
56 #define _GLIBCXX_LIST 1
│ │ │
│ │ │
58 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
70 #if __cplusplus >= 201703L
│ │ │
71 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ @@ -160,21 +160,21 @@
│ │ │
│ │ │
│ │ │
105 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ -
A standard container with linear time access to elements, and fixed time insertion/deletion at any po...
│ │ │ +
A standard container with linear time access to elements, and fixed time insertion/deletion at any po...
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -107,18 +107,18 @@
│ │ │ │ 104 }
│ │ │ │ 105_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 106} // namespace std
│ │ │ │ 107#endif // C++20
│ │ │ │ 108
│ │ │ │ 109#endif /* _GLIBCXX_LIST */
│ │ │ │ _s_t_l___l_i_s_t_._h
│ │ │ │ +_a_l_l_o_c_a_t_o_r_._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
│ │ │ │ _l_i_s_t_._t_c_c
│ │ │ │ -_a_l_l_o_c_a_t_o_r_._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_:_:_l_i_s_t
│ │ │ │ A standard container with linear time access to elements, and fixed time
│ │ │ │ insertion/deletion at any po...
│ │ │ │ DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_5_5_8
│ │ │ │ _l_i_s_t
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00125_source.html
│ │ │ @@ -88,28 +88,28 @@
│ │ │
│ │ │
│ │ │ 33 #ifndef _GLIBCXX_LOCALE
│ │ │ 34 #define _GLIBCXX_LOCALE 1
│ │ │
│ │ │ 36 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ 42 #if __cplusplus >= 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ locale
│ │ │ ├── html2text {}
│ │ │ │ @@ -43,14 +43,14 @@
│ │ │ │ 40#include <_b_i_t_s_/_l_o_c_a_l_e___f_a_c_e_t_s_._h>
│ │ │ │ 41#include <_b_i_t_s_/_l_o_c_a_l_e___f_a_c_e_t_s___n_o_n_i_o_._h>
│ │ │ │ 42#if __cplusplus >= 201103L
│ │ │ │ 43# include <_b_i_t_s_/_l_o_c_a_l_e___c_o_n_v_._h>
│ │ │ │ 44#endif
│ │ │ │ 45
│ │ │ │ 46#endif /* _GLIBCXX_LOCALE */
│ │ │ │ -_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
│ │ │ │ _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-11-base/libstdc++/user/a00128_source.html
│ │ │ @@ -110,19 +110,19 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 58 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 70 #if __cplusplus >= 201703L
│ │ │ 71 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ @@ -160,22 +160,22 @@
│ │ │
│ │ │ 104 {
return __detail::__erase_nodes_if(__cont, __pred); }
│ │ │ 105 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -A standard container made up of (key,value) pairs, which can be retrieved based on a key,...
│ │ │ -A standard container made up of (key,value) pairs, which can be retrieved based on a key,...
│ │ │ +A standard container made up of (key,value) pairs, which can be retrieved based on a key,...
│ │ │ +A standard container made up of (key,value) pairs, which can be retrieved based on a key,...
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -109,16 +109,16 @@
│ │ │ │ 106} // namespace std
│ │ │ │ 107#endif // C++20
│ │ │ │ 108
│ │ │ │ 109#endif /* _GLIBCXX_MAP */
│ │ │ │ _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_a_n_g_e___a_c_c_e_s_s_._h
│ │ │ │ _e_r_a_s_e___i_f_._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_:_:_m_u_l_t_i_m_a_p
│ │ │ │ A standard container made up of (key,value) pairs, which can be retrieved based
│ │ │ │ on a key,...
│ │ │ │ DDeeffiinniittiioonn _s_t_l___m_u_l_t_i_m_a_p_._h_:_1_0_0
│ │ │ │ _s_t_d_:_:_m_a_p
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00131_source.html
│ │ │ @@ -113,39 +113,39 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 70 #if __cplusplus >= 201103L
│ │ │
│ │ │ -
│ │ │ +
│ │ │ 73 # include <bits/uses_allocator.h>
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 81 #if __cplusplus < 201103L || _GLIBCXX_USE_DEPRECATED
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 85 #if __cplusplus > 201703L
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │ 90 #if __cplusplus >= 201103L
│ │ │ 91 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 93 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ @@ -203,27 +203,27 @@
│ │ │
│ │ │
│ │ │ 148 # define __cpp_lib_parallel_algorithm 201603L
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ 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 {}
│ │ │ │ @@ -149,25 +149,25 @@
│ │ │ │ 146
│ │ │ │ 147// Feature test macro for parallel algorithms
│ │ │ │ 148# define __cpp_lib_parallel_algorithm 201603L
│ │ │ │ 149#endif // C++17
│ │ │ │ 150
│ │ │ │ 151#endif /* _GLIBCXX_MEMORY */
│ │ │ │ _t_y_p_e___t_r_a_i_t_s
│ │ │ │ -_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
│ │ │ │ -_s_t_l___u_n_i_n_i_t_i_a_l_i_z_e_d_._h
│ │ │ │ -_s_t_l___t_e_m_p_b_u_f_._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
│ │ │ │ -_s_t_l___a_l_g_o_b_a_s_e_._h
│ │ │ │ _s_h_a_r_e_d___p_t_r___a_t_o_m_i_c_._h
│ │ │ │ +_s_t_l___r_a_w___s_t_o_r_a_g_e___i_t_e_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
│ │ │ │ _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
│ │ │ │ -_a_l_i_g_n_._h
│ │ │ │ +_s_t_l___a_l_g_o_b_a_s_e_._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_1_3
│ │ │ │ _s_t_d_:_:_g_e_t___p_o_i_n_t_e_r___s_a_f_e_t_y
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00134_source.html
│ │ │ @@ -89,20 +89,20 @@
│ │ │ 32 #pragma GCC system_header
│ │ │
│ │ │ 34 #if __cplusplus >= 201703L
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ 41 #include <bits/uses_allocator.h>
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 46 #if ! __cpp_lib_make_obj_using_allocator
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 51 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ @@ -773,35 +773,35 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -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.
│ │ │ constexpr tuple< _Elements &&... > forward_as_tuple(_Elements &&... __args) noexcept
std::forward_as_tuple
│ │ │ -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 _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 piecewise_construct_t piecewise_construct
Tag for piecewise construction of std::pair objects.
│ │ │ +constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ integer_sequence< size_t, _Idx... > index_sequence
Alias template index_sequence.
│ │ │ make_index_sequence< sizeof...(_Types)> index_sequence_for
Alias template index_sequence_for.
│ │ │
│ │ │ Parameters for tuning a pool resource's behaviour.
│ │ │ size_t max_blocks_per_chunk
Upper limit on number of blocks in a chunk.
│ │ │ A thread-safe memory resource that manages pools of fixed-size blocks.
│ │ │ A non-thread-safe memory resource that manages pools of fixed-size blocks.
│ │ │ The standard shared mutex type.
│ │ │ -A simple scoped lock type.
│ │ │ -_T1 first
The first member.
│ │ │ -_T2 second
The second member.
│ │ │ +A simple scoped lock type.
│ │ │ +_T1 first
The first member.
│ │ │ +_T2 second
The second member.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -713,17 +713,17 @@
│ │ │ │ 708#endif // C++17
│ │ │ │ 709#endif // _GLIBCXX_MEMORY_RESOURCE
│ │ │ │ _s_h_a_r_e_d___m_u_t_e_x
│ │ │ │ _t_u_p_l_e
│ │ │ │ _u_t_i_l_i_t_y
│ │ │ │ _v_e_c_t_o_r
│ │ │ │ _c_s_t_d_d_e_f
│ │ │ │ -_u_s_e_s___a_l_l_o_c_a_t_o_r___a_r_g_s_._h
│ │ │ │ -_f_u_n_c_t_e_x_c_e_p_t_._h
│ │ │ │ _a_l_i_g_n_._h
│ │ │ │ +_f_u_n_c_t_e_x_c_e_p_t_._h
│ │ │ │ +_u_s_e_s___a_l_l_o_c_a_t_o_r___a_r_g_s_._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_2
│ │ │ │ _s_t_d_:_:_f_o_r_w_a_r_d___a_s___t_u_p_l_e
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00137_source.html
│ │ │ @@ -85,32 +85,32 @@
│ │ │
│ │ │
│ │ │ 30 #define _GLIBCXX_MUTEX 1
│ │ │
│ │ │ 32 #pragma GCC system_header
│ │ │
│ │ │ 34 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ 45 #if ! _GTHREAD_USE_MUTEX_TIMEDLOCK
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 51 #if defined _GLIBCXX_HAS_GTHREADS && ! defined _GLIBCXX_HAVE_TLS
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 55 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 57 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ @@ -967,49 +967,49 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ constexpr __enable_if_is_duration< _ToDur > duration_cast(const duration< _Rep, _Period > &__d)
duration_cast
│ │ │ -constexpr __invoke_result< _Callable, _Args... >::type __invoke(_Callable &&__fn, _Args &&... __args) noexcept(__is_nothrow_invocable< _Callable, _Args... >::value)
Invoke a callable object.
│ │ │ +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
tie
│ │ │ -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(_Lock1 &__l1, _Lock2 &__l2, _Lock3 &... __l3)
Generic try_lock.
│ │ │ 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.
│ │ │ -thread::id get_id() noexcept
this_thread::get_id
│ │ │ +thread::id get_id() noexcept
this_thread::get_id
│ │ │ chrono::duration represents a distance between two points in time
│ │ │ chrono::time_point represents a point in time as measured by a clock
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ A scoped lock type for multiple lockable objects.
│ │ │ 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.
│ │ │
│ │ │ Primary class template, tuple.
│ │ │ -
│ │ │ -Assume the calling thread has already obtained mutex ownership and manage it.
│ │ │ -A simple scoped lock type.
│ │ │ -
│ │ │ -A movable scoped lock type.
│ │ │ +
│ │ │ +Assume the calling thread has already obtained mutex ownership and manage it.
│ │ │ +A simple scoped lock type.
│ │ │ +
│ │ │ +A movable scoped lock type.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ mutex
│ │ │ ├── html2text {}
│ │ │ │ @@ -900,16 +900,16 @@
│ │ │ │ _c_o_n_d_i_t_i_o_n___v_a_r_i_a_b_l_e
│ │ │ │ _s_y_s_t_e_m___e_r_r_o_r
│ │ │ │ _t_h_r_e_a_d
│ │ │ │ _t_u_p_l_e
│ │ │ │ _t_y_p_e___t_r_a_i_t_s
│ │ │ │ _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
│ │ │ │ _c_+_+_0_x___w_a_r_n_i_n_g_._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)
│ │ │ │ duration_cast
│ │ │ │ DDeeffiinniittiioonn _c_h_r_o_n_o_:_2_6_7
│ │ │ │ _s_t_d_:_:_____i_n_v_o_k_e
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00140_source.html
│ │ │ @@ -110,30 +110,30 @@
│ │ │
│ │ │
│ │ │ 55 #ifndef _GLIBCXX_NUMERIC
│ │ │ 56 #define _GLIBCXX_NUMERIC 1
│ │ │
│ │ │ 58 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 64 #ifdef _GLIBCXX_PARALLEL
│ │ │
│ │ │
│ │ │
│ │ │ 68 #if __cplusplus >= 201402L
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 74 #if __cplusplus >= 201703L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 78 #if __cplusplus > 201703L
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -835,37 +835,37 @@
│ │ │ 746 # define __cpp_lib_parallel_algorithm 201603L
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ 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 _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.
│ │ │ constexpr common_type_t< _Mn, _Nn > lcm(_Mn __m, _Nn __n) noexcept
Least common multiple.
│ │ │ constexpr common_type_t< _Mn, _Nn > gcd(_Mn __m, _Nn __n) noexcept
Greatest common divisor.
│ │ │ Implementation details not part of the namespace std interface.
│ │ │ 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 {}
│ │ │ │ @@ -754,16 +754,16 @@
│ │ │ │ 747#endif // C++17
│ │ │ │ 748
│ │ │ │ 749#endif /* _GLIBCXX_NUMERIC */
│ │ │ │ _b_i_t
│ │ │ │ _l_i_m_i_t_s
│ │ │ │ _t_y_p_e___t_r_a_i_t_s
│ │ │ │ _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___t_y_p_e_s_._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___t_y_p_e_s_._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_5_8_5
│ │ │ │ _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-11-base/libstdc++/user/a00146_source.html
│ │ │ @@ -91,18 +91,18 @@
│ │ │
34 #if __cplusplus >= 201703L
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
45 #if __cplusplus > 201703L
│ │ │
│ │ │
│ │ │
│ │ │
49 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │
51 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ @@ -1407,36 +1407,36 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
constexpr bool is_nothrow_swappable_v
is_nothrow_swappable_v
│ │ │
constexpr bool is_swappable_v
is_swappable_v
│ │ │
typename remove_const< _Tp >::type remove_const_t
Alias template for remove_const.
│ │ │
typename enable_if< _Cond, _Tp >::type enable_if_t
Alias template for enable_if.
│ │ │
auto declval() noexcept -> decltype(__declval< _Tp >(0))
│ │ │ -
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 nullopt_t nullopt
Tag to disengage optional objects.
│ │ │
void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
│ │ │ -
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.
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ -
constexpr void _Construct(_Tp *__p, _Args &&... __args)
│ │ │ +
constexpr void _Construct(_Tp *__p, _Args &&... __args)
│ │ │
│ │ │
Class template for optional values.
│ │ │
Tag type to disengage optional objects.
│ │ │
const char * what() const noexcept override
│ │ │
Class template that provides copy/move constructors of optional.
│ │ │ -
Primary class template hash.
│ │ │ +
Primary class template hash.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1345,18 +1345,18 @@
│ │ │ │ 1340#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
│ │ │ │ _t_y_p_e___t_r_a_i_t_s
│ │ │ │ _u_t_i_l_i_t_y
│ │ │ │ -_e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_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
│ │ │ │ +_s_t_l___c_o_n_s_t_r_u_c_t_._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_:_:_i_s___n_o_t_h_r_o_w___s_w_a_p_p_a_b_l_e___v
│ │ │ │ constexpr bool is_nothrow_swappable_v
│ │ │ │ is_nothrow_swappable_v
│ │ │ │ DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_2_7_6_7
│ │ │ │ _s_t_d_:_:_i_s___s_w_a_p_p_a_b_l_e___v
│ │ │ │ constexpr bool is_swappable_v
│ │ │ │ is_swappable_v
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00149_source.html
│ │ │ @@ -90,15 +90,15 @@
│ │ │
│ │ │ 33 #ifndef _GLIBCXX_OSTREAM
│ │ │ 34 #define _GLIBCXX_OSTREAM 1
│ │ │
│ │ │ 36 #pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 41 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 43 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ @@ -927,55 +927,55 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 826 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ auto declval() noexcept -> decltype(__declval< _Tp >(0))
│ │ │ -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.
│ │ │ -ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
│ │ │ +ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
│ │ │ 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.
│ │ │ std::basic_ostream< _CharT, _Traits > & operator<<(std::basic_ostream< _CharT, _Traits > &__os, const bitset< _Nb > &__x)
Global I/O operators for bitsets.
│ │ │ -void setstate(iostate __state)
Sets additional flags in the error state.
│ │ │ -void init(basic_streambuf< _CharT, _Traits > *__sb)
All setup is performed here.
│ │ │ -char_type widen(char __c) const
Widens characters.
│ │ │ -basic_streambuf< _CharT, _Traits > * rdbuf() const
Accessing the underlying buffer.
│ │ │ -basic_ios(basic_streambuf< _CharT, _Traits > *__sb)
Constructor performs initialization.
│ │ │ +void setstate(iostate __state)
Sets additional flags in the error state.
│ │ │ +void init(basic_streambuf< _CharT, _Traits > *__sb)
All setup is performed here.
│ │ │ +char_type widen(char __c) const
Widens characters.
│ │ │ +basic_streambuf< _CharT, _Traits > * rdbuf() const
Accessing the underlying buffer.
│ │ │ +basic_ios(basic_streambuf< _CharT, _Traits > *__sb)
Constructor performs initialization.
│ │ │ The actual work of input and output (interface).
│ │ │ Template class basic_ostream.
│ │ │ -__ostream_type & write(const char_type *__s, streamsize __n)
Character string insertion.
│ │ │ -pos_type tellp()
Getting the current write position.
│ │ │ -__ostream_type & seekp(off_type, ios_base::seekdir)
Changing the current write position.
│ │ │ -__ostream_type & put(char_type __c)
Simple insertion.
│ │ │ +__ostream_type & write(const char_type *__s, streamsize __n)
Character string insertion.
│ │ │ +pos_type tellp()
Getting the current write position.
│ │ │ +__ostream_type & seekp(off_type, ios_base::seekdir)
Changing the current write position.
│ │ │ +__ostream_type & put(char_type __c)
Simple insertion.
│ │ │ basic_ostream(__streambuf_type *__sb)
Base constructor.
│ │ │ -__ostream_type & flush()
Synchronizing the stream buffer.
│ │ │ -__ostream_type & seekp(pos_type)
Changing the current write position.
│ │ │ +__ostream_type & flush()
Synchronizing the stream buffer.
│ │ │ +__ostream_type & seekp(pos_type)
Changing the current write position.
│ │ │ void _M_write(const char_type *__s, streamsize __n)
Core write functionality, without sentry.
│ │ │ virtual ~basic_ostream()
Base destructor.
│ │ │ __ostream_type & operator<<(__ostream_type &(*__pf)(__ostream_type &))
Interface for manipulators.
│ │ │ Template class basic_iostream.
│ │ │ ~sentry()
Possibly flushes the stream.
│ │ │ -sentry(basic_ostream< _CharT, _Traits > &__os)
The constructor performs preparatory work.
│ │ │ +sentry(basic_ostream< _CharT, _Traits > &__os)
The constructor performs preparatory work.
│ │ │
│ │ │ -The base of the I/O class hierarchy.
│ │ │ -static const fmtflags unitbuf
Flushes output after each output operation.
│ │ │ -static const iostate badbit
Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error fro...
│ │ │ -_Ios_Seekdir seekdir
This is an enumerated type.
│ │ │ -Primary class template ctype facet.
│ │ │ -Primary class template num_put.
│ │ │ +The base of the I/O class hierarchy.
│ │ │ +static const fmtflags unitbuf
Flushes output after each output operation.
│ │ │ +static const iostate badbit
Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error fro...
│ │ │ +_Ios_Seekdir seekdir
This is an enumerated type.
│ │ │ +Primary class template ctype facet.
│ │ │ +Primary class template num_put.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ostream
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00152_source.html
│ │ │ @@ -112,24 +112,24 @@
│ │ │
│ │ │ 56 #define _GLIBCXX_QUEUE 1
│ │ │
│ │ │ 58 #pragma GCC system_header
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ queue
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00155_source.html
│ │ │ @@ -85,48 +85,48 @@
│ │ │
│ │ │ 29 #ifndef _GLIBCXX_RANDOM
│ │ │ 30 #define _GLIBCXX_RANDOM 1
│ │ │
│ │ │ 32 #pragma GCC system_header
│ │ │
│ │ │ 34 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 46 #ifdef _GLIBCXX_USE_C99_STDINT_TR1
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00158_source.html
│ │ │ @@ -96,16 +96,16 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -3965,39 +3965,39 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ constexpr duration< __common_rep_t< _Rep2, _Rep1 >, _Period > operator*(const _Rep1 &__s, const duration< _Rep2, _Period > &__d)
│ │ │ 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 difference between two durations.
│ │ │ typename make_unsigned< _Tp >::type make_unsigned_t
Alias template for make_unsigned.
│ │ │ typename invoke_result< _Fn, _Args... >::type invoke_result_t
std::invoke_result_t
│ │ │ auto declval() noexcept -> decltype(__declval< _Tp >(0))
│ │ │ -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 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.
│ │ │ -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.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -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 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.
│ │ │ bitset< _Nb > operator|(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
│ │ │ -constexpr auto data(_Container &__cont) noexcept(noexcept(__cont.data())) -> decltype(__cont.data())
Return the data pointer of a container.
│ │ │ -constexpr _Iterator __base(_Iterator __it)
│ │ │ -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.
│ │ │ +constexpr auto data(_Container &__cont) noexcept(noexcept(__cont.data())) -> decltype(__cont.data())
Return the data pointer of a container.
│ │ │ +constexpr _Iterator __base(_Iterator __it)
│ │ │ +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.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00164_source.html
│ │ │ @@ -85,15 +85,15 @@
│ │ │
│ │ │
│ │ │
30 #define _GLIBCXX_REGEX 1
│ │ │
│ │ │
32 #pragma GCC system_header
│ │ │
│ │ │
34 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -105,24 +105,24 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
66 #if __cplusplus >= 201703L && _GLIBCXX_USE_CXX11_ABI
│ │ │
67 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │
69 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ @@ -158,24 +158,24 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
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.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -104,24 +104,24 @@
│ │ │ │ _s_s_t_r_e_a_m
│ │ │ │ _s_t_a_c_k
│ │ │ │ _s_t_d_e_x_c_e_p_t
│ │ │ │ _s_t_r_i_n_g
│ │ │ │ _u_t_i_l_i_t_y
│ │ │ │ _v_e_c_t_o_r
│ │ │ │ _c_s_t_r_i_n_g
│ │ │ │ -_s_t_d___f_u_n_c_t_i_o_n_._h
│ │ │ │ -_r_e_g_e_x___e_x_e_c_u_t_o_r_._h
│ │ │ │ +_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___c_o_m_p_i_l_e_r_._h
│ │ │ │ _r_e_g_e_x___a_u_t_o_m_a_t_o_n_._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
│ │ │ │ +_r_e_g_e_x_._h
│ │ │ │ _r_e_g_e_x___s_c_a_n_n_e_r_._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
│ │ │ │ -_c_+_+_0_x___w_a_r_n_i_n_g_._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.
│ │ │ │ _n_u_m_e_r_i_c___t_r_a_i_t_s_._h
│ │ │ │ * _r_e_g_e_x
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00167_source.html
│ │ │ @@ -86,23 +86,23 @@
│ │ │
│ │ │
30 #ifndef _SCOPED_ALLOCATOR
│ │ │
31 #define _SCOPED_ALLOCATOR 1
│ │ │
│ │ │
33 #pragma GCC system_header
│ │ │
│ │ │
35 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
42 #include <bits/uses_allocator.h>
│ │ │
43 #if __cplusplus > 201703L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
47 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │
49 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ @@ -576,26 +576,26 @@
│ │ │
517 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
constexpr auto tuple_cat(_Tpls &&... __tpls) -> typename __tuple_cat_result< _Tpls... >::__type
tuple_cat
│ │ │
auto declval() noexcept -> decltype(__declval< _Tp >(0))
│ │ │
constexpr tuple< _Elements &&... > forward_as_tuple(_Elements &&... __args) noexcept
std::forward_as_tuple
│ │ │ -
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
tie
│ │ │ -
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
│ │ │ @@ -608,18 +608,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)
│ │ │
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
│ │ │
__detected_or_t< typename is_empty< _OuterAlloc >::type, __equal, _OuterAlloc > is_always_equal
│ │ │ -
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.
│ │ │ +
Struct holding two objects of arbitrary type.
│ │ │ +
_T1 first
The first member.
│ │ │ +
_T2 second
The second member.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -522,17 +522,17 @@
│ │ │ │ 517_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 518} // namespace
│ │ │ │ 519
│ │ │ │ 520#endif // C++11
│ │ │ │ 521
│ │ │ │ 522#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
│ │ │ │ _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
│ │ │ │ tuple_cat
│ │ │ │ DDeeffiinniittiioonn _t_u_p_l_e_:_1_7_4_5
│ │ │ │ _s_t_d_:_:_d_e_c_l_v_a_l
│ │ │ │ auto declval() noexcept -> decltype(__declval< _Tp >(0))
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00170_source.html
│ │ │ @@ -85,15 +85,15 @@
│ │ │
│ │ │ 29 #ifndef _GLIBCXX_SEMAPHORE
│ │ │ 30 #define _GLIBCXX_SEMAPHORE 1
│ │ │
│ │ │ 32 #pragma GCC system_header
│ │ │
│ │ │ 34 #if __cplusplus > 201703L
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 37 #if __cpp_lib_atomic_wait || _GLIBCXX_HAVE_POSIX_SEMAPHORE
│ │ │ 38 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 40 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ 42 #define __cpp_lib_semaphore 201907L
│ │ │ @@ -146,16 +146,16 @@
│ │ │ 89 using binary_semaphore = std::counting_semaphore<1>;
│ │ │
│ │ │ 91 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -constexpr const _Tp & max(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ +
│ │ │ +constexpr const _Tp & max(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00173_source.html
│ │ │ @@ -110,19 +110,19 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 58 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 70 #if __cplusplus >= 201703L
│ │ │ 71 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ @@ -156,23 +156,23 @@
│ │ │
│ │ │ 100 {
return __detail::__erase_nodes_if(__cont, __pred); }
│ │ │ 101 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -A standard container made up of unique keys, which can be retrieved in logarithmic time.
│ │ │ -_Rep_type::size_type size_type
Iterator-related typedefs.
│ │ │ -A standard container made up of elements, which can be retrieved in logarithmic time.
│ │ │ +A standard container made up of unique keys, which can be retrieved in logarithmic time.
│ │ │ +_Rep_type::size_type size_type
Iterator-related typedefs.
│ │ │ +A standard container made up of elements, which can be retrieved in logarithmic time.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -102,19 +102,19 @@
│ │ │ │ 99 erase_if(_m_u_l_t_i_s_e_t_<___K_e_y_,_ ___C_o_m_p_a_r_e_,_ ___A_l_l_o_c_>& __cont, _Predicate __pred)
│ │ │ │ 100 { return __detail::__erase_nodes_if(__cont, __pred); }
│ │ │ │ 101_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 102} // namespace std
│ │ │ │ 103#endif // C++20
│ │ │ │ 104
│ │ │ │ 105#endif /* _GLIBCXX_SET */
│ │ │ │ -_s_t_l___t_r_e_e_._h
│ │ │ │ _s_t_l___s_e_t_._h
│ │ │ │ +_s_t_l___t_r_e_e_._h
│ │ │ │ +_e_r_a_s_e___i_f_._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
│ │ │ │ -_e_r_a_s_e___i_f_._h
│ │ │ │ _s_t_d
│ │ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ │ _s_t_d_:_:_s_e_t
│ │ │ │ A standard container made up of unique keys, which can be retrieved in
│ │ │ │ logarithmic time.
│ │ │ │ DDeeffiinniittiioonn _s_t_l___s_e_t_._h_:_9_5
│ │ │ │ _s_t_d_:_:_s_e_t_:_:_s_i_z_e___t_y_p_e
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00176_source.html
│ │ │ @@ -87,17 +87,17 @@
│ │ │ 30 #define _GLIBCXX_SHARED_MUTEX 1
│ │ │
│ │ │ 32 #pragma GCC system_header
│ │ │
│ │ │ 34 #if __cplusplus >= 201402L
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 41 #if ! (_GLIBCXX_USE_PTHREAD_RWLOCK_T && _GTHREAD_USE_MUTEX_TIMEDLOCK)
│ │ │
│ │ │
│ │ │
│ │ │ 45 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ @@ -921,38 +921,38 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ constexpr enable_if< __is_duration< _ToDur >::value, time_point< _Clock, _ToDur > >::type time_point_cast(const time_point< _Clock, _Dur > &__t)
time_point_cast
│ │ │ constexpr __enable_if_is_duration< _ToDur > duration_cast(const duration< _Rep, _Period > &__d)
duration_cast
│ │ │ -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.
│ │ │ void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
│ │ │ -constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ +constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ void swap(shared_lock< _Mutex > &__x, shared_lock< _Mutex > &__y) noexcept
Swap specialization for shared_lock.
│ │ │ void lock(_L1 &__l1, _L2 &__l2, _L3 &... __l3)
Generic lock.
│ │ │ int try_lock(_Lock1 &__l1, _Lock2 &__l2, _Lock3 &... __l3)
Generic try_lock.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ chrono::duration represents a distance between two points in time
│ │ │ chrono::time_point represents a point in time as measured by a clock
│ │ │
│ │ │
│ │ │
│ │ │ The standard shared mutex type.
│ │ │ The standard shared timed mutex type.
│ │ │
│ │ │ -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.
│ │ │ +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
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00179_source.html
│ │ │ @@ -83,15 +83,15 @@
│ │ │
│ │ │
│ │ │
│ │ │ 29 #ifndef _GLIBCXX_SRCLOC
│ │ │ 30 #define _GLIBCXX_SRCLOC 1
│ │ │
│ │ │ 32 #if __cplusplus > 201703L && __has_builtin(__builtin_source_location)
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ 37 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ 39 #define __cpp_lib_source_location 201907L
│ │ │
│ │ │ @@ -143,15 +143,15 @@
│ │ │ 86 const __impl* _M_impl =
nullptr ;
│ │ │
│ │ │
│ │ │ 89 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00182_source.html
│ │ │ @@ -94,15 +94,15 @@
│ │ │ 37 #pragma GCC system_header
│ │ │
│ │ │ 39 #if __cplusplus > 201703L
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 47 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 49 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ 51 #define __cpp_lib_span 202002L
│ │ │ @@ -512,25 +512,25 @@
│ │ │ 455 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │ integral_constant< bool, true > true_type
The type used as a compile-time boolean with true value.
│ │ │ integral_constant< bool, false > false_type
The type used as a compile-time boolean with false value.
│ │ │ _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.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -constexpr auto rend(_Container &__cont) -> decltype(__cont.rend())
Return a reverse iterator pointing one past the first element of the container.
│ │ │ -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 auto rbegin(_Container &__cont) -> decltype(__cont.rbegin())
Return a reverse iterator pointing to the last element of the container.
│ │ │ -constexpr auto data(_Container &__cont) noexcept(noexcept(__cont.data())) -> decltype(__cont.data())
Return the data pointer of a container.
│ │ │ +constexpr auto rend(_Container &__cont) -> decltype(__cont.rend())
Return a reverse iterator pointing one past the first element of the container.
│ │ │ +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 auto rbegin(_Container &__cont) -> decltype(__cont.rbegin())
Return a reverse iterator pointing to the last element of the 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-11-base/libstdc++/user/a00185_source.html
│ │ │ @@ -1340,29 +1340,29 @@
│ │ │
│ │ │ 1212 _GLIBCXX_END_NAMESPACE_CXX11
│ │ │ 1213 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ 1216 #undef _GLIBCXX_LVAL_REF_QUAL
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -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.
│ │ │ void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
│ │ │ -constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ +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().
│ │ │ @@ -1370,21 +1370,21 @@
│ │ │ 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_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 int_type underflow()
Fetches more data from the controlled sequence.
│ │ │ __string_type str() const
Copying out the string buffer.
│ │ │ -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 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.
│ │ │ 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.
│ │ │ __string_type str() const
Copying out the string buffer.
│ │ │ @@ -1406,25 +1406,25 @@
│ │ │ basic_stringstream()
Default constructor starts with an empty string buffer.
│ │ │ void str(const __string_type &__s)
Setting a new 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.
│ │ │ __detected_or_t< false_type, __pocs, _Alloc > propagate_on_container_swap
How the allocator is propagated on swap.
│ │ │ __detected_or_t< typename is_empty< _Alloc >::type, __equal, _Alloc > is_always_equal
Whether all instances of the allocator type compare equal.
│ │ │ -Managing sequences of characters and character-like objects.
│ │ │ -const _CharT * data() const noexcept
Return const pointer to contents.
│ │ │ -basic_string & assign(const basic_string &__str)
Set value to contents of another string.
│ │ │ -size_type size() const noexcept
Returns the number of characters in the string, not including any null-termination.
│ │ │ -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.
│ │ │ +const _CharT * data() const noexcept
Return const pointer to contents.
│ │ │ +basic_string & assign(const basic_string &__str)
Set value to contents of another string.
│ │ │ +size_type size() const noexcept
Returns the number of characters in the string, not including any null-termination.
│ │ │ +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.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00188_source.html
│ │ │ @@ -111,19 +111,19 @@
│ │ │
│ │ │
│ │ │ 56 #define _GLIBCXX_STACK 1
│ │ │
│ │ │ 58 #pragma GCC system_header
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ stack
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00191_source.html
│ │ │ @@ -378,22 +378,22 @@
│ │ │
│ │ │ 304 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -basic_string< char > string
A string of char.
│ │ │ +basic_string< char > string
A string of char.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ virtual const char * what() const noexcept
│ │ │ logic_error(const string &__arg) _GLIBCXX_TXN_SAFE
│ │ │ virtual const char * what() const noexcept
│ │ │ runtime_error(const string &__arg) _GLIBCXX_TXN_SAFE
│ │ │ -Managing sequences of characters and character-like objects.
│ │ │ -basic_string & operator=(const basic_string &__str)
│ │ │ +Managing sequences of characters and character-like objects.
│ │ │ +basic_string & operator=(const basic_string &__str)
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ stdexcept
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00194_source.html
│ │ │ @@ -85,15 +85,15 @@
│ │ │
│ │ │ 29 #ifndef _GLIBCXX_STOP_TOKEN
│ │ │ 30 #define _GLIBCXX_STOP_TOKEN
│ │ │
│ │ │ 32 #if __cplusplus > 201703L
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ 39 #define __cpp_lib_jthread 201911L
│ │ │
│ │ │ 41 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ @@ -704,18 +704,18 @@
│ │ │
│ │ │ 648 _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.
│ │ │ void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
│ │ │ -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.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00197_source.html
│ │ │ @@ -88,20 +88,20 @@
│ │ │
│ │ │
│ │ │ 33 #ifndef _GLIBXX_STREAMBUF
│ │ │ 34 #define _GLIBXX_STREAMBUF 1
│ │ │
│ │ │ 36 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 45 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 47 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ 49 #define _IsUnused __attribute__ ((__unused__))
│ │ │
│ │ │ @@ -962,50 +962,50 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 855 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ basic_istream< char > istream
Base class for char input streams.
│ │ │ void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
│ │ │ 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.
│ │ │ @@ -1032,23 +1032,23 @@
│ │ │ 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.
│ │ │ +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 {}
│ │ │ │ @@ -859,18 +859,18 @@
│ │ │ │ 855_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 856} // namespace
│ │ │ │ 857
│ │ │ │ 858#include <_b_i_t_s_/_s_t_r_e_a_m_b_u_f_._t_c_c>
│ │ │ │ 859
│ │ │ │ 860#endif /* _GLIBCXX_STREAMBUF */
│ │ │ │ _i_o_s_f_w_d
│ │ │ │ -_s_t_r_e_a_m_b_u_f_._t_c_c
│ │ │ │ -_l_o_c_a_l_e_f_w_d_._h
│ │ │ │ _i_o_s___b_a_s_e_._h
│ │ │ │ +_s_t_r_e_a_m_b_u_f_._t_c_c
│ │ │ │ _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_3_8
│ │ │ │ _s_t_d_:_:_s_w_a_p
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00200_source.html
│ │ │ @@ -88,33 +88,33 @@
│ │ │
│ │ │
│ │ │ 33 #ifndef _GLIBCXX_STRING
│ │ │ 34 #define _GLIBCXX_STRING 1
│ │ │
│ │ │ 36 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │ 51 #if __cplusplus > 201703L
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 58 #if __cplusplus >= 201703L && _GLIBCXX_USE_CXX11_ABI
│ │ │ 59 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 61 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ 63 template <
typename _Tp>
class polymorphic_allocator;
│ │ │ @@ -198,36 +198,36 @@
│ │ │ 141 return __osz - __cont.size();
│ │ │
│ │ │ 143 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -basic_string< char > string
A string of char.
│ │ │ -basic_string< char32_t > u32string
A string of char32_t.
│ │ │ -basic_string< char16_t > u16string
A string of char16_t.
│ │ │ -basic_string< wchar_t > wstring
A string of wchar_t.
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +basic_string< char > string
A string of char.
│ │ │ +basic_string< char32_t > u32string
A string of char32_t.
│ │ │ +basic_string< char16_t > u16string
A string of char16_t.
│ │ │ +basic_string< wchar_t > wstring
A string of wchar_t.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -Primary class template hash.
│ │ │ -Managing sequences of characters and character-like objects.
│ │ │ +Primary class template hash.
│ │ │ +Managing sequences of characters and character-like objects.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -144,28 +144,28 @@
│ │ │ │ 141 return __osz - __cont.size();
│ │ │ │ 142 }
│ │ │ │ 143_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 144} // namespace std
│ │ │ │ 145#endif // C++20
│ │ │ │ 146
│ │ │ │ 147#endif /* _GLIBCXX_STRING */
│ │ │ │ +_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
│ │ │ │ +_c_h_a_r___t_r_a_i_t_s_._h
│ │ │ │ _s_t_r_i_n_g_f_w_d_._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___t_y_p_e_s_._h
│ │ │ │ +_b_a_s_i_c___s_t_r_i_n_g_._t_c_c
│ │ │ │ +_a_l_l_o_c_a_t_o_r_._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
│ │ │ │ -_s_t_l___a_l_g_o_b_a_s_e_._h
│ │ │ │ +_c_p_p___t_y_p_e___t_r_a_i_t_s_._h
│ │ │ │ _s_t_l___a_l_g_o_._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
│ │ │ │ -_o_s_t_r_e_a_m___i_n_s_e_r_t_._h
│ │ │ │ _l_o_c_a_l_e_f_w_d_._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
│ │ │ │ -_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
│ │ │ │ -_a_l_l_o_c_a_t_o_r_._h
│ │ │ │ _c_+_+_c_o_n_f_i_g_._h
│ │ │ │ _s_t_d_:_:_s_t_r_i_n_g
│ │ │ │ basic_string< char > string
│ │ │ │ A string of char.
│ │ │ │ DDeeffiinniittiioonn _s_t_r_i_n_g_f_w_d_._h_:_7_9
│ │ │ │ _s_t_d_:_:_u_3_2_s_t_r_i_n_g
│ │ │ │ basic_string< char32_t > u32string
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00203_source.html
│ │ │ @@ -91,22 +91,22 @@
│ │ │
34 #define _GLIBCXX_STRING_VIEW 1
│ │ │
│ │ │
36 #pragma GCC system_header
│ │ │
│ │ │
38 #if __cplusplus >= 201703L
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
47 #if __cplusplus >= 202002L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
51 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │
53 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
55 # define __cpp_lib_string_view 201803L
│ │ │ @@ -873,28 +873,28 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
integral_constant< bool, 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.
│ │ │
A non-owning reference to a string.
│ │ │ -
Primary class template hash.
│ │ │ +
Primary class template hash.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -819,19 +819,19 @@
│ │ │ │ 814
│ │ │ │ 815#include <_b_i_t_s_/_s_t_r_i_n_g___v_i_e_w_._t_c_c>
│ │ │ │ 816
│ │ │ │ 817#endif // __cplusplus <= 201402L
│ │ │ │ 818
│ │ │ │ 819#endif // _GLIBCXX_EXPERIMENTAL_STRING_VIEW
│ │ │ │ _i_o_s_f_w_d
│ │ │ │ -_r_a_n_g_e_s___b_a_s_e_._h
│ │ │ │ -_r_a_n_g_e___a_c_c_e_s_s_._h
│ │ │ │ _o_s_t_r_e_a_m___i_n_s_e_r_t_._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
│ │ │ │ +_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
│ │ │ │ +_r_a_n_g_e___a_c_c_e_s_s_._h
│ │ │ │ _s_t_d_:_:_f_a_l_s_e___t_y_p_e
│ │ │ │ integral_constant< bool, 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_:_8_6
│ │ │ │ _s_t_d_:_:_m_i_n
│ │ │ │ constexpr const _Tp & min(const _Tp &, const _Tp &)
│ │ │ │ This does what you think it does.
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00206_source.html
│ │ │ @@ -84,28 +84,28 @@
│ │ │
│ │ │
│ │ │ 29 #ifndef _GLIBCXX_SYNCSTREAM
│ │ │ 30 #define _GLIBCXX_SYNCSTREAM 1
│ │ │
│ │ │ 32 #if __cplusplus > 201703L
│ │ │
│ │ │ -
│ │ │ +
│ │ │ 35 #if _GLIBCXX_USE_CXX11_ABI
│ │ │
│ │ │ 37 #define __cpp_lib_syncbuf 201803L
│ │ │
│ │ │ 39 #pragma GCC system_header
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 49 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 51 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ 53 template <
typename _CharT,
typename _Traits,
typename _Alloc>
│ │ │ 54 class basic_syncbuf :
public __syncbuf_base<_CharT, _Traits>
│ │ │ @@ -369,25 +369,25 @@
│ │ │ 312 using wosyncstream = basic_osyncstream<wchar_t>;
│ │ │ 313 _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.
│ │ │ void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
│ │ │ -constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ +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.
│ │ │ +ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
│ │ │ Template class basic_ostream.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00209_source.html
│ │ │ @@ -85,19 +85,19 @@
│ │ │
│ │ │
29 #ifndef _GLIBCXX_SYSTEM_ERROR
│ │ │
30 #define _GLIBCXX_SYSTEM_ERROR 1
│ │ │
│ │ │
32 #pragma GCC system_header
│ │ │
│ │ │
34 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
42 #if __cplusplus > 201703L
│ │ │
│ │ │
│ │ │
│ │ │
46 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ @@ -548,15 +548,15 @@
│ │ │
480 code()
const noexcept {
return _M_code; }
│ │ │
│ │ │
│ │ │
│ │ │ 483 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 488 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 490 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ 492 #ifndef _GLIBCXX_COMPATIBILITY_CXX0X
│ │ │
│ │ │ @@ -601,38 +601,38 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ const error_category & system_category() noexcept
Error category for other error codes defined by the OS.
│ │ │ bool operator<(const error_condition &__lhs, const error_condition &__rhs) noexcept
Define an ordering for error_condition objects.
│ │ │ error_condition make_error_condition(errc __e) noexcept
Create an error_condition representing a standard errc condition.
│ │ │ const error_category & generic_category() noexcept
Error category for errno error codes.
│ │ │ integral_constant< bool, true > true_type
The type used as a compile-time boolean with true value.
│ │ │ integral_constant< bool, 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.
│ │ │ One of two subclasses of exception.
│ │ │ runtime_error(const string &__arg) _GLIBCXX_TXN_SAFE
│ │ │ -Primary class template hash.
│ │ │ +Primary class template hash.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ An exception type that includes an error_code value.
│ │ │
│ │ │ Define a member typedef type only if a boolean constant is true.
│ │ │ -One of the comparison functors.
│ │ │ +One of the comparison functors.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ system_error
│ │ │ ├── html2text {}
│ │ │ │ @@ -533,16 +533,16 @@
│ │ │ │ 530
│ │ │ │ 531#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
│ │ │ │ _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
│ │ │ │ _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_:_:___V_2_:_:_s_y_s_t_e_m___c_a_t_e_g_o_r_y
│ │ │ │ const error_category & system_category() noexcept
│ │ │ │ Error category for other error codes defined by the OS.
│ │ │ │ _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
│ │ │ │ Define an ordering for error_condition objects.
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00212_source.html
│ │ │ @@ -85,24 +85,24 @@
│ │ │
│ │ │ 29 #ifndef _GLIBCXX_THREAD
│ │ │ 30 #define _GLIBCXX_THREAD 1
│ │ │
│ │ │ 32 #pragma GCC system_header
│ │ │
│ │ │ 34 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 38 #if __cplusplus > 201703L
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 46 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 48 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ @@ -292,25 +292,25 @@
│ │ │
│ │ │ 236 _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.
│ │ │ void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
│ │ │ -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.
│ │ │ 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
this_thread::get_id
│ │ │ +thread::id get_id() noexcept
this_thread::get_id
│ │ │ Template class basic_ostream.
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ typename remove_reference< _Tp >::type remove_reference_t
Alias template for remove_reference.
│ │ │ integral_constant< bool, true > true_type
The type used as a compile-time boolean with true value.
│ │ │ integral_constant< bool, false > false_type
The type used as a compile-time boolean with false value.
│ │ │ constexpr auto tuple_cat(_Tpls &&... __tpls) -> typename __tuple_cat_result< _Tpls... >::__type
tuple_cat
│ │ │ constexpr tuple< _Elements &&... > forward_as_tuple(_Elements &&... __args) noexcept
std::forward_as_tuple
│ │ │ -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
tie
│ │ │ void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
│ │ │ -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.
│ │ │
│ │ │
│ │ │ Primary class template, tuple.
│ │ │ @@ -2035,18 +2035,18 @@
│ │ │
│ │ │
│ │ │ is_nothrow_default_constructible
│ │ │
│ │ │
│ │ │
│ │ │ Define a member typedef type only if a boolean constant is true.
│ │ │ -Declare uses_allocator so it can be specialized in <queue> etc.
│ │ │ -Tag type for piecewise construction of std::pair objects.
│ │ │ -Struct holding two objects of arbitrary type.
│ │ │ -
│ │ │ +Declare uses_allocator so it can be specialized in <queue> etc.
│ │ │ +Tag type for piecewise construction of std::pair objects.
│ │ │ +Struct holding two objects of arbitrary type.
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ tuple
│ │ │ ├── html2text {}
│ │ │ │ @@ -1919,16 +1919,16 @@
│ │ │ │ 1906
│ │ │ │ 1907#endif // C++11
│ │ │ │ 1908
│ │ │ │ 1909#endif // _GLIBCXX_TUPLE
│ │ │ │ _c_o_m_p_a_r_e
│ │ │ │ _a_r_r_a_y
│ │ │ │ _u_t_i_l_i_t_y
│ │ │ │ -_i_n_v_o_k_e_._h
│ │ │ │ _c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ +_i_n_v_o_k_e_._h
│ │ │ │ _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
│ │ │ │ Alias template for remove_reference.
│ │ │ │ DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_1_6_3_7
│ │ │ │ _s_t_d_:_:_t_r_u_e___t_y_p_e
│ │ │ │ integral_constant< bool, true > true_type
│ │ │ │ The type used as a compile-time boolean with true value.
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00218_source.html
│ │ │ @@ -85,15 +85,15 @@
│ │ │
│ │ │ 29 #ifndef _GLIBCXX_TYPEINDEX
│ │ │ 30 #define _GLIBCXX_TYPEINDEX 1
│ │ │
│ │ │ 32 #pragma GCC system_header
│ │ │
│ │ │ 34 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │ 39 #if __cplusplus > 201703L
│ │ │
│ │ │
│ │ │
│ │ │ @@ -186,18 +186,18 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │ -Primary class template hash.
│ │ │ +Primary class template hash.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00221_source.html
│ │ │ @@ -85,18 +85,18 @@
│ │ │
│ │ │ 29 #ifndef _GLIBCXX_TYPE_TRAITS
│ │ │ 30 #define _GLIBCXX_TYPE_TRAITS 1
│ │ │
│ │ │ 32 #pragma GCC system_header
│ │ │
│ │ │ 34 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 40 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 42 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │ 44 template <
typename ... _Elements>
│ │ │
│ │ │ @@ -3850,16 +3850,16 @@
│ │ │
│ │ │ 3598 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ constexpr bool is_nothrow_swappable_v
is_nothrow_swappable_v
│ │ │ void void_t
A metafunction that always yields void, used for detecting valid types.
│ │ │ constexpr bool is_swappable_v
is_swappable_v
│ │ │ typename remove_volatile< _Tp >::type remove_volatile_t
Alias template for remove_volatile.
│ │ │ typename result_of< _Tp >::type result_of_t
Alias template for result_of.
│ │ │ constexpr bool is_swappable_with_v
is_swappable_with_v
│ │ │ typename remove_extent< _Tp >::type remove_extent_t
Alias template for remove_extent.
│ │ │ @@ -3887,15 +3887,15 @@
│ │ │ typename invoke_result< _Fn, _Args... >::type invoke_result_t
std::invoke_result_t
│ │ │ integral_constant< bool, false > false_type
The type used as a compile-time boolean with false value.
│ │ │ constexpr bool is_nothrow_swappable_with_v
is_nothrow_swappable_with_v
│ │ │ auto declval() noexcept -> decltype(__declval< _Tp >(0))
│ │ │ void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ Primary class template, tuple.
│ │ │ -Primary class template for reference_wrapper.
│ │ │ +Primary class template for reference_wrapper.
│ │ │
│ │ │ Define a member typedef type to one of two argument types.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00224_source.html
│ │ │ @@ -85,29 +85,29 @@
│ │ │
│ │ │ 29 #ifndef _GLIBCXX_UNORDERED_MAP
│ │ │ 30 #define _GLIBCXX_UNORDERED_MAP 1
│ │ │
│ │ │ 32 #pragma GCC system_header
│ │ │
│ │ │ 34 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 55 #if __cplusplus >= 201703L
│ │ │ 56 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ @@ -154,27 +154,27 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -A standard container composed of equivalent keys (possibly containing multiple of each key value) tha...
│ │ │ -A standard container composed of unique keys (containing at most one of each key value) that associat...
│ │ │ -_Hashtable::size_type size_type
Iterator-related typedefs.
│ │ │ +A standard container composed of equivalent keys (possibly containing multiple of each key value) tha...
│ │ │ +A standard container composed of unique keys (containing at most one of each key value) that associat...
│ │ │ +_Hashtable::size_type size_type
Iterator-related typedefs.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -101,21 +101,21 @@
│ │ │ │ 98
│ │ │ │ 99#endif // C++11
│ │ │ │ 100
│ │ │ │ 101#endif // _GLIBCXX_UNORDERED_MAP
│ │ │ │ _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_n_o_r_d_e_r_e_d___m_a_p_._h
│ │ │ │ +_f_u_n_c_t_i_o_n_a_l___h_a_s_h_._h
│ │ │ │ _s_t_l___p_a_i_r_._h
│ │ │ │ _s_t_l___f_u_n_c_t_i_o_n_._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
│ │ │ │ -_e_r_a_s_e___i_f_._h
│ │ │ │ _c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ _a_l_l_o_c_a_t_o_r_._h
│ │ │ │ +_e_r_a_s_e___i_f_._h
│ │ │ │ +_r_a_n_g_e___a_c_c_e_s_s_._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_:_:_u_n_o_r_d_e_r_e_d___m_u_l_t_i_m_a_p
│ │ │ │ A standard container composed of equivalent keys (possibly containing multiple
│ │ │ │ of each key value) tha...
│ │ │ │ DDeeffiinniittiioonn _u_n_o_r_d_e_r_e_d___m_a_p_._h_:_1_2_4_6
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00227_source.html
│ │ │ @@ -85,29 +85,29 @@
│ │ │
│ │ │ 29 #ifndef _GLIBCXX_UNORDERED_SET
│ │ │ 30 #define _GLIBCXX_UNORDERED_SET 1
│ │ │
│ │ │ 32 #pragma GCC system_header
│ │ │
│ │ │ 34 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 55 #if __cplusplus >= 201703L
│ │ │ 56 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ @@ -153,28 +153,28 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -A standard container composed of equivalent keys (possibly containing multiple of each key value) in ...
│ │ │ -_Hashtable::size_type size_type
Iterator-related typedefs.
│ │ │ -A standard container composed of unique keys (containing at most one of each key value) in which the ...
│ │ │ -_Hashtable::size_type size_type
Iterator-related typedefs.
│ │ │ +A standard container composed of equivalent keys (possibly containing multiple of each key value) in ...
│ │ │ +_Hashtable::size_type size_type
Iterator-related typedefs.
│ │ │ +A standard container composed of unique keys (containing at most one of each key value) in which the ...
│ │ │ +_Hashtable::size_type size_type
Iterator-related typedefs.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -99,22 +99,22 @@
│ │ │ │ 96#endif // C++20
│ │ │ │ 97
│ │ │ │ 98#endif // C++11
│ │ │ │ 99
│ │ │ │ 100#endif // _GLIBCXX_UNORDERED_SET
│ │ │ │ _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_n_o_r_d_e_r_e_d___s_e_t_._h
│ │ │ │ +_f_u_n_c_t_i_o_n_a_l___h_a_s_h_._h
│ │ │ │ _s_t_l___p_a_i_r_._h
│ │ │ │ _s_t_l___f_u_n_c_t_i_o_n_._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
│ │ │ │ -_e_r_a_s_e___i_f_._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
│ │ │ │ _a_l_l_o_c_a_t_o_r_._h
│ │ │ │ +_e_r_a_s_e___i_f_._h
│ │ │ │ +_r_a_n_g_e___a_c_c_e_s_s_._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_:_:_u_n_o_r_d_e_r_e_d___m_u_l_t_i_s_e_t
│ │ │ │ A standard container composed of equivalent keys (possibly containing multiple
│ │ │ │ of each key value) in ...
│ │ │ │ DDeeffiinniittiioonn _u_n_o_r_d_e_r_e_d___s_e_t_._h_:_9_6_4
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00230_source.html
│ │ │ @@ -118,22 +118,22 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 72 #if __cplusplus >= 201103L
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 78 #if __cplusplus > 201703L
│ │ │
│ │ │
│ │ │
│ │ │ 82 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ @@ -546,38 +546,38 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ typename add_const< _Tp >::type add_const_t
Alias template for add_const.
│ │ │ integral_constant< bool, __v > bool_constant
Alias template for compile-time boolean constant types.
│ │ │ typename underlying_type< _Tp >::type underlying_type_t
Alias template for underlying_type.
│ │ │ integral_constant< bool, true > true_type
The type used as a compile-time boolean with true value.
│ │ │ typename make_unsigned< _Tp >::type make_unsigned_t
Alias template for make_unsigned.
│ │ │ -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.
│ │ │ make_integer_sequence< size_t, _Num > make_index_sequence
Alias template make_index_sequence.
│ │ │ constexpr _Tp exchange(_Tp &__obj, _Up &&__new_val)
Assign __new_val to __obj and return its previous value.
│ │ │ integer_sequence< size_t, _Idx... > index_sequence
Alias template index_sequence.
│ │ │ integer_sequence< _Tp, __integer_pack(_Tp(_Num))... > make_integer_sequence
Alias template make_integer_sequence.
│ │ │ make_index_sequence< sizeof...(_Types)> index_sequence_for
Alias template index_sequence_for.
│ │ │ __numeric_traits_integer< _Tp > __int_traits
Convenience alias for __numeric_traits<integer-type>.
│ │ │
│ │ │
│ │ │
│ │ │ Define a member typedef type only if a boolean constant is true.
│ │ │ Class template integer_sequence.
│ │ │ -Struct holding two objects of arbitrary type.
│ │ │ +Struct holding two objects of arbitrary type.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -480,17 +480,17 @@
│ │ │ │ 477} // namespace
│ │ │ │ 478
│ │ │ │ 479#endif
│ │ │ │ 480
│ │ │ │ 481#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
│ │ │ │ -_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
│ │ │ │ _c_+_+_c_o_n_f_i_g_._h
│ │ │ │ _s_t_d_:_:_a_d_d___c_o_n_s_t___t
│ │ │ │ typename add_const< _Tp >::type add_const_t
│ │ │ │ Alias template for add_const.
│ │ │ │ DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_1_5_8_0
│ │ │ │ _s_t_d_:_:_b_o_o_l___c_o_n_s_t_a_n_t
│ │ │ │ integral_constant< bool, __v > bool_constant
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00233_source.html
│ │ │ @@ -86,18 +86,18 @@
│ │ │
│ │ │
│ │ │ 31 #ifndef _GLIBCXX_VALARRAY
│ │ │ 32 #define _GLIBCXX_VALARRAY 1
│ │ │
│ │ │ 34 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │ 40 #if __cplusplus >= 201103L
│ │ │
│ │ │
│ │ │
│ │ │ 44 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 46 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ @@ -150,16 +150,16 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 97 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 103 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 105 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ @@ -667,20 +667,20 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 600 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 610 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 612 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │ @@ -1427,26 +1427,26 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
│ │ │ -constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ +constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ _Tp & operator[](size_t __i)
│ │ │ 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.
│ │ │ _Expr< _ValFunClos< _ValArray, _Tp >, _Tp > apply(_Tp func(_Tp)) const
Apply a function to the array.
│ │ │ @@ -1454,15 +1454,15 @@
│ │ │ void resize(size_t __size, _Tp __c=_Tp())
Resize array.
│ │ │ _Tp sum() const
Return the sum of all elements in the 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.
│ │ │ _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.
│ │ │ @@ -1483,18 +1483,18 @@
│ │ │ 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.
│ │ │ +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.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1270,22 +1270,22 @@
│ │ │ │ 1266_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 1267} // namespace
│ │ │ │ 1268
│ │ │ │ 1269#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
│ │ │ │ +_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
│ │ │ │ _c_+_+_c_o_n_f_i_g_._h
│ │ │ │ _d_e_b_u_g_._h
│ │ │ │ _s_t_d_:_:_s_w_a_p
│ │ │ │ void swap(any &__x, any &__y) noexcept
│ │ │ │ Exchange the states of two any objects.
│ │ │ │ DDeeffiinniittiioonn _a_n_y_:_4_2_8
│ │ │ │ _s_t_d_:_:_____a_d_d_r_e_s_s_o_f
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00236_source.html
│ │ │ @@ -88,24 +88,24 @@
│ │ │
│ │ │ 32 #pragma GCC system_header
│ │ │
│ │ │ 34 #if __cplusplus >= 201703L
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ 48 #if __cplusplus > 201703L
│ │ │
│ │ │
│ │ │
│ │ │ 52 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │
│ │ │ 54 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ @@ -1907,24 +1907,24 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ void void_t
A metafunction that always yields void, used for detecting valid types.
│ │ │ constexpr bool is_swappable_v
is_swappable_v
│ │ │ typename add_const< _Tp >::type add_const_t
Alias template for add_const.
│ │ │ typename conditional< _Cond, _Iftrue, _Iffalse >::type conditional_t
Alias template for conditional.
│ │ │ integral_constant< bool, __v > bool_constant
Alias template for compile-time boolean constant types.
│ │ │ typename make_signed< _Tp >::type make_signed_t
Alias template for make_signed.
│ │ │ typename remove_reference< _Tp >::type remove_reference_t
Alias template for remove_reference.
│ │ │ @@ -1932,31 +1932,31 @@
│ │ │ integral_constant< bool, true > true_type
The type used as a compile-time boolean with true value.
│ │ │ typename enable_if< _Cond, _Tp >::type enable_if_t
Alias template for enable_if.
│ │ │ typename add_volatile< _Tp >::type add_volatile_t
Alias template for add_volatile.
│ │ │ typename add_cv< _Tp >::type add_cv_t
Alias template for add_cv.
│ │ │ typename invoke_result< _Fn, _Args... >::type invoke_result_t
std::invoke_result_t
│ │ │ integral_constant< bool, 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
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.
│ │ │ void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
│ │ │ -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.
│ │ │ 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.
│ │ │ virtual const char * what() const noexcept
│ │ │ -One of the comparison functors.
│ │ │ -One of the comparison functors.
│ │ │ -One of the comparison functors.
│ │ │ -One of the comparison functors.
│ │ │ +One of the comparison functors.
│ │ │ +One of the comparison functors.
│ │ │ +One of the comparison functors.
│ │ │ +One of the comparison functors.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ variant
│ │ │ ├── html2text {}
│ │ │ │ @@ -1856,22 +1856,22 @@
│ │ │ │ 1850
│ │ │ │ 1851#endif // C++17
│ │ │ │ 1852
│ │ │ │ 1853#endif // _GLIBCXX_VARIANT
│ │ │ │ _c_o_m_p_a_r_e
│ │ │ │ _t_y_p_e___t_r_a_i_t_s
│ │ │ │ _u_t_i_l_i_t_y
│ │ │ │ -_s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___t_y_p_e_s_._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
│ │ │ │ -_p_a_r_s_e___n_u_m_b_e_r_s_._h
│ │ │ │ _m_o_v_e_._h
│ │ │ │ -_i_n_v_o_k_e_._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
│ │ │ │ +_s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___t_y_p_e_s_._h
│ │ │ │ _f_u_n_c_t_e_x_c_e_p_t_._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
│ │ │ │ _e_n_a_b_l_e___s_p_e_c_i_a_l___m_e_m_b_e_r_s_._h
│ │ │ │ _a_l_i_g_n_e_d___b_u_f_f_e_r_._h
│ │ │ │ _s_t_d_:_:_v_o_i_d___t
│ │ │ │ void void_t
│ │ │ │ A metafunction that always yields void, used for detecting valid types.
│ │ │ │ DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_2_5_9_9
│ │ │ │ _s_t_d_:_:_i_s___s_w_a_p_p_a_b_l_e___v
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00239_source.html
│ │ │ @@ -110,27 +110,27 @@
│ │ │
│ │ │
│ │ │ 55 #ifndef _GLIBCXX_VECTOR
│ │ │ 56 #define _GLIBCXX_VECTOR 1
│ │ │
│ │ │ 58 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ +
│ │ │ 61 #if __cplusplus > 201703L
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ 71 #ifndef _GLIBCXX_EXPORT_TEMPLATE
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 79 #if __cplusplus >= 201703L
│ │ │ @@ -180,25 +180,25 @@
│ │ │ 123 return __osz - __cont.size();
│ │ │
│ │ │ 125 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ -A standard container which offers fixed time access to individual elements in any order.
│ │ │ +A standard container which offers fixed time access to individual elements in any order.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -128,21 +128,21 @@
│ │ │ │ 125_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ 126} // namespace std
│ │ │ │ 127#endif // C++20
│ │ │ │ 128
│ │ │ │ 129#endif /* _GLIBCXX_VECTOR */
│ │ │ │ _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
│ │ │ │ _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
│ │ │ │ -_s_t_l___b_v_e_c_t_o_r_._h
│ │ │ │ -_s_t_l___a_l_g_o_b_a_s_e_._h
│ │ │ │ +_a_l_l_o_c_a_t_o_r_._h
│ │ │ │ _s_t_l___a_l_g_o_._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.
│ │ │ │ _s_t_d_:_:_v_e_c_t_o_r
│ │ │ │ A standard container which offers fixed time access to individual elements in
│ │ │ │ any order.
│ │ │ │ DDeeffiinniittiioonn _s_t_l___v_e_c_t_o_r_._h_:_3_9_0
│ │ │ │ _v_e_c_t_o_r
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00242_source.html
│ │ │ @@ -93,17 +93,17 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 41 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ cassert
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00245_source.html
│ │ │ @@ -85,24 +85,24 @@
│ │ │
│ │ │ 29 #pragma GCC system_header
│ │ │
│ │ │ 31 #ifndef _GLIBCXX_CCOMPLEX
│ │ │ 32 #define _GLIBCXX_CCOMPLEX 1
│ │ │
│ │ │ 34 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ccomplex
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00248_source.html
│ │ │ @@ -91,15 +91,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 39 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 44 #ifndef _GLIBCXX_CCTYPE
│ │ │ 45 #define _GLIBCXX_CCTYPE 1
│ │ │
│ │ │
│ │ │
│ │ │ @@ -145,30 +145,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-11-base/libstdc++/user/a00251_source.html
│ │ │ @@ -91,27 +91,27 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 39 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 44 #ifndef _GLIBCXX_CERRNO
│ │ │ 45 #define _GLIBCXX_CERRNO 1
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00257_source.html
│ │ │ @@ -91,15 +91,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 39 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 44 #ifndef _GLIBCXX_CFLOAT
│ │ │ 45 #define _GLIBCXX_CFLOAT 1
│ │ │
│ │ │ 47 #if __cplusplus >= 201103L
│ │ │
│ │ │ @@ -107,15 +107,15 @@
│ │ │
│ │ │ 51 # ifndef FLT_EVAL_METHOD
│ │ │ 52 # define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00263_source.html
│ │ │ @@ -87,17 +87,17 @@
│ │ │
│ │ │
│ │ │ 32 #ifndef _GLIBCXX_CISO646
│ │ │ 33 #define _GLIBCXX_CISO646
│ │ │
│ │ │ 35 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ciso646
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00266_source.html
│ │ │ @@ -91,15 +91,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 39 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 44 #ifndef _GLIBCXX_CLIMITS
│ │ │ 45 #define _GLIBCXX_CLIMITS 1
│ │ │
│ │ │
│ │ │ 48 #define LLONG_MIN (-__LONG_LONG_MAX__ - 1)
│ │ │ @@ -110,15 +110,15 @@
│ │ │
│ │ │
│ │ │
│ │ │ 56 #define ULLONG_MAX (__LONG_LONG_MAX__ * 2ULL + 1)
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00272_source.html
│ │ │ @@ -91,21 +91,21 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 39 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ 44 #define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
│ │ │
│ │ │ 46 #undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 50 #define _GLIBCXX_CMATH 1
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -1985,25 +1985,25 @@
│ │ │
│ │ │
│ │ │
│ │ │ 1931 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │ 1934 #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 {}
│ │ │ │ @@ -1937,16 +1937,16 @@
│ │ │ │ 1934#if _GLIBCXX_USE_STD_SPEC_FUNCS
│ │ │ │ 1935# include <_b_i_t_s_/_s_p_e_c_f_u_n_._h>
│ │ │ │ 1936#endif
│ │ │ │ 1937
│ │ │ │ 1938} // extern "C++"
│ │ │ │ 1939
│ │ │ │ 1940#endif
│ │ │ │ -_s_t_d___a_b_s_._h
│ │ │ │ _s_p_e_c_f_u_n_._h
│ │ │ │ +_s_t_d___a_b_s_._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_:_8_2_9
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00275_source.html
│ │ │ @@ -91,15 +91,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 39 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 44 #ifndef _GLIBCXX_CSETJMP
│ │ │ 45 #define _GLIBCXX_CSETJMP 1
│ │ │
│ │ │
│ │ │
│ │ │ @@ -112,15 +112,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00281_source.html
│ │ │ @@ -85,26 +85,26 @@
│ │ │
│ │ │ 29 #pragma GCC system_header
│ │ │
│ │ │ 31 #ifndef _GLIBCXX_CSTDALIGN
│ │ │ 32 #define _GLIBCXX_CSTDALIGN 1
│ │ │
│ │ │ 34 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │ 38 # if _GLIBCXX_HAVE_STDALIGN_H
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00287_source.html
│ │ │ @@ -85,26 +85,26 @@
│ │ │
│ │ │ 29 #pragma GCC system_header
│ │ │
│ │ │ 31 #ifndef _GLIBCXX_CSTDBOOL
│ │ │ 32 #define _GLIBCXX_CSTDBOOL 1
│ │ │
│ │ │ 34 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │ 38 # if _GLIBCXX_HAVE_STDBOOL_H
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ cstdbool
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00290_source.html
│ │ │ @@ -99,15 +99,15 @@
│ │ │ 42 #pragma GCC system_header
│ │ │
│ │ │
│ │ │ 45 #undef __need_ptrdiff_t
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 54 #if __cplusplus >= 201103L
│ │ │
│ │ │
│ │ │ @@ -244,15 +244,15 @@
│ │ │
│ │ │ 188 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ bitset< _Nb > operator&(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
│ │ │ 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.
│ │ │
│ │ │ bitset< _Nb > operator^(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00293_source.html
│ │ │ @@ -85,18 +85,18 @@
│ │ │
│ │ │ 29 #ifndef _GLIBCXX_CSTDINT
│ │ │ 30 #define _GLIBCXX_CSTDINT 1
│ │ │
│ │ │ 32 #pragma GCC system_header
│ │ │
│ │ │ 34 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ 40 #if _GLIBCXX_HAVE_STDINT_H
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -142,16 +142,16 @@
│ │ │ 85 using uintmax_t = __UINTMAX_TYPE__;
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00296_source.html
│ │ │ @@ -91,15 +91,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ 39 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ 44 #ifndef _GLIBCXX_CSTDIO
│ │ │ 45 #define _GLIBCXX_CSTDIO 1
│ │ │
│ │ │ 47 #if __cplusplus <= 201103L && !defined(_GLIBCXX_HAVE_GETS)
│ │ │ 48 extern "C" char * gets (
char * __s) __attribute__((__deprecated__));
│ │ │ @@ -245,15 +245,15 @@
│ │ │ 188 using ::__gnu_cxx::vsnprintf;
│ │ │ 189 using ::__gnu_cxx::vsscanf;
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ GNU extensions for public use.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00299_source.html
│ │ │ @@ -91,15 +91,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
39 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
43 #ifndef _GLIBCXX_CSTDLIB
│ │ │
44 #define _GLIBCXX_CSTDLIB 1
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -127,15 +127,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
74 #define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
│ │ │
75 #include_next <stdlib.h>
│ │ │
76 #undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
81 #if __cplusplus >= 201703L && defined(_GLIBCXX_HAVE_ALIGNED_ALLOC)
│ │ │
│ │ │
│ │ │
│ │ │ @@ -312,16 +312,16 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │
GNU extensions for public use.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00302_source.html
│ │ │ @@ -91,15 +91,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
39 #pragma GCC system_header
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
44 #ifndef _GLIBCXX_CSTRING
│ │ │
45 #define _GLIBCXX_CSTRING 1
│ │ │
│ │ │
│ │ │
│ │ │ @@ -177,15 +177,15 @@
│ │ │
│ │ │
│ │ │
122 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00305_source.html
│ │ │ @@ -85,27 +85,27 @@
│ │ │
│ │ │ 29 #pragma GCC system_header
│ │ │
│ │ │ 31 #ifndef _GLIBCXX_CTGMATH
│ │ │ 32 #define _GLIBCXX_CTGMATH 1
│ │ │
│ │ │ 34 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00314_source.html
│ │ │ @@ -95,18 +95,18 @@
│ │ │
│ │ │
39 #ifndef _GLIBCXX_CUCHAR
│ │ │
40 #define _GLIBCXX_CUCHAR 1
│ │ │
│ │ │
42 #pragma GCC system_header
│ │ │
│ │ │
44 #if __cplusplus < 201103L
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
51 #if _GLIBCXX_USE_C11_UCHAR_CXX11
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -129,16 +129,16 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00320.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: nested_exception.h File Reference
│ │ │ +libstdc++: valarray_before.h File Reference
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,51 +48,41 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
Go to the source code of this file.
│ │ │
│ │ │
│ │ │ namespace std
│ │ │ -
│ │ │
│ │ │ -
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 <valarray>.
│ │ │
│ │ │ -
Definition in file nested_exception.h .
│ │ │ +
Definition in file valarray_before.h .
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,19 +1,13 @@
│ │ │ │ libstdc++
│ │ │ │ -nested_exception.h File Reference
│ │ │ │ +valarray_before.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)
│ │ │ │ +namespace _s_t_d_:_:_____d_e_t_a_i_l
│ │ │ │ ********** 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 _v_a_l_a_r_r_a_y___b_e_f_o_r_e_._h.
│ │ │ │ * bbiittss
│ │ │ │ - * _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_._h
│ │ │ │ + * _v_a_l_a_r_r_a_y___b_e_f_o_r_e_._h
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00320_source.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: nested_exception.h Source File
│ │ │ +libstdc++: valarray_before.h Source File
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,20 +48,20 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
Go to the documentation of this file.
│ │ │ +
Go to the documentation of this file.
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -75,188 +75,771 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
30 #ifndef _GLIBCXX_NESTED_EXCEPTION_H
│ │ │ -
31 #define _GLIBCXX_NESTED_EXCEPTION_H 1
│ │ │ -
│ │ │ -
33 #pragma GCC visibility push(default)
│ │ │ +
│ │ │ +
│ │ │ +
32 #ifndef _VALARRAY_BEFORE_H
│ │ │ +
33 #define _VALARRAY_BEFORE_H 1
│ │ │
│ │ │ -
35 #if __cplusplus < 201103L
│ │ │ -
│ │ │ -
│ │ │ +
35 #pragma GCC system_header
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
52 class nested_exception
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
59 nested_exception(
const nested_exception&)
noexcept =
default ;
│ │ │ -
│ │ │ -
61 nested_exception& operator=(
const nested_exception&)
noexcept =
default ;
│ │ │ +
39 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ +
│ │ │ +
41 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
53 template <
typename _Tp1,
typename _Tp2>
class _Constant;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
63 virtual ~nested_exception()
noexcept ;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
67 rethrow_nested()
const
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
75 nested_ptr()
const noexcept
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
81 template <
typename _Except>
│ │ │ -
│ │ │ -
│ │ │ -
84 explicit _Nested_exception(
const _Except& __ex)
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
88 explicit _Nested_exception(_Except&& __ex)
│ │ │ -
89 : _Except(static_cast<_Except&&>(__ex))
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
96 template <
typename _Tp>
│ │ │ -
│ │ │ -
│ │ │ -
99 __throw_with_nested_impl(_Tp&& __t,
true_type )
│ │ │ -
│ │ │ -
101 using _Up =
typename remove_reference<_Tp>::type;
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
65 template <
typename _Tp>
│ │ │ +
66 _Tp operator()(
const _Tp& __t)
const
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
72 template <
typename _Tp>
│ │ │ +
73 _Tp operator()(
const _Tp& __t)
const
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
79 template <
typename _Tp>
│ │ │ +
80 _Tp operator()(
const _Tp& __t)
const
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
86 template <
typename _Tp>
│ │ │ +
87 _Tp operator()(
const _Tp& __t)
const
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
93 template <
typename _Tp>
│ │ │ +
94 _Tp operator()(
const _Tp& __t)
const
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
100 template <
typename _Tp>
│ │ │ +
101 _Tp operator()(
const _Tp& __t)
const
│ │ │ +
102 {
return asin (__t); }
│ │ │ +
│ │ │
│ │ │ -
105 template <
typename _Tp>
│ │ │ -
│ │ │ -
│ │ │ -
108 __throw_with_nested_impl(_Tp&& __t,
false_type )
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
115 template <
typename _Tp>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
120 using _Up =
typename decay<_Tp>::type;
│ │ │ -
121 using _CopyConstructible
│ │ │ -
│ │ │ -
123 static_assert (_CopyConstructible::value,
│ │ │ -
124 "throw_with_nested argument must be CopyConstructible" );
│ │ │ -
125 using __nest = __and_<is_class<_Up>, __bool_constant<!__is_final(_Up)>,
│ │ │ -
126 __not_<is_base_of<nested_exception, _Up>>>;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
133 template <
typename _Tp>
│ │ │ -
134 using __rethrow_if_nested_cond =
typename enable_if<
│ │ │ -
135 __and_<is_polymorphic<_Tp>,
│ │ │ -
136 __or_<__not_<is_base_of<nested_exception, _Tp>>,
│ │ │ -
137 is_convertible<_Tp*, nested_exception*>>>::value
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
107 template <
typename _Tp>
│ │ │ +
108 _Tp operator()(
const _Tp& __t)
const
│ │ │ +
109 {
return sinh (__t); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
114 template <
typename _Tp>
│ │ │ +
115 _Tp operator()(
const _Tp& __t)
const
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
121 template <
typename _Tp>
│ │ │ +
122 _Tp operator()(
const _Tp& __t)
const
│ │ │ +
123 {
return atan (__t); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
128 template <
typename _Tp>
│ │ │ +
129 _Tp operator()(
const _Tp& __t)
const
│ │ │ +
130 {
return tanh (__t); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
135 template <
typename _Tp>
│ │ │ +
136 _Tp operator()(
const _Tp& __t)
const
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
141 template <
typename _Ex>
│ │ │ -
142 inline __rethrow_if_nested_cond<_Ex>
│ │ │ -
143 __rethrow_if_nested_impl(
const _Ex* __ptr)
│ │ │ -
│ │ │ -
145 if (
auto __ne_ptr =
dynamic_cast< const nested_exception*
> (__ptr))
│ │ │ -
146 __ne_ptr->rethrow_nested();
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
151 __rethrow_if_nested_impl(
const void *)
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
157 template <
typename _Ex>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
142 template <
typename _Tp>
│ │ │ +
143 _Tp operator()(
const _Tp& __t)
const
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
149 template <
typename _Tp>
│ │ │ +
150 _Tp operator()(
const _Tp& __t)
const
│ │ │ +
151 {
return log10 (__t); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
156 template <
typename _Tp>
│ │ │ +
157 _Tp operator()(
const _Tp& __t)
const
│ │ │ +
158 {
return sqrt (__t); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
169 #pragma GCC visibility pop
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
integral_constant< bool, true > true_type
The type used as a compile-time boolean with true value.
│ │ │ -
integral_constant< bool, false > false_type
The type used as a compile-time boolean with false value.
│ │ │ -
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.
│ │ │ -
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)
If __ex is derived from nested_exception, __ex.rethrow_nested().
│ │ │ -
void throw_with_nested(_Tp &&__t)
If __t is derived from nested_exception, throws __t. Else, throws an implementation-defined object de...
│ │ │ +
│ │ │ +
│ │ │ +
167 template <
typename _Tp>
│ │ │ +
168 _Tp operator()(
const _Tp& __t)
const
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
174 template <
typename _Tp>
│ │ │ +
175 _Tp operator()(
const _Tp& __t)
const
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
181 template <
typename _Tp>
│ │ │ +
182 _Tp operator()(
const _Tp& __t)
const
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
188 template <
typename _Tp>
│ │ │ +
189 _Tp operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
190 {
return __x + __y; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
195 template <
typename _Tp>
│ │ │ +
196 _Tp operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
197 {
return __x - __y; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
202 template <
typename _Tp>
│ │ │ +
203 _Tp operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
204 {
return __x * __y; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
209 template <
typename _Tp>
│ │ │ +
210 _Tp operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
211 {
return __x / __y; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
216 template <
typename _Tp>
│ │ │ +
217 _Tp operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
218 {
return __x % __y; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
223 template <
typename _Tp>
│ │ │ +
224 _Tp operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
225 {
return __x ^ __y; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
230 template <
typename _Tp>
│ │ │ +
231 _Tp operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
232 {
return __x & __y; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
237 template <
typename _Tp>
│ │ │ +
238 _Tp operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
239 {
return __x | __y; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
244 template <
typename _Tp>
│ │ │ +
245 _Tp operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
246 {
return __x << __y; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
251 template <
typename _Tp>
│ │ │ +
252 _Tp operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
253 {
return __x >> __y; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
258 template <
typename _Tp>
│ │ │ +
259 bool operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
260 {
return __x && __y; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
265 template <
typename _Tp>
│ │ │ +
266 bool operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
267 {
return __x || __y; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
272 template <
typename _Tp>
│ │ │ +
273 bool operator()(
const _Tp& __x)
const
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
279 template <
typename _Tp>
│ │ │ +
280 bool operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
281 {
return __x == __y; }
│ │ │ +
│ │ │ +
│ │ │ +
284 struct __not_equal_to
│ │ │ +
│ │ │ +
286 template <
typename _Tp>
│ │ │ +
287 bool operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
288 {
return __x != __y; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
293 template <
typename _Tp>
│ │ │ +
294 bool operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
295 {
return __x < __y; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
300 template <
typename _Tp>
│ │ │ +
301 bool operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
302 {
return __x > __y; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
307 template <
typename _Tp>
│ │ │ +
308 bool operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
309 {
return __x <= __y; }
│ │ │ +
│ │ │ +
│ │ │ +
312 struct __greater_equal
│ │ │ +
│ │ │ +
314 template <
typename _Tp>
│ │ │ +
315 bool operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
316 {
return __x >= __y; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
322 template <
typename _Tp>
│ │ │ +
323 _Tp operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
324 {
return atan2(__x, __y); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
329 template <
typename _Tp>
│ │ │ +
330 _Tp operator()(
const _Tp& __x,
const _Tp& __y)
const
│ │ │ +
331 {
return pow (__x, __y); }
│ │ │ +
│ │ │ +
│ │ │ +
334 template <
typename _Tp,
bool _IsVal
id ValarrayValue = !__is_abstract(_Tp)>
│ │ │ +
335 struct __fun_with_valarray
│ │ │ +
│ │ │ +
337 typedef _Tp result_type;
│ │ │ +
│ │ │ +
│ │ │ +
340 template <
typename _Tp>
│ │ │ +
341 struct __fun_with_valarray<_Tp, false>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
349 template <
typename ,
typename _Tp>
│ │ │ +
350 struct __fun : __fun_with_valarray<_Tp>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
355 template <
typename _Tp>
│ │ │ +
356 struct __fun<__logical_not, _Tp>
│ │ │ +
│ │ │ +
358 typedef bool result_type;
│ │ │ +
│ │ │ +
│ │ │ +
361 template <
typename _Tp>
│ │ │ +
362 struct __fun<__logical_and, _Tp>
│ │ │ +
│ │ │ +
364 typedef bool result_type;
│ │ │ +
│ │ │ +
│ │ │ +
367 template <
typename _Tp>
│ │ │ +
368 struct __fun<__logical_or, _Tp>
│ │ │ +
│ │ │ +
370 typedef bool result_type;
│ │ │ +
│ │ │ +
│ │ │ +
373 template <
typename _Tp>
│ │ │ +
374 struct __fun<__less, _Tp>
│ │ │ +
│ │ │ +
376 typedef bool result_type;
│ │ │ +
│ │ │ +
│ │ │ +
379 template <
typename _Tp>
│ │ │ +
380 struct __fun<__greater, _Tp>
│ │ │ +
│ │ │ +
382 typedef bool result_type;
│ │ │ +
│ │ │ +
│ │ │ +
385 template <
typename _Tp>
│ │ │ +
386 struct __fun<__less_equal, _Tp>
│ │ │ +
│ │ │ +
388 typedef bool result_type;
│ │ │ +
│ │ │ +
│ │ │ +
391 template <
typename _Tp>
│ │ │ +
392 struct __fun<__greater_equal, _Tp>
│ │ │ +
│ │ │ +
394 typedef bool result_type;
│ │ │ +
│ │ │ +
│ │ │ +
397 template <
typename _Tp>
│ │ │ +
398 struct __fun<__equal_to, _Tp>
│ │ │ +
│ │ │ +
400 typedef bool result_type;
│ │ │ +
│ │ │ +
│ │ │ +
403 template <
typename _Tp>
│ │ │ +
404 struct __fun<__not_equal_to, _Tp>
│ │ │ +
│ │ │ +
406 typedef bool result_type;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
414 template <
typename _Tp>
│ │ │ +
│ │ │ +
416 {
typedef const _Tp __type; };
│ │ │ +
│ │ │ +
│ │ │ +
419 template <
typename _Tp>
│ │ │ +
420 struct _ValArrayRef< valarray<_Tp> >
│ │ │ +
421 {
typedef const valarray<_Tp>& __type; };
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
427 template <
typename _Dom,
typename _Arg>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
431 typedef typename _Dom::value_type value_type;
│ │ │ +
│ │ │ +
433 _FunBase(
const _Dom& __e, value_type __f(_Arg))
│ │ │ +
434 : _M_expr(__e), _M_func(__f) {}
│ │ │ +
│ │ │ +
436 value_type operator[](
size_t __i)
const
│ │ │ +
437 {
return _M_func (_M_expr[__i]); }
│ │ │ +
│ │ │ +
439 size_t size()
const {
return _M_expr.size ();}
│ │ │ +
│ │ │ +
│ │ │ +
442 typename _ValArrayRef<_Dom>::__type _M_expr;
│ │ │ +
443 value_type (*_M_func)(_Arg);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
447 struct _ValFunClos<_Expr,_Dom> : _FunBase<_Dom, typename _Dom::value_type>
│ │ │ +
│ │ │ +
449 typedef _FunBase<_Dom, typename _Dom::value_type> _Base;
│ │ │ +
450 typedef typename _Base::value_type value_type;
│ │ │ +
451 typedef value_type _Tp;
│ │ │ +
│ │ │ +
453 _ValFunClos(
const _Dom& __e, _Tp __f(_Tp)) : _Base(__e, __f) {}
│ │ │ +
│ │ │ +
│ │ │ +
456 template <
typename _Tp>
│ │ │ +
457 struct _ValFunClos<_ValArray,_Tp> : _FunBase<valarray<_Tp>, _Tp>
│ │ │ +
│ │ │ +
459 typedef _FunBase<valarray<_Tp>, _Tp> _Base;
│ │ │ +
460 typedef _Tp value_type;
│ │ │ +
│ │ │ +
462 _ValFunClos(
const valarray<_Tp>& __v, _Tp __f(_Tp)) : _Base(__v, __f) {}
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
466 struct _RefFunClos<_Expr, _Dom>
│ │ │ +
467 : _FunBase<_Dom, const typename _Dom::value_type&>
│ │ │ +
│ │ │ +
469 typedef _FunBase<_Dom, const typename _Dom::value_type&> _Base;
│ │ │ +
470 typedef typename _Base::value_type value_type;
│ │ │ +
471 typedef value_type _Tp;
│ │ │ +
│ │ │ +
473 _RefFunClos(
const _Dom& __e, _Tp __f(
const _Tp&))
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
477 template <
typename _Tp>
│ │ │ +
478 struct _RefFunClos<_ValArray, _Tp>
│ │ │ +
479 : _FunBase<valarray<_Tp>, const _Tp&>
│ │ │ +
│ │ │ +
481 typedef _FunBase<valarray<_Tp>,
const _Tp&> _Base;
│ │ │ +
482 typedef _Tp value_type;
│ │ │ +
│ │ │ +
484 _RefFunClos(
const valarray<_Tp>& __v, _Tp __f(
const _Tp&))
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
492 template <
class _Oper,
class _Arg>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
496 typedef typename _Arg::value_type _Vt;
│ │ │ +
497 typedef typename __fun<_Oper, _Vt>::result_type value_type;
│ │ │ +
│ │ │ +
499 _UnBase(
const _Arg& __e) : _M_expr(__e) {}
│ │ │ +
│ │ │ +
501 value_type operator[](
size_t __i)
const
│ │ │ +
502 {
return _Oper()(_M_expr[__i]); }
│ │ │ +
│ │ │ +
504 size_t size()
const {
return _M_expr.size(); }
│ │ │ +
│ │ │ +
│ │ │ +
507 typename _ValArrayRef<_Arg>::__type _M_expr;
│ │ │ +
│ │ │ +
│ │ │ +
510 template <
class _Oper,
class _Dom>
│ │ │ +
511 struct _UnClos<_Oper, _Expr, _Dom>
│ │ │ +
512 : _UnBase<_Oper, _Dom>
│ │ │ +
│ │ │ +
│ │ │ +
515 typedef _UnBase<_Oper, _Dom> _Base;
│ │ │ +
516 typedef typename _Base::value_type value_type;
│ │ │ +
│ │ │ +
518 _UnClos(
const _Arg& __e) : _Base(__e) {}
│ │ │ +
│ │ │ +
│ │ │ +
521 template <
class _Oper,
typename _Tp>
│ │ │ +
522 struct _UnClos<_Oper, _ValArray, _Tp>
│ │ │ +
523 : _UnBase<_Oper, valarray<_Tp> >
│ │ │ +
│ │ │ +
525 typedef valarray<_Tp> _Arg;
│ │ │ +
526 typedef _UnBase<_Oper, valarray<_Tp> > _Base;
│ │ │ +
527 typedef typename _Base::value_type value_type;
│ │ │ +
│ │ │ +
529 _UnClos(
const _Arg& __e) : _Base(__e) {}
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
537 template <
class _Oper,
class _FirstArg,
class _SecondArg>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
541 typedef typename _FirstArg::value_type _Vt;
│ │ │ +
542 typedef typename __fun<_Oper, _Vt>::result_type value_type;
│ │ │ +
│ │ │ +
544 _BinBase(
const _FirstArg& __e1,
const _SecondArg& __e2)
│ │ │ +
545 : _M_expr1(__e1), _M_expr2(__e2) {}
│ │ │ +
│ │ │ +
547 value_type operator[](
size_t __i)
const
│ │ │ +
548 {
return _Oper()(_M_expr1[__i], _M_expr2[__i]); }
│ │ │ +
│ │ │ +
550 size_t size()
const {
return _M_expr1.size(); }
│ │ │ +
│ │ │ +
│ │ │ +
553 typename _ValArrayRef<_FirstArg>::__type _M_expr1;
│ │ │ +
554 typename _ValArrayRef<_SecondArg>::__type _M_expr2;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
558 template <
class _Oper,
class _Clos>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
562 typedef typename _Clos::value_type _Vt;
│ │ │ +
563 typedef typename __fun<_Oper, _Vt>::result_type value_type;
│ │ │ +
│ │ │ +
565 _BinBase2(
const _Clos& __e,
const _Vt& __t)
│ │ │ +
566 : _M_expr1(__e), _M_expr2(__t) {}
│ │ │ +
│ │ │ +
568 value_type operator[](
size_t __i)
const
│ │ │ +
569 {
return _Oper()(_M_expr1[__i], _M_expr2); }
│ │ │ +
│ │ │ +
571 size_t size()
const {
return _M_expr1.size(); }
│ │ │ +
│ │ │ +
│ │ │ +
574 typename _ValArrayRef<_Clos>::__type _M_expr1;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
578 template <
class _Oper,
class _Clos>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
582 typedef typename _Clos::value_type _Vt;
│ │ │ +
583 typedef typename __fun<_Oper, _Vt>::result_type value_type;
│ │ │ +
│ │ │ +
585 _BinBase1(
const _Vt& __t,
const _Clos& __e)
│ │ │ +
586 : _M_expr1(__t), _M_expr2(__e) {}
│ │ │ +
│ │ │ +
588 value_type operator[](
size_t __i)
const
│ │ │ +
589 {
return _Oper()(_M_expr1, _M_expr2[__i]); }
│ │ │ +
│ │ │ +
591 size_t size()
const {
return _M_expr2.size(); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
595 typename _ValArrayRef<_Clos>::__type _M_expr2;
│ │ │ +
│ │ │ +
│ │ │ +
598 template <
class _Oper,
class _Dom1,
class _Dom2>
│ │ │ +
599 struct _BinClos<_Oper, _Expr, _Expr, _Dom1, _Dom2>
│ │ │ +
600 : _BinBase<_Oper, _Dom1, _Dom2>
│ │ │ +
│ │ │ +
602 typedef _BinBase<_Oper, _Dom1, _Dom2> _Base;
│ │ │ +
603 typedef typename _Base::value_type value_type;
│ │ │ +
│ │ │ +
605 _BinClos(
const _Dom1& __e1,
const _Dom2& __e2) : _Base(__e1, __e2) {}
│ │ │ +
│ │ │ +
│ │ │ +
608 template <
class _Oper,
typename _Tp>
│ │ │ +
609 struct _BinClos<_Oper, _ValArray, _ValArray, _Tp, _Tp>
│ │ │ +
610 : _BinBase<_Oper, valarray<_Tp>, valarray<_Tp> >
│ │ │ +
│ │ │ +
612 typedef _BinBase<_Oper, valarray<_Tp>, valarray<_Tp> > _Base;
│ │ │ +
613 typedef typename _Base::value_type value_type;
│ │ │ +
│ │ │ +
615 _BinClos(
const valarray<_Tp>& __v,
const valarray<_Tp>& __w)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
619 template <
class _Oper,
class _Dom>
│ │ │ +
620 struct _BinClos<_Oper, _Expr, _ValArray, _Dom, typename _Dom::value_type>
│ │ │ +
621 : _BinBase<_Oper, _Dom, valarray<typename _Dom::value_type> >
│ │ │ +
│ │ │ +
623 typedef typename _Dom::value_type _Tp;
│ │ │ +
624 typedef _BinBase<_Oper,_Dom,valarray<_Tp> > _Base;
│ │ │ +
625 typedef typename _Base::value_type value_type;
│ │ │ +
│ │ │ +
627 _BinClos(
const _Dom& __e1,
const valarray<_Tp>& __e2)
│ │ │ +
628 : _Base(__e1, __e2) {}
│ │ │ +
│ │ │ +
│ │ │ +
631 template <
class _Oper,
class _Dom>
│ │ │ +
632 struct _BinClos<_Oper, _ValArray, _Expr, typename _Dom::value_type, _Dom>
│ │ │ +
633 : _BinBase<_Oper, valarray<typename _Dom::value_type>,_Dom>
│ │ │ +
│ │ │ +
635 typedef typename _Dom::value_type _Tp;
│ │ │ +
636 typedef _BinBase<_Oper, valarray<_Tp>, _Dom> _Base;
│ │ │ +
637 typedef typename _Base::value_type value_type;
│ │ │ +
│ │ │ +
639 _BinClos(
const valarray<_Tp>& __e1,
const _Dom& __e2)
│ │ │ +
640 : _Base(__e1, __e2) {}
│ │ │ +
│ │ │ +
│ │ │ +
643 template <
class _Oper,
class _Dom>
│ │ │ +
644 struct _BinClos<_Oper, _Expr, _Constant, _Dom, typename _Dom::value_type>
│ │ │ +
645 : _BinBase2<_Oper, _Dom>
│ │ │ +
│ │ │ +
647 typedef typename _Dom::value_type _Tp;
│ │ │ +
648 typedef _BinBase2<_Oper,_Dom> _Base;
│ │ │ +
649 typedef typename _Base::value_type value_type;
│ │ │ +
│ │ │ +
651 _BinClos(
const _Dom& __e1,
const _Tp& __e2) : _Base(__e1, __e2) {}
│ │ │ +
│ │ │ +
│ │ │ +
654 template <
class _Oper,
class _Dom>
│ │ │ +
655 struct _BinClos<_Oper, _Constant, _Expr, typename _Dom::value_type, _Dom>
│ │ │ +
656 : _BinBase1<_Oper, _Dom>
│ │ │ +
│ │ │ +
658 typedef typename _Dom::value_type _Tp;
│ │ │ +
659 typedef _BinBase1<_Oper, _Dom> _Base;
│ │ │ +
660 typedef typename _Base::value_type value_type;
│ │ │ +
│ │ │ +
662 _BinClos(
const _Tp& __e1,
const _Dom& __e2) : _Base(__e1, __e2) {}
│ │ │ +
│ │ │ +
│ │ │ +
665 template <
class _Oper,
typename _Tp>
│ │ │ +
666 struct _BinClos<_Oper, _ValArray, _Constant, _Tp, _Tp>
│ │ │ +
667 : _BinBase2<_Oper, valarray<_Tp> >
│ │ │ +
│ │ │ +
669 typedef _BinBase2<_Oper,valarray<_Tp> > _Base;
│ │ │ +
670 typedef typename _Base::value_type value_type;
│ │ │ +
│ │ │ +
672 _BinClos(
const valarray<_Tp>& __v,
const _Tp& __t) : _Base(__v, __t) {}
│ │ │ +
│ │ │ +
│ │ │ +
675 template <
class _Oper,
typename _Tp>
│ │ │ +
676 struct _BinClos<_Oper, _Constant, _ValArray, _Tp, _Tp>
│ │ │ +
677 : _BinBase1<_Oper, valarray<_Tp> >
│ │ │ +
│ │ │ +
679 typedef _BinBase1<_Oper, valarray<_Tp> > _Base;
│ │ │ +
680 typedef typename _Base::value_type value_type;
│ │ │ +
│ │ │ +
682 _BinClos(
const _Tp& __t,
const valarray<_Tp>& __v) : _Base(__t, __v) {}
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
688 template <
typename _Dom>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
692 typedef typename _Dom::value_type value_type;
│ │ │ +
│ │ │ +
694 _SBase (
const _Dom& __e,
const slice& __s)
│ │ │ +
695 : _M_expr (__e), _M_slice (__s) {}
│ │ │ +
│ │ │ +
│ │ │ +
698 operator[] (
size_t __i)
const
│ │ │ +
699 {
return _M_expr[_M_slice.start () + __i * _M_slice.stride ()]; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
703 {
return _M_slice.size (); }
│ │ │ +
│ │ │ +
│ │ │ +
706 typename _ValArrayRef<_Dom>::__type _M_expr;
│ │ │ +
707 const slice& _M_slice;
│ │ │ +
│ │ │ +
│ │ │ +
710 template <
typename _Tp>
│ │ │ +
711 class _SBase<_Array<_Tp> >
│ │ │ +
│ │ │ +
│ │ │ +
714 typedef _Tp value_type;
│ │ │ +
│ │ │ +
716 _SBase (_Array<_Tp> __a,
const slice& __s)
│ │ │ +
717 : _M_array (__a._M_data+__s.start()), _M_size (__s.size()),
│ │ │ +
718 _M_stride (__s.stride()) {}
│ │ │ +
│ │ │ +
│ │ │ +
721 operator[] (
size_t __i)
const
│ │ │ +
722 {
return _M_array._M_data[__i * _M_stride]; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
729 const _Array<_Tp> _M_array;
│ │ │ +
730 const size_t _M_size;
│ │ │ +
731 const size_t _M_stride;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
735 struct _SClos<_Expr, _Dom>
│ │ │ +
│ │ │ +
│ │ │ +
738 typedef _SBase<_Dom> _Base;
│ │ │ +
739 typedef typename _Base::value_type value_type;
│ │ │ +
│ │ │ +
741 _SClos (
const _Dom& __e,
const slice& __s) : _Base (__e, __s) {}
│ │ │ +
│ │ │ +
│ │ │ +
744 template <
typename _Tp>
│ │ │ +
745 struct _SClos<_ValArray, _Tp>
│ │ │ +
746 : _SBase<_Array<_Tp> >
│ │ │ +
│ │ │ +
748 typedef _SBase<_Array<_Tp> > _Base;
│ │ │ +
749 typedef _Tp value_type;
│ │ │ +
│ │ │ +
751 _SClos (_Array<_Tp> __a,
const slice& __s) : _Base (__a, __s) {}
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
755 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
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.
│ │ │ +
complex< _Tp > tanh(const complex< _Tp > &)
Return complex hyperbolic tangent of z.
│ │ │ +
complex< _Tp > pow(const complex< _Tp > &, int)
Return x to the y'th power.
│ │ │ +
complex< _Tp > sinh(const complex< _Tp > &)
Return complex hyperbolic sine of z.
│ │ │ +
complex< _Tp > cos(const complex< _Tp > &)
Return complex cosine of z.
│ │ │ +
complex< _Tp > sqrt(const complex< _Tp > &)
Return complex square root of z.
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ -
│ │ │ -
An opaque pointer to an arbitrary exception.
│ │ │ -
Exception class with exception_ptr data member.
│ │ │ +
std::complex< _Tp > atan(const std::complex< _Tp > &)
atan(__z) [8.1.4].
│ │ │ +
std::complex< _Tp > acos(const std::complex< _Tp > &)
acos(__z) [8.1.2].
│ │ │ +
std::complex< _Tp > asin(const std::complex< _Tp > &)
asin(__z) [8.1.3].
│ │ │ +
Implementation details not part of the namespace std interface.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,13 +1,13 @@
│ │ │ │ libstdc++
│ │ │ │ -nested_exception.h
│ │ │ │ +valarray_before.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// The template and inlines for the -*- C++ -*- internal _Meta class.
│ │ │ │ 2
│ │ │ │ -3// Copyright (C) 2009-2021 Free Software Foundation, Inc.
│ │ │ │ +3// Copyright (C) 1997-2021 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,204 +21,810 @@
│ │ │ │ 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/valarray_before.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{valarray}
│ │ │ │ 28 */
│ │ │ │ 29
│ │ │ │ -30#ifndef _GLIBCXX_NESTED_EXCEPTION_H
│ │ │ │ -31#define _GLIBCXX_NESTED_EXCEPTION_H 1
│ │ │ │ -32
│ │ │ │ -33#pragma GCC visibility push(default)
│ │ │ │ +30// Written by Gabriel Dos Reis
│ │ │ │ +31
│ │ │ │ +32#ifndef _VALARRAY_BEFORE_H
│ │ │ │ +33#define _VALARRAY_BEFORE_H 1
│ │ │ │ 34
│ │ │ │ -35#if __cplusplus < 201103L
│ │ │ │ -36# include <_b_i_t_s_/_c_+_+_0_x___w_a_r_n_i_n_g_._h>
│ │ │ │ -37#else
│ │ │ │ +35#pragma GCC system_header
│ │ │ │ +36
│ │ │ │ +37#include <_b_i_t_s_/_s_l_i_c_e___a_r_r_a_y_._h>
│ │ │ │ 38
│ │ │ │ -39#include <_b_i_t_s_/_c_+_+_c_o_n_f_i_g_._h>
│ │ │ │ -40#include <_b_i_t_s_/_m_o_v_e_._h>
│ │ │ │ -41
│ │ │ │ -42extern "C++" {
│ │ │ │ -43
│ │ │ │ -44namespace _s_t_d
│ │ │ │ -45{
│ │ │ │ -46 /**
│ │ │ │ -47 * @addtogroup exceptions
│ │ │ │ -48 * @{
│ │ │ │ -49 */
│ │ │ │ -50
│ │ │ │ -51 /// Exception class with exception_ptr data member.
│ │ │ │ -_5_2 class nested_exception
│ │ │ │ -53 {
│ │ │ │ -54 _e_x_c_e_p_t_i_o_n___p_t_r _M_ptr;
│ │ │ │ -55
│ │ │ │ -56 public:
│ │ │ │ -57 nested_exception() noexcept : _M_ptr(_c_u_r_r_e_n_t___e_x_c_e_p_t_i_o_n()) { }
│ │ │ │ -58
│ │ │ │ -59 nested_exception(const nested_exception&) noexcept = default;
│ │ │ │ -60
│ │ │ │ -61 nested_exception& operator=(const nested_exception&) noexcept = default;
│ │ │ │ +39namespace _s_t_d _GLIBCXX_VISIBILITY(default)
│ │ │ │ +40{
│ │ │ │ +41_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ +42
│ │ │ │ +43 //
│ │ │ │ +44 // Implementing a loosened valarray return value is tricky.
│ │ │ │ +45 // First we need to meet 26.3.1/3: we should not add more than
│ │ │ │ +46 // two levels of template nesting. Therefore we resort to template
│ │ │ │ +47 // template to "flatten" loosened return value types.
│ │ │ │ +48 // At some point we use partial specialization to remove one level
│ │ │ │ +49 // template nesting due to _Expr<>
│ │ │ │ +50 //
│ │ │ │ +51
│ │ │ │ +52 // This class is NOT defined. It doesn't need to.
│ │ │ │ +53 template class _Constant;
│ │ │ │ +54
│ │ │ │ +55 // Implementations of unary functions applied to valarray<>s.
│ │ │ │ +56 // I use hard-coded object functions here instead of a generic
│ │ │ │ +57 // approach like pointers to function:
│ │ │ │ +58 // 1) correctness: some functions take references, others values.
│ │ │ │ +59 // we can't deduce the correct type afterwards.
│ │ │ │ +60 // 2) efficiency -- object functions can be easily inlined
│ │ │ │ +61 // 3) be Koenig-lookup-friendly
│ │ │ │ 62
│ │ │ │ -63 virtual ~nested_exception() noexcept;
│ │ │ │ -64
│ │ │ │ -65 [[noreturn]]
│ │ │ │ -66 void
│ │ │ │ -67 rethrow_nested() const
│ │ │ │ -68 {
│ │ │ │ -69 if (_M_ptr)
│ │ │ │ -70 _r_e_t_h_r_o_w___e_x_c_e_p_t_i_o_n(_M_ptr);
│ │ │ │ -71 _s_t_d_:_:_t_e_r_m_i_n_a_t_e();
│ │ │ │ -72 }
│ │ │ │ -73
│ │ │ │ -74 _e_x_c_e_p_t_i_o_n___p_t_r
│ │ │ │ -75 nested_ptr() const noexcept
│ │ │ │ -76 { return _M_ptr; }
│ │ │ │ -77 };
│ │ │ │ -78
│ │ │ │ -79 /// @cond undocumented
│ │ │ │ -80
│ │ │ │ -81 template
│ │ │ │ -82 struct _Nested_exception : public _Except, public _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n
│ │ │ │ -83 {
│ │ │ │ -84 explicit _Nested_exception(const _Except& __ex)
│ │ │ │ -85 : _Except(__ex)
│ │ │ │ -86 { }
│ │ │ │ -87
│ │ │ │ -88 explicit _Nested_exception(_Except&& __ex)
│ │ │ │ -89 : _Except(static_cast<_Except&&>(__ex))
│ │ │ │ -90 { }
│ │ │ │ -91 };
│ │ │ │ -92
│ │ │ │ -93 // [except.nested]/8
│ │ │ │ -94 // Throw an exception of unspecified type that is publicly derived from
│ │ │ │ -95 // both remove_reference_t<_Tp> and nested_exception.
│ │ │ │ -96 template
│ │ │ │ -97 [[noreturn]]
│ │ │ │ -98 inline void
│ │ │ │ -99 __throw_with_nested_impl(_Tp&& __t, _t_r_u_e___t_y_p_e)
│ │ │ │ -100 {
│ │ │ │ -101 using _Up = typename remove_reference<_Tp>::type;
│ │ │ │ -102 throw _Nested_exception<_Up>{_s_t_d_:_:_f_o_r_w_a_r_d_<___T_p_>(__t)};
│ │ │ │ -103 }
│ │ │ │ +63 struct _Abs
│ │ │ │ +64 {
│ │ │ │ +65 template
│ │ │ │ +66 _Tp operator()(const _Tp& __t) const
│ │ │ │ +67 { return _a_b_s(__t); }
│ │ │ │ +68 };
│ │ │ │ +69
│ │ │ │ +70 struct _Cos
│ │ │ │ +71 {
│ │ │ │ +72 template
│ │ │ │ +73 _Tp operator()(const _Tp& __t) const
│ │ │ │ +74 { return _c_o_s(__t); }
│ │ │ │ +75 };
│ │ │ │ +76
│ │ │ │ +77 struct _Acos
│ │ │ │ +78 {
│ │ │ │ +79 template
│ │ │ │ +80 _Tp operator()(const _Tp& __t) const
│ │ │ │ +81 { return _a_c_o_s(__t); }
│ │ │ │ +82 };
│ │ │ │ +83
│ │ │ │ +84 struct _Cosh
│ │ │ │ +85 {
│ │ │ │ +86 template
│ │ │ │ +87 _Tp operator()(const _Tp& __t) const
│ │ │ │ +88 { return _c_o_s_h(__t); }
│ │ │ │ +89 };
│ │ │ │ +90
│ │ │ │ +91 struct _Sin
│ │ │ │ +92 {
│ │ │ │ +93 template
│ │ │ │ +94 _Tp operator()(const _Tp& __t) const
│ │ │ │ +95 { return _s_i_n(__t); }
│ │ │ │ +96 };
│ │ │ │ +97
│ │ │ │ +98 struct _Asin
│ │ │ │ +99 {
│ │ │ │ +100 template
│ │ │ │ +101 _Tp operator()(const _Tp& __t) const
│ │ │ │ +102 { return _a_s_i_n(__t); }
│ │ │ │ +103 };
│ │ │ │ 104
│ │ │ │ -105 template
│ │ │ │ -106 [[noreturn]]
│ │ │ │ -107 inline void
│ │ │ │ -108 __throw_with_nested_impl(_Tp&& __t, _f_a_l_s_e___t_y_p_e)
│ │ │ │ -109 { throw _s_t_d_:_:_f_o_r_w_a_r_d_<___T_p_>(__t); }
│ │ │ │ -110
│ │ │ │ -111 /// @endcond
│ │ │ │ -112
│ │ │ │ -113 /// If @p __t is derived from nested_exception, throws @p __t.
│ │ │ │ -114 /// Else, throws an implementation-defined object derived from both.
│ │ │ │ -115 template
│ │ │ │ -116 [[noreturn]]
│ │ │ │ -117 inline void
│ │ │ │ -_1_1_8 _t_h_r_o_w___w_i_t_h___n_e_s_t_e_d(_Tp&& __t)
│ │ │ │ -119 {
│ │ │ │ -120 using _Up = typename decay<_Tp>::type;
│ │ │ │ -121 using _CopyConstructible
│ │ │ │ -122 = __and_, _i_s___m_o_v_e___c_o_n_s_t_r_u_c_t_i_b_l_e_<___U_p_>>;
│ │ │ │ -123 static_assert(_CopyConstructible::value,
│ │ │ │ -124 "throw_with_nested argument must be CopyConstructible");
│ │ │ │ -125 using __nest = __and_, __bool_constant,
│ │ │ │ -126 __not_>>;
│ │ │ │ -127 std::__throw_with_nested_impl(_s_t_d_:_:_f_o_r_w_a_r_d_<___T_p_>(__t), __nest{});
│ │ │ │ -128 }
│ │ │ │ -129
│ │ │ │ -130 /// @cond undocumented
│ │ │ │ -131
│ │ │ │ -132 // Determine if dynamic_cast would be well-formed.
│ │ │ │ -133 template
│ │ │ │ -134 using __rethrow_if_nested_cond = typename enable_if<
│ │ │ │ -135 __and_,
│ │ │ │ -136 __or_<__not_>,
│ │ │ │ -137 is_convertible<_Tp*, nested_exception*>>>::value
│ │ │ │ -138 >::type;
│ │ │ │ +105 struct _Sinh
│ │ │ │ +106 {
│ │ │ │ +107 template
│ │ │ │ +108 _Tp operator()(const _Tp& __t) const
│ │ │ │ +109 { return _s_i_n_h(__t); }
│ │ │ │ +110 };
│ │ │ │ +111
│ │ │ │ +112 struct _Tan
│ │ │ │ +113 {
│ │ │ │ +114 template
│ │ │ │ +115 _Tp operator()(const _Tp& __t) const
│ │ │ │ +116 { return _t_a_n(__t); }
│ │ │ │ +117 };
│ │ │ │ +118
│ │ │ │ +119 struct _Atan
│ │ │ │ +120 {
│ │ │ │ +121 template
│ │ │ │ +122 _Tp operator()(const _Tp& __t) const
│ │ │ │ +123 { return _a_t_a_n(__t); }
│ │ │ │ +124 };
│ │ │ │ +125
│ │ │ │ +126 struct _Tanh
│ │ │ │ +127 {
│ │ │ │ +128 template
│ │ │ │ +129 _Tp operator()(const _Tp& __t) const
│ │ │ │ +130 { return _t_a_n_h(__t); }
│ │ │ │ +131 };
│ │ │ │ +132
│ │ │ │ +133 struct _Exp
│ │ │ │ +134 {
│ │ │ │ +135 template
│ │ │ │ +136 _Tp operator()(const _Tp& __t) const
│ │ │ │ +137 { return _e_x_p(__t); }
│ │ │ │ +138 };
│ │ │ │ 139
│ │ │ │ -140 // Attempt dynamic_cast to nested_exception and call rethrow_nested().
│ │ │ │ -141 template
│ │ │ │ -142 inline __rethrow_if_nested_cond<_Ex>
│ │ │ │ -143 __rethrow_if_nested_impl(const _Ex* __ptr)
│ │ │ │ -144 {
│ │ │ │ -145 if (auto __ne_ptr = dynamic_cast(__ptr))
│ │ │ │ -146 __ne_ptr->rethrow_nested();
│ │ │ │ -147 }
│ │ │ │ -148
│ │ │ │ -149 // Otherwise, no effects.
│ │ │ │ -150 inline void
│ │ │ │ -151 __rethrow_if_nested_impl(const void*)
│ │ │ │ -152 { }
│ │ │ │ +140 struct _Log
│ │ │ │ +141 {
│ │ │ │ +142 template
│ │ │ │ +143 _Tp operator()(const _Tp& __t) const
│ │ │ │ +144 { return _l_o_g(__t); }
│ │ │ │ +145 };
│ │ │ │ +146
│ │ │ │ +147 struct _Log10
│ │ │ │ +148 {
│ │ │ │ +149 template
│ │ │ │ +150 _Tp operator()(const _Tp& __t) const
│ │ │ │ +151 { return _l_o_g_1_0(__t); }
│ │ │ │ +152 };
│ │ │ │ 153
│ │ │ │ -154 /// @endcond
│ │ │ │ -155
│ │ │ │ -156 /// If @p __ex is derived from nested_exception, @p __ex.rethrow_nested().
│ │ │ │ -157 template
│ │ │ │ -158 inline void
│ │ │ │ -_1_5_9 _r_e_t_h_r_o_w___i_f___n_e_s_t_e_d(const _Ex& __ex)
│ │ │ │ -160 { std::__rethrow_if_nested_impl(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(__ex)); }
│ │ │ │ -161
│ │ │ │ -162 /// @} group exceptions
│ │ │ │ -163} // namespace std
│ │ │ │ +154 struct _Sqrt
│ │ │ │ +155 {
│ │ │ │ +156 template
│ │ │ │ +157 _Tp operator()(const _Tp& __t) const
│ │ │ │ +158 { return _s_q_r_t(__t); }
│ │ │ │ +159 };
│ │ │ │ +160
│ │ │ │ +161 // In the past, we used to tailor operator applications semantics
│ │ │ │ +162 // to the specialization of standard function objects (i.e. plus<>, etc.)
│ │ │ │ +163 // That is incorrect. Therefore we provide our own surrogates.
│ │ │ │ 164
│ │ │ │ -165} // extern "C++"
│ │ │ │ -166
│ │ │ │ -167#endif // C++11
│ │ │ │ -168
│ │ │ │ -169#pragma GCC visibility pop
│ │ │ │ -170
│ │ │ │ -171#endif // _GLIBCXX_NESTED_EXCEPTION_H
│ │ │ │ -_m_o_v_e_._h
│ │ │ │ -_c_+_+_0_x___w_a_r_n_i_n_g_._h
│ │ │ │ -_c_+_+_c_o_n_f_i_g_._h
│ │ │ │ -_s_t_d_:_:_t_r_u_e___t_y_p_e
│ │ │ │ -integral_constant< bool, 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_:_8_3
│ │ │ │ -_s_t_d_:_:_f_a_l_s_e___t_y_p_e
│ │ │ │ -integral_constant< bool, 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_:_8_6
│ │ │ │ -_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_:_4_9
│ │ │ │ -_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_7
│ │ │ │ -_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)
│ │ │ │ -If __ex is derived from nested_exception, __ex.rethrow_nested().
│ │ │ │ -DDeeffiinniittiioonn _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_._h_:_1_5_9
│ │ │ │ -_s_t_d_:_:_t_h_r_o_w___w_i_t_h___n_e_s_t_e_d
│ │ │ │ -void throw_with_nested(_Tp &&__t)
│ │ │ │ -If __t is derived from nested_exception, throws __t. Else, throws an
│ │ │ │ -implementation-defined object de...
│ │ │ │ -DDeeffiinniittiioonn _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_._h_:_1_1_8
│ │ │ │ +165 struct __unary_plus
│ │ │ │ +166 {
│ │ │ │ +167 template
│ │ │ │ +168 _Tp operator()(const _Tp& __t) const
│ │ │ │ +169 { return +__t; }
│ │ │ │ +170 };
│ │ │ │ +171
│ │ │ │ +172 struct __negate
│ │ │ │ +173 {
│ │ │ │ +174 template
│ │ │ │ +175 _Tp operator()(const _Tp& __t) const
│ │ │ │ +176 { return -__t; }
│ │ │ │ +177 };
│ │ │ │ +178
│ │ │ │ +179 struct __bitwise_not
│ │ │ │ +180 {
│ │ │ │ +181 template
│ │ │ │ +182 _Tp operator()(const _Tp& __t) const
│ │ │ │ +183 { return ~__t; }
│ │ │ │ +184 };
│ │ │ │ +185
│ │ │ │ +186 struct __plus
│ │ │ │ +187 {
│ │ │ │ +188 template
│ │ │ │ +189 _Tp operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +190 { return __x + __y; }
│ │ │ │ +191 };
│ │ │ │ +192
│ │ │ │ +193 struct __minus
│ │ │ │ +194 {
│ │ │ │ +195 template
│ │ │ │ +196 _Tp operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +197 { return __x - __y; }
│ │ │ │ +198 };
│ │ │ │ +199
│ │ │ │ +200 struct __multiplies
│ │ │ │ +201 {
│ │ │ │ +202 template
│ │ │ │ +203 _Tp operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +204 { return __x * __y; }
│ │ │ │ +205 };
│ │ │ │ +206
│ │ │ │ +207 struct __divides
│ │ │ │ +208 {
│ │ │ │ +209 template
│ │ │ │ +210 _Tp operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +211 { return __x / __y; }
│ │ │ │ +212 };
│ │ │ │ +213
│ │ │ │ +214 struct __modulus
│ │ │ │ +215 {
│ │ │ │ +216 template
│ │ │ │ +217 _Tp operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +218 { return __x % __y; }
│ │ │ │ +219 };
│ │ │ │ +220
│ │ │ │ +221 struct __bitwise_xor
│ │ │ │ +222 {
│ │ │ │ +223 template
│ │ │ │ +224 _Tp operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +225 { return __x ^ __y; }
│ │ │ │ +226 };
│ │ │ │ +227
│ │ │ │ +228 struct __bitwise_and
│ │ │ │ +229 {
│ │ │ │ +230 template
│ │ │ │ +231 _Tp operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +232 { return __x & __y; }
│ │ │ │ +233 };
│ │ │ │ +234
│ │ │ │ +235 struct __bitwise_or
│ │ │ │ +236 {
│ │ │ │ +237 template
│ │ │ │ +238 _Tp operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +239 { return __x | __y; }
│ │ │ │ +240 };
│ │ │ │ +241
│ │ │ │ +242 struct __shift_left
│ │ │ │ +243 {
│ │ │ │ +244 template
│ │ │ │ +245 _Tp operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +246 { return __x << __y; }
│ │ │ │ +247 };
│ │ │ │ +248
│ │ │ │ +249 struct __shift_right
│ │ │ │ +250 {
│ │ │ │ +251 template
│ │ │ │ +252 _Tp operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +253 { return __x >> __y; }
│ │ │ │ +254 };
│ │ │ │ +255
│ │ │ │ +256 struct __logical_and
│ │ │ │ +257 {
│ │ │ │ +258 template
│ │ │ │ +259 bool operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +260 { return __x && __y; }
│ │ │ │ +261 };
│ │ │ │ +262
│ │ │ │ +263 struct __logical_or
│ │ │ │ +264 {
│ │ │ │ +265 template
│ │ │ │ +266 bool operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +267 { return __x || __y; }
│ │ │ │ +268 };
│ │ │ │ +269
│ │ │ │ +270 struct __logical_not
│ │ │ │ +271 {
│ │ │ │ +272 template
│ │ │ │ +273 bool operator()(const _Tp& __x) const
│ │ │ │ +274 { return !__x; }
│ │ │ │ +275 };
│ │ │ │ +276
│ │ │ │ +277 struct __equal_to
│ │ │ │ +278 {
│ │ │ │ +279 template
│ │ │ │ +280 bool operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +281 { return __x == __y; }
│ │ │ │ +282 };
│ │ │ │ +283
│ │ │ │ +284 struct __not_equal_to
│ │ │ │ +285 {
│ │ │ │ +286 template
│ │ │ │ +287 bool operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +288 { return __x != __y; }
│ │ │ │ +289 };
│ │ │ │ +290
│ │ │ │ +291 struct __less
│ │ │ │ +292 {
│ │ │ │ +293 template
│ │ │ │ +294 bool operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +295 { return __x < __y; }
│ │ │ │ +296 };
│ │ │ │ +297
│ │ │ │ +298 struct __greater
│ │ │ │ +299 {
│ │ │ │ +300 template
│ │ │ │ +301 bool operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +302 { return __x > __y; }
│ │ │ │ +303 };
│ │ │ │ +304
│ │ │ │ +305 struct __less_equal
│ │ │ │ +306 {
│ │ │ │ +307 template
│ │ │ │ +308 bool operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +309 { return __x <= __y; }
│ │ │ │ +310 };
│ │ │ │ +311
│ │ │ │ +312 struct __greater_equal
│ │ │ │ +313 {
│ │ │ │ +314 template
│ │ │ │ +315 bool operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +316 { return __x >= __y; }
│ │ │ │ +317 };
│ │ │ │ +318
│ │ │ │ +319 // The few binary functions we miss.
│ │ │ │ +320 struct _Atan2
│ │ │ │ +321 {
│ │ │ │ +322 template
│ │ │ │ +323 _Tp operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +324 { return atan2(__x, __y); }
│ │ │ │ +325 };
│ │ │ │ +326
│ │ │ │ +327 struct _Pow
│ │ │ │ +328 {
│ │ │ │ +329 template
│ │ │ │ +330 _Tp operator()(const _Tp& __x, const _Tp& __y) const
│ │ │ │ +331 { return _p_o_w(__x, __y); }
│ │ │ │ +332 };
│ │ │ │ +333
│ │ │ │ +334 template
│ │ │ │ +335 struct __fun_with_valarray
│ │ │ │ +336 {
│ │ │ │ +337 typedef _Tp result_type;
│ │ │ │ +338 };
│ │ │ │ +339
│ │ │ │ +340 template
│ │ │ │ +341 struct __fun_with_valarray<_Tp, false>
│ │ │ │ +342 {
│ │ │ │ +343 // No result type defined for invalid value types.
│ │ │ │ +344 };
│ │ │ │ +345
│ │ │ │ +346 // We need these bits in order to recover the return type of
│ │ │ │ +347 // some functions/operators now that we're no longer using
│ │ │ │ +348 // function templates.
│ │ │ │ +349 template
│ │ │ │ +350 struct __fun : __fun_with_valarray<_Tp>
│ │ │ │ +351 {
│ │ │ │ +352 };
│ │ │ │ +353
│ │ │ │ +354 // several specializations for relational operators.
│ │ │ │ +355 template
│ │ │ │ +356 struct __fun<__logical_not, _Tp>
│ │ │ │ +357 {
│ │ │ │ +358 typedef bool result_type;
│ │ │ │ +359 };
│ │ │ │ +360
│ │ │ │ +361 template
│ │ │ │ +362 struct __fun<__logical_and, _Tp>
│ │ │ │ +363 {
│ │ │ │ +364 typedef bool result_type;
│ │ │ │ +365 };
│ │ │ │ +366
│ │ │ │ +367 template
│ │ │ │ +368 struct __fun<__logical_or, _Tp>
│ │ │ │ +369 {
│ │ │ │ +370 typedef bool result_type;
│ │ │ │ +371 };
│ │ │ │ +372
│ │ │ │ +373 template
│ │ │ │ +374 struct __fun<__less, _Tp>
│ │ │ │ +375 {
│ │ │ │ +376 typedef bool result_type;
│ │ │ │ +377 };
│ │ │ │ +378
│ │ │ │ +379 template
│ │ │ │ +380 struct __fun<__greater, _Tp>
│ │ │ │ +381 {
│ │ │ │ +382 typedef bool result_type;
│ │ │ │ +383 };
│ │ │ │ +384
│ │ │ │ +385 template
│ │ │ │ +386 struct __fun<__less_equal, _Tp>
│ │ │ │ +387 {
│ │ │ │ +388 typedef bool result_type;
│ │ │ │ +389 };
│ │ │ │ +390
│ │ │ │ +391 template
│ │ │ │ +392 struct __fun<__greater_equal, _Tp>
│ │ │ │ +393 {
│ │ │ │ +394 typedef bool result_type;
│ │ │ │ +395 };
│ │ │ │ +396
│ │ │ │ +397 template
│ │ │ │ +398 struct __fun<__equal_to, _Tp>
│ │ │ │ +399 {
│ │ │ │ +400 typedef bool result_type;
│ │ │ │ +401 };
│ │ │ │ +402
│ │ │ │ +403 template
│ │ │ │ +404 struct __fun<__not_equal_to, _Tp>
│ │ │ │ +405 {
│ │ │ │ +406 typedef bool result_type;
│ │ │ │ +407 };
│ │ │ │ +408
│ │ │ │ +409namespace _____d_e_t_a_i_l
│ │ │ │ +410{
│ │ │ │ +411 // Closure types already have reference semantics and are often short-
│ │ │ │ +lived,
│ │ │ │ +412 // so store them by value to avoid (some cases of) dangling references to
│ │ │ │ +413 // out-of-scope temporaries.
│ │ │ │ +414 template
│ │ │ │ +415 struct _ValArrayRef
│ │ │ │ +416 { typedef const _Tp __type; };
│ │ │ │ +417
│ │ │ │ +418 // Use real references for std::valarray objects.
│ │ │ │ +419 template
│ │ │ │ +420 struct _ValArrayRef< valarray<_Tp> >
│ │ │ │ +421 { typedef const valarray<_Tp>& __type; };
│ │ │ │ +422
│ │ │ │ +423 //
│ │ │ │ +424 // Apply function taking a value/const reference closure
│ │ │ │ +425 //
│ │ │ │ +426
│ │ │ │ +427 template
│ │ │ │ +428 class _FunBase
│ │ │ │ +429 {
│ │ │ │ +430 public:
│ │ │ │ +431 typedef typename _Dom::value_type value_type;
│ │ │ │ +432
│ │ │ │ +433 _FunBase(const _Dom& __e, value_type __f(_Arg))
│ │ │ │ +434 : _M_expr(__e), _M_func(__f) {}
│ │ │ │ +435
│ │ │ │ +436 value_type operator[](size_t __i) const
│ │ │ │ +437 { return _M_func (_M_expr[__i]); }
│ │ │ │ +438
│ │ │ │ +439 size_t size() const { return _M_expr.size ();}
│ │ │ │ +440
│ │ │ │ +441 private:
│ │ │ │ +442 typename _ValArrayRef<_Dom>::__type _M_expr;
│ │ │ │ +443 value_type (*_M_func)(_Arg);
│ │ │ │ +444 };
│ │ │ │ +445
│ │ │ │ +446 template
│ │ │ │ +447 struct _ValFunClos<_Expr,_Dom> : _FunBase<_Dom, typename _Dom::value_type>
│ │ │ │ +448 {
│ │ │ │ +449 typedef _FunBase<_Dom, typename _Dom::value_type> _Base;
│ │ │ │ +450 typedef typename _Base::value_type value_type;
│ │ │ │ +451 typedef value_type _Tp;
│ │ │ │ +452
│ │ │ │ +453 _ValFunClos(const _Dom& __e, _Tp __f(_Tp)) : _Base(__e, __f) {}
│ │ │ │ +454 };
│ │ │ │ +455
│ │ │ │ +456 template
│ │ │ │ +457 struct _ValFunClos<_ValArray,_Tp> : _FunBase, _Tp>
│ │ │ │ +458 {
│ │ │ │ +459 typedef _FunBase, _Tp> _Base;
│ │ │ │ +460 typedef _Tp value_type;
│ │ │ │ +461
│ │ │ │ +462 _ValFunClos(const valarray<_Tp>& __v, _Tp __f(_Tp)) : _Base(__v, __f) {}
│ │ │ │ +463 };
│ │ │ │ +464
│ │ │ │ +465 template
│ │ │ │ +466 struct _RefFunClos<_Expr, _Dom>
│ │ │ │ +467 : _FunBase<_Dom, const typename _Dom::value_type&>
│ │ │ │ +468 {
│ │ │ │ +469 typedef _FunBase<_Dom, const typename _Dom::value_type&> _Base;
│ │ │ │ +470 typedef typename _Base::value_type value_type;
│ │ │ │ +471 typedef value_type _Tp;
│ │ │ │ +472
│ │ │ │ +473 _RefFunClos(const _Dom& __e, _Tp __f(const _Tp&))
│ │ │ │ +474 : _Base(__e, __f) {}
│ │ │ │ +475 };
│ │ │ │ +476
│ │ │ │ +477 template
│ │ │ │ +478 struct _RefFunClos<_ValArray, _Tp>
│ │ │ │ +479 : _FunBase, const _Tp&>
│ │ │ │ +480 {
│ │ │ │ +481 typedef _FunBase, const _Tp&> _Base;
│ │ │ │ +482 typedef _Tp value_type;
│ │ │ │ +483
│ │ │ │ +484 _RefFunClos(const valarray<_Tp>& __v, _Tp __f(const _Tp&))
│ │ │ │ +485 : _Base(__v, __f) {}
│ │ │ │ +486 };
│ │ │ │ +487
│ │ │ │ +488 //
│ │ │ │ +489 // Unary expression closure.
│ │ │ │ +490 //
│ │ │ │ +491
│ │ │ │ +492 template
│ │ │ │ +493 class _UnBase
│ │ │ │ +494 {
│ │ │ │ +495 public:
│ │ │ │ +496 typedef typename _Arg::value_type _Vt;
│ │ │ │ +497 typedef typename __fun<_Oper, _Vt>::result_type value_type;
│ │ │ │ +498
│ │ │ │ +499 _UnBase(const _Arg& __e) : _M_expr(__e) {}
│ │ │ │ +500
│ │ │ │ +501 value_type operator[](size_t __i) const
│ │ │ │ +502 { return _Oper()(_M_expr[__i]); }
│ │ │ │ +503
│ │ │ │ +504 size_t size() const { return _M_expr.size(); }
│ │ │ │ +505
│ │ │ │ +506 private:
│ │ │ │ +507 typename _ValArrayRef<_Arg>::__type _M_expr;
│ │ │ │ +508 };
│ │ │ │ +509
│ │ │ │ +510 template
│ │ │ │ +511 struct _UnClos<_Oper, _Expr, _Dom>
│ │ │ │ +512 : _UnBase<_Oper, _Dom>
│ │ │ │ +513 {
│ │ │ │ +514 typedef _Dom _Arg;
│ │ │ │ +515 typedef _UnBase<_Oper, _Dom> _Base;
│ │ │ │ +516 typedef typename _Base::value_type value_type;
│ │ │ │ +517
│ │ │ │ +518 _UnClos(const _Arg& __e) : _Base(__e) {}
│ │ │ │ +519 };
│ │ │ │ +520
│ │ │ │ +521 template
│ │ │ │ +522 struct _UnClos<_Oper, _ValArray, _Tp>
│ │ │ │ +523 : _UnBase<_Oper, valarray<_Tp> >
│ │ │ │ +524 {
│ │ │ │ +525 typedef valarray<_Tp> _Arg;
│ │ │ │ +526 typedef _UnBase<_Oper, valarray<_Tp> > _Base;
│ │ │ │ +527 typedef typename _Base::value_type value_type;
│ │ │ │ +528
│ │ │ │ +529 _UnClos(const _Arg& __e) : _Base(__e) {}
│ │ │ │ +530 };
│ │ │ │ +531
│ │ │ │ +532
│ │ │ │ +533 //
│ │ │ │ +534 // Binary expression closure.
│ │ │ │ +535 //
│ │ │ │ +536
│ │ │ │ +537 template
│ │ │ │ +538 class _BinBase
│ │ │ │ +539 {
│ │ │ │ +540 public:
│ │ │ │ +541 typedef typename _FirstArg::value_type _Vt;
│ │ │ │ +542 typedef typename __fun<_Oper, _Vt>::result_type value_type;
│ │ │ │ +543
│ │ │ │ +544 _BinBase(const _FirstArg& __e1, const _SecondArg& __e2)
│ │ │ │ +545 : _M_expr1(__e1), _M_expr2(__e2) {}
│ │ │ │ +546
│ │ │ │ +547 value_type operator[](size_t __i) const
│ │ │ │ +548 { return _Oper()(_M_expr1[__i], _M_expr2[__i]); }
│ │ │ │ +549
│ │ │ │ +550 size_t size() const { return _M_expr1.size(); }
│ │ │ │ +551
│ │ │ │ +552 private:
│ │ │ │ +553 typename _ValArrayRef<_FirstArg>::__type _M_expr1;
│ │ │ │ +554 typename _ValArrayRef<_SecondArg>::__type _M_expr2;
│ │ │ │ +555 };
│ │ │ │ +556
│ │ │ │ +557
│ │ │ │ +558 template
│ │ │ │ +559 class _BinBase2
│ │ │ │ +560 {
│ │ │ │ +561 public:
│ │ │ │ +562 typedef typename _Clos::value_type _Vt;
│ │ │ │ +563 typedef typename __fun<_Oper, _Vt>::result_type value_type;
│ │ │ │ +564
│ │ │ │ +565 _BinBase2(const _Clos& __e, const _Vt& __t)
│ │ │ │ +566 : _M_expr1(__e), _M_expr2(__t) {}
│ │ │ │ +567
│ │ │ │ +568 value_type operator[](size_t __i) const
│ │ │ │ +569 { return _Oper()(_M_expr1[__i], _M_expr2); }
│ │ │ │ +570
│ │ │ │ +571 size_t size() const { return _M_expr1.size(); }
│ │ │ │ +572
│ │ │ │ +573 private:
│ │ │ │ +574 typename _ValArrayRef<_Clos>::__type _M_expr1;
│ │ │ │ +575 _Vt _M_expr2;
│ │ │ │ +576 };
│ │ │ │ +577
│ │ │ │ +578 template
│ │ │ │ +579 class _BinBase1
│ │ │ │ +580 {
│ │ │ │ +581 public:
│ │ │ │ +582 typedef typename _Clos::value_type _Vt;
│ │ │ │ +583 typedef typename __fun<_Oper, _Vt>::result_type value_type;
│ │ │ │ +584
│ │ │ │ +585 _BinBase1(const _Vt& __t, const _Clos& __e)
│ │ │ │ +586 : _M_expr1(__t), _M_expr2(__e) {}
│ │ │ │ +587
│ │ │ │ +588 value_type operator[](size_t __i) const
│ │ │ │ +589 { return _Oper()(_M_expr1, _M_expr2[__i]); }
│ │ │ │ +590
│ │ │ │ +591 size_t size() const { return _M_expr2.size(); }
│ │ │ │ +592
│ │ │ │ +593 private:
│ │ │ │ +594 _Vt _M_expr1;
│ │ │ │ +595 typename _ValArrayRef<_Clos>::__type _M_expr2;
│ │ │ │ +596 };
│ │ │ │ +597
│ │ │ │ +598 template
│ │ │ │ +599 struct _BinClos<_Oper, _Expr, _Expr, _Dom1, _Dom2>
│ │ │ │ +600 : _BinBase<_Oper, _Dom1, _Dom2>
│ │ │ │ +601 {
│ │ │ │ +602 typedef _BinBase<_Oper, _Dom1, _Dom2> _Base;
│ │ │ │ +603 typedef typename _Base::value_type value_type;
│ │ │ │ +604
│ │ │ │ +605 _BinClos(const _Dom1& __e1, const _Dom2& __e2) : _Base(__e1, __e2) {}
│ │ │ │ +606 };
│ │ │ │ +607
│ │ │ │ +608 template
│ │ │ │ +609 struct _BinClos<_Oper, _ValArray, _ValArray, _Tp, _Tp>
│ │ │ │ +610 : _BinBase<_Oper, valarray<_Tp>, valarray<_Tp> >
│ │ │ │ +611 {
│ │ │ │ +612 typedef _BinBase<_Oper, valarray<_Tp>, valarray<_Tp> > _Base;
│ │ │ │ +613 typedef typename _Base::value_type value_type;
│ │ │ │ +614
│ │ │ │ +615 _BinClos(const valarray<_Tp>& __v, const valarray<_Tp>& __w)
│ │ │ │ +616 : _Base(__v, __w) {}
│ │ │ │ +617 };
│ │ │ │ +618
│ │ │ │ +619 template
│ │ │ │ +620 struct _BinClos<_Oper, _Expr, _ValArray, _Dom, typename _Dom::value_type>
│ │ │ │ +621 : _BinBase<_Oper, _Dom, valarray >
│ │ │ │ +622 {
│ │ │ │ +623 typedef typename _Dom::value_type _Tp;
│ │ │ │ +624 typedef _BinBase<_Oper,_Dom,valarray<_Tp> > _Base;
│ │ │ │ +625 typedef typename _Base::value_type value_type;
│ │ │ │ +626
│ │ │ │ +627 _BinClos(const _Dom& __e1, const valarray<_Tp>& __e2)
│ │ │ │ +628 : _Base(__e1, __e2) {}
│ │ │ │ +629 };
│ │ │ │ +630
│ │ │ │ +631 template
│ │ │ │ +632 struct _BinClos<_Oper, _ValArray, _Expr, typename _Dom::value_type, _Dom>
│ │ │ │ +633 : _BinBase<_Oper, valarray,_Dom>
│ │ │ │ +634 {
│ │ │ │ +635 typedef typename _Dom::value_type _Tp;
│ │ │ │ +636 typedef _BinBase<_Oper, valarray<_Tp>, _Dom> _Base;
│ │ │ │ +637 typedef typename _Base::value_type value_type;
│ │ │ │ +638
│ │ │ │ +639 _BinClos(const valarray<_Tp>& __e1, const _Dom& __e2)
│ │ │ │ +640 : _Base(__e1, __e2) {}
│ │ │ │ +641 };
│ │ │ │ +642
│ │ │ │ +643 template
│ │ │ │ +644 struct _BinClos<_Oper, _Expr, _Constant, _Dom, typename _Dom::value_type>
│ │ │ │ +645 : _BinBase2<_Oper, _Dom>
│ │ │ │ +646 {
│ │ │ │ +647 typedef typename _Dom::value_type _Tp;
│ │ │ │ +648 typedef _BinBase2<_Oper,_Dom> _Base;
│ │ │ │ +649 typedef typename _Base::value_type value_type;
│ │ │ │ +650
│ │ │ │ +651 _BinClos(const _Dom& __e1, const _Tp& __e2) : _Base(__e1, __e2) {}
│ │ │ │ +652 };
│ │ │ │ +653
│ │ │ │ +654 template
│ │ │ │ +655 struct _BinClos<_Oper, _Constant, _Expr, typename _Dom::value_type, _Dom>
│ │ │ │ +656 : _BinBase1<_Oper, _Dom>
│ │ │ │ +657 {
│ │ │ │ +658 typedef typename _Dom::value_type _Tp;
│ │ │ │ +659 typedef _BinBase1<_Oper, _Dom> _Base;
│ │ │ │ +660 typedef typename _Base::value_type value_type;
│ │ │ │ +661
│ │ │ │ +662 _BinClos(const _Tp& __e1, const _Dom& __e2) : _Base(__e1, __e2) {}
│ │ │ │ +663 };
│ │ │ │ +664
│ │ │ │ +665 template
│ │ │ │ +666 struct _BinClos<_Oper, _ValArray, _Constant, _Tp, _Tp>
│ │ │ │ +667 : _BinBase2<_Oper, valarray<_Tp> >
│ │ │ │ +668 {
│ │ │ │ +669 typedef _BinBase2<_Oper,valarray<_Tp> > _Base;
│ │ │ │ +670 typedef typename _Base::value_type value_type;
│ │ │ │ +671
│ │ │ │ +672 _BinClos(const valarray<_Tp>& __v, const _Tp& __t) : _Base(__v, __t) {}
│ │ │ │ +673 };
│ │ │ │ +674
│ │ │ │ +675 template
│ │ │ │ +676 struct _BinClos<_Oper, _Constant, _ValArray, _Tp, _Tp>
│ │ │ │ +677 : _BinBase1<_Oper, valarray<_Tp> >
│ │ │ │ +678 {
│ │ │ │ +679 typedef _BinBase1<_Oper, valarray<_Tp> > _Base;
│ │ │ │ +680 typedef typename _Base::value_type value_type;
│ │ │ │ +681
│ │ │ │ +682 _BinClos(const _Tp& __t, const valarray<_Tp>& __v) : _Base(__t, __v) {}
│ │ │ │ +683 };
│ │ │ │ +684
│ │ │ │ +685 //
│ │ │ │ +686 // slice_array closure.
│ │ │ │ +687 //
│ │ │ │ +688 template
│ │ │ │ +689 class _SBase
│ │ │ │ +690 {
│ │ │ │ +691 public:
│ │ │ │ +692 typedef typename _Dom::value_type value_type;
│ │ │ │ +693
│ │ │ │ +694 _SBase (const _Dom& __e, const slice& __s)
│ │ │ │ +695 : _M_expr (__e), _M_slice (__s) {}
│ │ │ │ +696
│ │ │ │ +697 value_type
│ │ │ │ +698 operator[] (size_t __i) const
│ │ │ │ +699 { return _M_expr[_M_slice.start () + __i * _M_slice.stride ()]; }
│ │ │ │ +700
│ │ │ │ +701 size_t
│ │ │ │ +702 size() const
│ │ │ │ +703 { return _M_slice.size (); }
│ │ │ │ +704
│ │ │ │ +705 private:
│ │ │ │ +706 typename _ValArrayRef<_Dom>::__type _M_expr;
│ │ │ │ +707 const slice& _M_slice;
│ │ │ │ +708 };
│ │ │ │ +709
│ │ │ │ +710 template
│ │ │ │ +711 class _SBase<_Array<_Tp> >
│ │ │ │ +712 {
│ │ │ │ +713 public:
│ │ │ │ +714 typedef _Tp value_type;
│ │ │ │ +715
│ │ │ │ +716 _SBase (_Array<_Tp> __a, const slice& __s)
│ │ │ │ +717 : _M_array (__a._M_data+__s.start()), _M_size (__s.size()),
│ │ │ │ +718 _M_stride (__s.stride()) {}
│ │ │ │ +719
│ │ │ │ +720 value_type
│ │ │ │ +721 operator[] (size_t __i) const
│ │ │ │ +722 { return _M_array._M_data[__i * _M_stride]; }
│ │ │ │ +723
│ │ │ │ +724 size_t
│ │ │ │ +725 size() const
│ │ │ │ +726 { return _M_size; }
│ │ │ │ +727
│ │ │ │ +728 private:
│ │ │ │ +729 const _Array<_Tp> _M_array;
│ │ │ │ +730 const size_t _M_size;
│ │ │ │ +731 const size_t _M_stride;
│ │ │ │ +732 };
│ │ │ │ +733
│ │ │ │ +734 template
│ │ │ │ +735 struct _SClos<_Expr, _Dom>
│ │ │ │ +736 : _SBase<_Dom>
│ │ │ │ +737 {
│ │ │ │ +738 typedef _SBase<_Dom> _Base;
│ │ │ │ +739 typedef typename _Base::value_type value_type;
│ │ │ │ +740
│ │ │ │ +741 _SClos (const _Dom& __e, const slice& __s) : _Base (__e, __s) {}
│ │ │ │ +742 };
│ │ │ │ +743
│ │ │ │ +744 template
│ │ │ │ +745 struct _SClos<_ValArray, _Tp>
│ │ │ │ +746 : _SBase<_Array<_Tp> >
│ │ │ │ +747 {
│ │ │ │ +748 typedef _SBase<_Array<_Tp> > _Base;
│ │ │ │ +749 typedef _Tp value_type;
│ │ │ │ +750
│ │ │ │ +751 _SClos (_Array<_Tp> __a, const slice& __s) : _Base (__a, __s) {}
│ │ │ │ +752 };
│ │ │ │ +753} // namespace __detail
│ │ │ │ +754
│ │ │ │ +755_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ +756} // namespace
│ │ │ │ +757
│ │ │ │ +758#endif /* _CPP_VALARRAY_BEFORE_H */
│ │ │ │ +_s_l_i_c_e___a_r_r_a_y_._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_:_8_2_9
│ │ │ │ +_s_t_d_:_:_s_i_n
│ │ │ │ +complex< _Tp > sin(const complex< _Tp > &)
│ │ │ │ +Return complex sine of z.
│ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_8_5_9
│ │ │ │ +_s_t_d_:_:_l_o_g
│ │ │ │ +complex< _Tp > log(const complex< _Tp > &)
│ │ │ │ +Return complex natural logarithm of z.
│ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_8_2_4
│ │ │ │ +_s_t_d_:_:_t_a_n
│ │ │ │ +complex< _Tp > tan(const complex< _Tp > &)
│ │ │ │ +Return complex tangent of z.
│ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_9_6_0
│ │ │ │ +_s_t_d_:_:_a_b_s
│ │ │ │ +_Tp abs(const complex< _Tp > &)
│ │ │ │ +Return magnitude of z.
│ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_6_3_0
│ │ │ │ +_s_t_d_:_:_e_x_p
│ │ │ │ +complex< _Tp > exp(const complex< _Tp > &)
│ │ │ │ +Return complex base e exponential of z.
│ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_7_9_7
│ │ │ │ +_s_t_d_:_:_c_o_s_h
│ │ │ │ +complex< _Tp > cosh(const complex< _Tp > &)
│ │ │ │ +Return complex hyperbolic cosine of z.
│ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_7_7_1
│ │ │ │ +_s_t_d_:_:_t_a_n_h
│ │ │ │ +complex< _Tp > tanh(const complex< _Tp > &)
│ │ │ │ +Return complex hyperbolic tangent of z.
│ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_9_8_8
│ │ │ │ +_s_t_d_:_:_p_o_w
│ │ │ │ +complex< _Tp > pow(const complex< _Tp > &, int)
│ │ │ │ +Return x to the y'th power.
│ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_0_1_9
│ │ │ │ +_s_t_d_:_:_s_i_n_h
│ │ │ │ +complex< _Tp > sinh(const complex< _Tp > &)
│ │ │ │ +Return complex hyperbolic sine of z.
│ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_8_8_9
│ │ │ │ +_s_t_d_:_:_c_o_s
│ │ │ │ +complex< _Tp > cos(const complex< _Tp > &)
│ │ │ │ +Return complex cosine of z.
│ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_7_4_1
│ │ │ │ +_s_t_d_:_:_s_q_r_t
│ │ │ │ +complex< _Tp > sqrt(const complex< _Tp > &)
│ │ │ │ +Return complex square root of z.
│ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_9_3_3
│ │ │ │ _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_0_0_9
│ │ │ │ -_s_t_d_:_:_____e_x_c_e_p_t_i_o_n___p_t_r_:_:_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_:_9_1
│ │ │ │ -_s_t_d_:_:_n_e_s_t_e_d___e_x_c_e_p_t_i_o_n
│ │ │ │ -Exception class with exception_ptr data member.
│ │ │ │ -DDeeffiinniittiioonn _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_._h_:_5_3
│ │ │ │ +_s_t_d_:_:_a_t_a_n
│ │ │ │ +std::complex< _Tp > atan(const std::complex< _Tp > &)
│ │ │ │ +atan(__z) [8.1.4].
│ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_7_1_8
│ │ │ │ +_s_t_d_:_:_a_c_o_s
│ │ │ │ +std::complex< _Tp > acos(const std::complex< _Tp > &)
│ │ │ │ +acos(__z) [8.1.2].
│ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_6_3_8
│ │ │ │ +_s_t_d_:_:_a_s_i_n
│ │ │ │ +std::complex< _Tp > asin(const std::complex< _Tp > &)
│ │ │ │ +asin(__z) [8.1.3].
│ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_6_7_4
│ │ │ │ +_s_t_d_:_:_____d_e_t_a_i_l
│ │ │ │ +Implementation details not part of the namespace std interface.
│ │ │ │ * bbiittss
│ │ │ │ - * _n_e_s_t_e_d___e_x_c_e_p_t_i_o_n_._h
│ │ │ │ + * _v_a_l_a_r_r_a_y___b_e_f_o_r_e_._h
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00323.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: hash_bytes.h File Reference
│ │ │ +libstdc++: stl_stack.h File Reference
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,47 +48,61 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
Go to the source code of this file.
│ │ │
│ │ │
│ │ │ namespace std
│ │ │
│ │ │
│ │ │ -
│ │ │ -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 _Tp, typename _Seq>
│ │ │ +bool std::operator!= (const stack < _Tp, _Seq > &__x, const stack < _Tp, _Seq > &__y)
│ │ │ +template<typename _Tp, typename _Seq>
│ │ │ +bool std::operator< (const stack < _Tp, _Seq > &__x, const stack < _Tp, _Seq > &__y)
│ │ │ +template<typename _Tp, typename _Seq>
│ │ │ +bool std::operator<= (const stack < _Tp, _Seq > &__x, const stack < _Tp, _Seq > &__y)
│ │ │ +template<typename _Tp, typename _Seq>
│ │ │ +bool std::operator== (const stack < _Tp, _Seq > &__x, const stack < _Tp, _Seq > &__y)
│ │ │ +template<typename _Tp, typename _Seq>
│ │ │ +bool std::operator> (const stack < _Tp, _Seq > &__x, const stack < _Tp, _Seq > &__y)
│ │ │ +template<typename _Tp, typename _Seq>
│ │ │ +bool std::operator>= (const stack < _Tp, _Seq > &__x, const stack < _Tp, _Seq > &__y)
│ │ │ +template<typename _Tp, typename _Seq>
│ │ │ +enable_if < __is_swappable< _Seq >::value >::type std::swap (stack < _Tp, _Seq > &__x, stack < _Tp, _Seq > &__y) noexcept(noexcept(__x.swap(__y)))
│ │ │
│ │ │
│ │ │ -
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 <stack>.
│ │ │
│ │ │ -
Definition in file hash_bytes.h .
│ │ │ +
Definition in file stl_stack.h .
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,15 +1,37 @@
│ │ │ │ libstdc++
│ │ │ │ -hash_bytes.h File Reference
│ │ │ │ +stl_stack.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_:_:_s_t_a_c_k_<_ ___T_p_,_ ___S_e_q_u_e_n_c_e_ _>
│ │ │ │ NNaammeessppaacceess
│ │ │ │ namespace _s_t_d
│ │ │ │ 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
│ │ │ │ + bool _s_t_d_:_:_o_p_e_r_a_t_o_r_!_= (const _s_t_a_c_k< _Tp, _Seq
│ │ │ │ + > &__x, const _s_t_a_c_k< _Tp, _Seq > &__y)
│ │ │ │ +template
│ │ │ │ + bool _s_t_d_:_:_o_p_e_r_a_t_o_r_< (const _s_t_a_c_k< _Tp, _Seq >
│ │ │ │ + &__x, const _s_t_a_c_k< _Tp, _Seq > &__y)
│ │ │ │ +template
│ │ │ │ + bool _s_t_d_:_:_o_p_e_r_a_t_o_r_<_= (const _s_t_a_c_k< _Tp, _Seq
│ │ │ │ + > &__x, const _s_t_a_c_k< _Tp, _Seq > &__y)
│ │ │ │ +template
│ │ │ │ + bool _s_t_d_:_:_o_p_e_r_a_t_o_r_=_= (const _s_t_a_c_k< _Tp, _Seq
│ │ │ │ + > &__x, const _s_t_a_c_k< _Tp, _Seq > &__y)
│ │ │ │ +template
│ │ │ │ + bool _s_t_d_:_:_o_p_e_r_a_t_o_r_> (const _s_t_a_c_k< _Tp, _Seq >
│ │ │ │ + &__x, const _s_t_a_c_k< _Tp, _Seq > &__y)
│ │ │ │ +template
│ │ │ │ + bool _s_t_d_:_:_o_p_e_r_a_t_o_r_>_= (const _s_t_a_c_k< _Tp, _Seq
│ │ │ │ + > &__x, const _s_t_a_c_k< _Tp, _Seq > &__y)
│ │ │ │ +template
│ │ │ │ +_e_n_a_b_l_e___i_f< __is_swappable< _Seq >:: _s_t_d_:_:_s_w_a_p (_s_t_a_c_k< _Tp, _Seq > &__x,
│ │ │ │ + value >_:_:_t_y_p_e _s_t_a_c_k< _Tp, _Seq > &__y) noexcept
│ │ │ │ + (noexcept(__x.swap(__y)))
│ │ │ │ ********** 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 _s_t_l___s_t_a_c_k_._h.
│ │ │ │ * bbiittss
│ │ │ │ - * _h_a_s_h___b_y_t_e_s_._h
│ │ │ │ + * _s_t_l___s_t_a_c_k_._h
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00323_source.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: hash_bytes.h Source File
│ │ │ +libstdc++: stl_stack.h Source File
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,20 +48,20 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
Go to the documentation of this file.
│ │ │ +
Go to the documentation of this file.
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -74,57 +74,435 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
31 #define _HASH_BYTES_H 1
│ │ │ -
│ │ │ -
33 #pragma GCC system_header
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
39 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
47 _Hash_bytes(
const void * __ptr,
size_t __len,
size_t __seed);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
54 _Fnv_hash_bytes(
const void * __ptr,
size_t __len,
size_t __seed);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
56 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
61 #if __cplusplus >= 201103L
│ │ │ +
62 # include <bits/uses_allocator.h>
│ │ │ +
│ │ │ +
│ │ │ +
65 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ +
│ │ │ +
67 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
98 template <
typename _Tp,
typename _Sequence = deque<_Tp> >
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
101 #ifdef _GLIBCXX_CONCEPT_CHECKS
│ │ │ +
│ │ │ +
103 typedef typename _Sequence::value_type _Sequence_value_type;
│ │ │ +
104 # if __cplusplus < 201103L
│ │ │ +
105 __glibcxx_class_requires(_Tp, _SGIAssignableConcept)
│ │ │ +
106 __glibcxx_class_requires(_Sequence, _BackInsertionSequenceConcept)
│ │ │ +
│ │ │ +
108 __glibcxx_class_requires2(_Tp, _Sequence_value_type, _SameTypeConcept)
│ │ │ +
│ │ │ +
│ │ │ +
111 template <
typename _Tp1,
typename _Seq1>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
115 template <
typename _Tp1,
typename _Seq1>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
119 #if __cpp_lib_three_way_comparison
│ │ │ +
120 template <
typename _Tp1, three_way_comparable _Seq1>
│ │ │ +
121 friend compare_three_way_result_t<_Seq1>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
125 #if __cplusplus >= 201103L
│ │ │ +
126 template <
typename _Alloc>
│ │ │ +
127 using _Uses =
typename
│ │ │ +
│ │ │ +
│ │ │ +
130 #if __cplusplus >= 201703L
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
134 static_assert (is_same<_Tp, typename _Sequence::value_type>::value,
│ │ │ +
135 "value_type must be the same as the underlying container" );
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
140 typedef typename _Sequence::value_type value_type;
│ │ │ +
141 typedef typename _Sequence::reference reference;
│ │ │ +
142 typedef typename _Sequence::const_reference const_reference;
│ │ │ +
143 typedef typename _Sequence::size_type size_type;
│ │ │ +
144 typedef _Sequence container_type;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
155 #if __cplusplus < 201103L
│ │ │ +
│ │ │ +
157 stack (
const _Sequence& __c = _Sequence())
│ │ │ +
│ │ │ +
│ │ │ +
160 template <
typename _Seq = _Sequence,
typename _Requires =
typename
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
166 stack (
const _Sequence& __c)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
170 stack (_Sequence&& __c)
│ │ │ +
│ │ │ +
│ │ │ +
173 template <
typename _Alloc,
typename _Requires = _Uses<_Alloc>>
│ │ │ +
│ │ │ +
175 stack (
const _Alloc& __a)
│ │ │ +
│ │ │ +
│ │ │ +
178 template <
typename _Alloc,
typename _Requires = _Uses<_Alloc>>
│ │ │ +
179 stack (
const _Sequence& __c,
const _Alloc& __a)
│ │ │ +
│ │ │ +
│ │ │ +
182 template <
typename _Alloc,
typename _Requires = _Uses<_Alloc>>
│ │ │ +
183 stack (_Sequence&& __c,
const _Alloc& __a)
│ │ │ +
184 : c(std::
move (__c), __a) { }
│ │ │ +
│ │ │ +
186 template <
typename _Alloc,
typename _Requires = _Uses<_Alloc>>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
190 template <
typename _Alloc,
typename _Requires = _Uses<_Alloc>>
│ │ │ +
│ │ │ +
192 : c(std::
move (__q.c), __a) { }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
198 _GLIBCXX_NODISCARD
bool
│ │ │ +
│ │ │ +
│ │ │ +
200 {
return c.empty(); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
214 __glibcxx_requires_nonempty();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
225 __glibcxx_requires_nonempty();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
240 { c.push_back(__x); }
│ │ │ +
│ │ │ +
│ │ │ +
242 #if __cplusplus >= 201103L
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
247 #if __cplusplus > 201402L
│ │ │ +
248 template <
typename ... _Args>
│ │ │ +
│ │ │ +
250 emplace(_Args&&... __args)
│ │ │ +
│ │ │ +
│ │ │ +
253 template <
typename ... _Args>
│ │ │ +
│ │ │ +
255 emplace(_Args&&... __args)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
274 __glibcxx_requires_nonempty();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
278 #if __cplusplus >= 201103L
│ │ │ +
│ │ │ +
│ │ │ +
281 #if __cplusplus > 201402L || !defined(__STRICT_ANSI__)
│ │ │ +
282 noexcept (__is_nothrow_swappable<_Sequence>::value)
│ │ │ +
│ │ │ +
284 noexcept (__is_nothrow_swappable<_Tp>::value)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
293 #if __cpp_deduction_guides >= 201606
│ │ │ +
294 template <
typename _Container,
│ │ │ +
295 typename = _RequireNotAllocator<_Container>>
│ │ │ +
│ │ │ +
│ │ │ +
298 template <
typename _Container,
typename _Allocator,
│ │ │ +
299 typename = _RequireNotAllocator<_Container>,
│ │ │ +
300 typename = _RequireAllocator<_Allocator>>
│ │ │ +
301 stack (_Container, _Allocator)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
317 template <
typename _Tp,
typename _Seq>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
320 {
return __x.c == __y.c; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
335 template <
typename _Tp,
typename _Seq>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
338 {
return __x.c < __y.c; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
341 template <
typename _Tp,
typename _Seq>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
344 {
return !(__x == __y); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
347 template <
typename _Tp,
typename _Seq>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
350 {
return __y < __x; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
353 template <
typename _Tp,
typename _Seq>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
356 {
return !(__y < __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
359 template <
typename _Tp,
typename _Seq>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
362 {
return !(__x < __y); }
│ │ │ +
│ │ │ +
│ │ │ +
364 #if __cpp_lib_three_way_comparison
│ │ │ +
365 template <
typename _Tp, three_way_comparable _Seq>
│ │ │ +
366 inline compare_three_way_result_t<_Seq>
│ │ │ +
367 operator<=>(
const stack<_Tp, _Seq>& __x,
const stack<_Tp, _Seq>& __y)
│ │ │ +
368 {
return __x.c <=> __y.c; }
│ │ │ +
│ │ │ +
│ │ │ +
371 #if __cplusplus >= 201103L
│ │ │ +
372 template <
typename _Tp,
typename _Seq>
│ │ │ +
│ │ │ +
374 #if __cplusplus > 201402L || !defined(__STRICT_ANSI__)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
381 noexcept (
noexcept (__x.swap(__y)))
│ │ │ +
│ │ │ +
│ │ │ +
384 template <
typename _Tp,
typename _Seq,
typename _Alloc>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
389 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ +
void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
│ │ │ +
constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ +
│ │ │ +
Define a member typedef type only if a boolean constant is true.
│ │ │ +
│ │ │ +
│ │ │ +
Declare uses_allocator so it can be specialized in <queue> etc.
│ │ │ +
A standard container giving FILO behavior.
│ │ │ +
void pop()
Removes first element.
│ │ │ +
│ │ │ +
void push(const value_type &__x)
Add data to the top of the stack.
│ │ │ +
│ │ │ +
const_reference top() const
│ │ │ +
stack()
Default constructor creates no elements.
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,13 +1,13 @@
│ │ │ │ libstdc++
│ │ │ │ -hash_bytes.h
│ │ │ │ +stl_stack.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// Stack implementation -*- C++ -*-
│ │ │ │ 2
│ │ │ │ -3// Copyright (C) 2010-2021 Free Software Foundation, Inc.
│ │ │ │ +3// Copyright (C) 2001-2021 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,48 +21,431 @@
│ │ │ │ 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
│ │ │ │ -26 * This is an internal header file, included by other library headers.
│ │ │ │ -27 * Do not attempt to use it directly. @headername{functional}
│ │ │ │ -28 */
│ │ │ │ -29
│ │ │ │ -30#ifndef _HASH_BYTES_H
│ │ │ │ -31#define _HASH_BYTES_H 1
│ │ │ │ -32
│ │ │ │ -33#pragma GCC system_header
│ │ │ │ -34
│ │ │ │ -35#include <_b_i_t_s_/_c_+_+_c_o_n_f_i_g_._h>
│ │ │ │ -36
│ │ │ │ -37namespace _s_t_d
│ │ │ │ -38{
│ │ │ │ -39_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ -40
│ │ │ │ -41 // Hash function implementation for the nontrivial specialization.
│ │ │ │ -42 // All of them are based on a primitive that hashes a pointer to a
│ │ │ │ -43 // byte array. The actual hash algorithm is not guaranteed to stay
│ │ │ │ -44 // the same from release to release -- it may be updated or tuned to
│ │ │ │ -45 // improve hash quality or speed.
│ │ │ │ -46 size_t
│ │ │ │ -47 _Hash_bytes(const void* __ptr, size_t __len, size_t __seed);
│ │ │ │ -48
│ │ │ │ -49 // A similar hash primitive, using the FNV hash algorithm. This
│ │ │ │ -50 // algorithm is guaranteed to stay the same from release to release.
│ │ │ │ -51 // (although it might not produce the same values on different
│ │ │ │ -52 // machines.)
│ │ │ │ -53 size_t
│ │ │ │ -54 _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed);
│ │ │ │ +25/*
│ │ │ │ +26 *
│ │ │ │ +27 * Copyright (c) 1994
│ │ │ │ +28 * Hewlett-Packard Company
│ │ │ │ +29 *
│ │ │ │ +30 * Permission to use, copy, modify, distribute and sell this software
│ │ │ │ +31 * and its documentation for any purpose is hereby granted without fee,
│ │ │ │ +32 * provided that the above copyright notice appear in all copies and
│ │ │ │ +33 * that both that copyright notice and this permission notice appear
│ │ │ │ +34 * in supporting documentation. Hewlett-Packard Company makes no
│ │ │ │ +35 * representations about the suitability of this software for any
│ │ │ │ +36 * purpose. It is provided "as is" without express or implied warranty.
│ │ │ │ +37 *
│ │ │ │ +38 *
│ │ │ │ +39 * Copyright (c) 1996,1997
│ │ │ │ +40 * Silicon Graphics Computer Systems, Inc.
│ │ │ │ +41 *
│ │ │ │ +42 * Permission to use, copy, modify, distribute and sell this software
│ │ │ │ +43 * and its documentation for any purpose is hereby granted without fee,
│ │ │ │ +44 * provided that the above copyright notice appear in all copies and
│ │ │ │ +45 * that both that copyright notice and this permission notice appear
│ │ │ │ +46 * in supporting documentation. Silicon Graphics makes no
│ │ │ │ +47 * representations about the suitability of this software for any
│ │ │ │ +48 * purpose. It is provided "as is" without express or implied warranty.
│ │ │ │ +49 */
│ │ │ │ +50
│ │ │ │ +51/** @file bits/stl_stack.h
│ │ │ │ +52 * This is an internal header file, included by other library headers.
│ │ │ │ +53 * Do not attempt to use it directly. @headername{stack}
│ │ │ │ +54 */
│ │ │ │ 55
│ │ │ │ -56_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ -57} // namespace
│ │ │ │ +56#ifndef _STL_STACK_H
│ │ │ │ +57#define _STL_STACK_H 1
│ │ │ │ 58
│ │ │ │ -59#endif
│ │ │ │ -_c_+_+_c_o_n_f_i_g_._h
│ │ │ │ +59#include <_b_i_t_s_/_c_o_n_c_e_p_t___c_h_e_c_k_._h>
│ │ │ │ +60#include <_d_e_b_u_g_/_d_e_b_u_g_._h>
│ │ │ │ +61#if __cplusplus >= 201103L
│ │ │ │ +62# include
│ │ │ │ +63#endif
│ │ │ │ +64
│ │ │ │ +65namespace _s_t_d _GLIBCXX_VISIBILITY(default)
│ │ │ │ +66{
│ │ │ │ +67_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ +68
│ │ │ │ +69 /**
│ │ │ │ +70 * @brief A standard container giving FILO behavior.
│ │ │ │ +71 *
│ │ │ │ +72 * @ingroup sequences
│ │ │ │ +73 *
│ │ │ │ +74 * @tparam _Tp Type of element.
│ │ │ │ +75 * @tparam _Sequence Type of underlying sequence, defaults to deque<_Tp>.
│ │ │ │ +76 *
│ │ │ │ +77 * Meets many of the requirements of a
│ │ │ │ +78 * container ,
│ │ │ │ +79 * but does not define anything to do with iterators. Very few of the
│ │ │ │ +80 * other standard container interfaces are defined.
│ │ │ │ +81 *
│ │ │ │ +82 * This is not a true container, but an @e adaptor. It holds
│ │ │ │ +83 * another container, and provides a wrapper interface to that
│ │ │ │ +84 * container. The wrapper is what enforces strict
│ │ │ │ +85 * first-in-last-out %stack behavior.
│ │ │ │ +86 *
│ │ │ │ +87 * The second template parameter defines the type of the underlying
│ │ │ │ +88 * sequence/container. It defaults to std::deque, but it can be
│ │ │ │ +89 * any type that supports @c back, @c push_back, and @c pop_back,
│ │ │ │ +90 * such as std::list, std::vector, or an appropriate user-defined
│ │ │ │ +91 * type.
│ │ │ │ +92 *
│ │ │ │ +93 * Members not found in @a normal containers are @c container_type,
│ │ │ │ +94 * which is a typedef for the second Sequence parameter, and @c
│ │ │ │ +95 * push, @c pop, and @c top, which are standard %stack/FILO
│ │ │ │ +96 * operations.
│ │ │ │ +97 */
│ │ │ │ +98 template >
│ │ │ │ +_9_9 class _s_t_a_c_k
│ │ │ │ +100 {
│ │ │ │ +101#ifdef _GLIBCXX_CONCEPT_CHECKS
│ │ │ │ +102 // concept requirements
│ │ │ │ +103 typedef typename _Sequence::value_type _Sequence_value_type;
│ │ │ │ +104# if __cplusplus < 201103L
│ │ │ │ +105 __glibcxx_class_requires(_Tp, _SGIAssignableConcept)
│ │ │ │ +106 __glibcxx_class_requires(_Sequence, _BackInsertionSequenceConcept)
│ │ │ │ +107# endif
│ │ │ │ +108 __glibcxx_class_requires2(_Tp, _Sequence_value_type, _SameTypeConcept)
│ │ │ │ +109#endif
│ │ │ │ +110
│ │ │ │ +111 template
│ │ │ │ +112 friend bool
│ │ │ │ +113 operator==(const _s_t_a_c_k_<___T_p_1_,_ ___S_e_q_1_>&, const _s_t_a_c_k_<___T_p_1_,_ ___S_e_q_1_>&);
│ │ │ │ +114
│ │ │ │ +115 template
│ │ │ │ +116 friend bool
│ │ │ │ +117 operator<(const _s_t_a_c_k_<___T_p_1_,_ ___S_e_q_1_>&, const _s_t_a_c_k_<___T_p_1_,_ ___S_e_q_1_>&);
│ │ │ │ +118
│ │ │ │ +119#if __cpp_lib_three_way_comparison
│ │ │ │ +120 template
│ │ │ │ +121 friend compare_three_way_result_t<_Seq1>
│ │ │ │ +122 operator<=>(const _s_t_a_c_k_<___T_p_1_,_ ___S_e_q_1_>&, const _s_t_a_c_k_<___T_p_1_,_ ___S_e_q_1_>&);
│ │ │ │ +123#endif
│ │ │ │ +124
│ │ │ │ +125#if __cplusplus >= 201103L
│ │ │ │ +126 template
│ │ │ │ +127 using _Uses = typename
│ │ │ │ +128 _e_n_a_b_l_e___i_f_<_u_s_e_s___a_l_l_o_c_a_t_o_r_<___S_e_q_u_e_n_c_e_,_ ___A_l_l_o_c_>_:_:_v_a_l_u_e>_:_:_t_y_p_e;
│ │ │ │ +129
│ │ │ │ +130#if __cplusplus >= 201703L
│ │ │ │ +131 // _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ +132 // 2566. Requirements on the first template parameter of container
│ │ │ │ +133 // adaptors
│ │ │ │ +134 static_assert(is_same<_Tp, typename _Sequence::value_type>::value,
│ │ │ │ +135 "value_type must be the same as the underlying container");
│ │ │ │ +136#endif // C++17
│ │ │ │ +137#endif // C++11
│ │ │ │ +138
│ │ │ │ +139 public:
│ │ │ │ +140 typedef typename _Sequence::value_type value_type;
│ │ │ │ +141 typedef typename _Sequence::reference reference;
│ │ │ │ +142 typedef typename _Sequence::const_reference const_reference;
│ │ │ │ +143 typedef typename _Sequence::size_type size_type;
│ │ │ │ +144 typedef _Sequence container_type;
│ │ │ │ +145
│ │ │ │ +146 protected:
│ │ │ │ +147 // See queue::c for notes on this name.
│ │ │ │ +148 _Sequence c;
│ │ │ │ +149
│ │ │ │ +150 public:
│ │ │ │ +151 // XXX removed old def ctor, added def arg to this one to match 14882
│ │ │ │ +152 /**
│ │ │ │ +153 * @brief Default constructor creates no elements.
│ │ │ │ +154 */
│ │ │ │ +155#if __cplusplus < 201103L
│ │ │ │ +156 explicit
│ │ │ │ +157 _s_t_a_c_k(const _Sequence& __c = _Sequence())
│ │ │ │ +158 : c(__c) { }
│ │ │ │ +159#else
│ │ │ │ +160 template_:_:_v_a_l_u_e>_:_:_t_y_p_e>
│ │ │ │ +_1_6_2 _s_t_a_c_k()
│ │ │ │ +163 : c() { }
│ │ │ │ +164
│ │ │ │ +165 explicit
│ │ │ │ +166 _s_t_a_c_k(const _Sequence& __c)
│ │ │ │ +167 : c(__c) { }
│ │ │ │ +168
│ │ │ │ +169 explicit
│ │ │ │ +170 _s_t_a_c_k(_Sequence&& __c)
│ │ │ │ +171 : c(_s_t_d::_m_o_v_e(__c)) { }
│ │ │ │ +172
│ │ │ │ +173 template>
│ │ │ │ +174 explicit
│ │ │ │ +175 _s_t_a_c_k(const _Alloc& __a)
│ │ │ │ +176 : c(__a) { }
│ │ │ │ +177
│ │ │ │ +178 template>
│ │ │ │ +179 _s_t_a_c_k(const _Sequence& __c, const _Alloc& __a)
│ │ │ │ +180 : c(__c, __a) { }
│ │ │ │ +181
│ │ │ │ +182 template>
│ │ │ │ +183 _s_t_a_c_k(_Sequence&& __c, const _Alloc& __a)
│ │ │ │ +184 : c(std::_m_o_v_e(__c), __a) { }
│ │ │ │ +185
│ │ │ │ +186 template>
│ │ │ │ +187 _s_t_a_c_k(const _s_t_a_c_k& __q, const _Alloc& __a)
│ │ │ │ +188 : c(__q.c, __a) { }
│ │ │ │ +189
│ │ │ │ +190 template>
│ │ │ │ +191 _s_t_a_c_k(_s_t_a_c_k&& __q, const _Alloc& __a)
│ │ │ │ +192 : c(std::_m_o_v_e(__q.c), __a) { }
│ │ │ │ +193#endif
│ │ │ │ +194
│ │ │ │ +195 /**
│ │ │ │ +196 * Returns true if the %stack is empty.
│ │ │ │ +197 */
│ │ │ │ +198 _GLIBCXX_NODISCARD bool
│ │ │ │ +_1_9_9 _e_m_p_t_y() const
│ │ │ │ +200 { return c.empty(); }
│ │ │ │ +201
│ │ │ │ +202 /** Returns the number of elements in the %stack. */
│ │ │ │ +203 _s_i_z_e___t_y_p_e
│ │ │ │ +_2_0_4 _s_i_z_e() const
│ │ │ │ +205 { return c.size(); }
│ │ │ │ +206
│ │ │ │ +207 /**
│ │ │ │ +208 * Returns a read/write reference to the data at the first
│ │ │ │ +209 * element of the %stack.
│ │ │ │ +210 */
│ │ │ │ +211 reference
│ │ │ │ +_2_1_2 _t_o_p()
│ │ │ │ +213 {
│ │ │ │ +214 __glibcxx_requires_nonempty();
│ │ │ │ +215 return c.back();
│ │ │ │ +216 }
│ │ │ │ +217
│ │ │ │ +218 /**
│ │ │ │ +219 * Returns a read-only (constant) reference to the data at the first
│ │ │ │ +220 * element of the %stack.
│ │ │ │ +221 */
│ │ │ │ +222 const_reference
│ │ │ │ +_2_2_3 _t_o_p() const
│ │ │ │ +224 {
│ │ │ │ +225 __glibcxx_requires_nonempty();
│ │ │ │ +226 return c.back();
│ │ │ │ +227 }
│ │ │ │ +228
│ │ │ │ +229 /**
│ │ │ │ +230 * @brief Add data to the top of the %stack.
│ │ │ │ +231 * @param __x Data to be added.
│ │ │ │ +232 *
│ │ │ │ +233 * This is a typical %stack operation. The function creates an
│ │ │ │ +234 * element at the top of the %stack and assigns the given data
│ │ │ │ +235 * to it. The time complexity of the operation depends on the
│ │ │ │ +236 * underlying sequence.
│ │ │ │ +237 */
│ │ │ │ +238 void
│ │ │ │ +_2_3_9 _p_u_s_h(const value_type& __x)
│ │ │ │ +240 { c.push_back(__x); }
│ │ │ │ +241
│ │ │ │ +242#if __cplusplus >= 201103L
│ │ │ │ +243 void
│ │ │ │ +244 _p_u_s_h(_v_a_l_u_e___t_y_p_e&& __x)
│ │ │ │ +245 { c.push_back(_s_t_d_:_:_m_o_v_e(__x)); }
│ │ │ │ +246
│ │ │ │ +247#if __cplusplus > 201402L
│ │ │ │ +248 template
│ │ │ │ +249 decltype(auto)
│ │ │ │ +250 emplace(_Args&&... __args)
│ │ │ │ +251 { return c.emplace_back(_s_t_d_:_:_f_o_r_w_a_r_d_<___A_r_g_s_>(__args)...); }
│ │ │ │ +252#else
│ │ │ │ +253 template
│ │ │ │ +254 void
│ │ │ │ +255 emplace(_Args&&... __args)
│ │ │ │ +256 { c.emplace_back(_s_t_d_:_:_f_o_r_w_a_r_d_<___A_r_g_s_>(__args)...); }
│ │ │ │ +257#endif
│ │ │ │ +258#endif
│ │ │ │ +259
│ │ │ │ +260 /**
│ │ │ │ +261 * @brief Removes first element.
│ │ │ │ +262 *
│ │ │ │ +263 * This is a typical %stack operation. It shrinks the %stack
│ │ │ │ +264 * by one. The time complexity of the operation depends on the
│ │ │ │ +265 * underlying sequence.
│ │ │ │ +266 *
│ │ │ │ +267 * Note that no data is returned, and if the first element's
│ │ │ │ +268 * data is needed, it should be retrieved before pop() is
│ │ │ │ +269 * called.
│ │ │ │ +270 */
│ │ │ │ +271 void
│ │ │ │ +_2_7_2 _p_o_p()
│ │ │ │ +273 {
│ │ │ │ +274 __glibcxx_requires_nonempty();
│ │ │ │ +275 c.pop_back();
│ │ │ │ +276 }
│ │ │ │ +277
│ │ │ │ +278#if __cplusplus >= 201103L
│ │ │ │ +279 void
│ │ │ │ +280 _s_w_a_p(_s_t_a_c_k& __s)
│ │ │ │ +281#if __cplusplus > 201402L || !defined(__STRICT_ANSI__) // c++1z or gnu++11
│ │ │ │ +282 noexcept(__is_nothrow_swappable<_Sequence>::value)
│ │ │ │ +283#else
│ │ │ │ +284 noexcept(__is_nothrow_swappable<_Tp>::value)
│ │ │ │ +285#endif
│ │ │ │ +286 {
│ │ │ │ +287 using _s_t_d_:_:_s_w_a_p;
│ │ │ │ +288 _s_w_a_p(c, __s.c);
│ │ │ │ +289 }
│ │ │ │ +290#endif // __cplusplus >= 201103L
│ │ │ │ +291 };
│ │ │ │ +292
│ │ │ │ +293#if __cpp_deduction_guides >= 201606
│ │ │ │ +294 template>
│ │ │ │ +296 _s_t_a_c_k(_Container) -> _s_t_a_c_k_<_t_y_p_e_n_a_m_e_ ___C_o_n_t_a_i_n_e_r_:_:_v_a_l_u_e___t_y_p_e_,_ ___C_o_n_t_a_i_n_e_r_>;
│ │ │ │ +297
│ │ │ │ +298 template,
│ │ │ │ +300 typename = _RequireAllocator<_Allocator>>
│ │ │ │ +301 _s_t_a_c_k(_Container, _Allocator)
│ │ │ │ +302 -> _s_t_a_c_k_<_t_y_p_e_n_a_m_e_ ___C_o_n_t_a_i_n_e_r_:_:_v_a_l_u_e___t_y_p_e_,_ ___C_o_n_t_a_i_n_e_r_>;
│ │ │ │ +303#endif
│ │ │ │ +304
│ │ │ │ +305 /**
│ │ │ │ +306 * @brief Stack equality comparison.
│ │ │ │ +307 * @param __x A %stack.
│ │ │ │ +308 * @param __y A %stack of the same type as @a __x.
│ │ │ │ +309 * @return True iff the size and elements of the stacks are equal.
│ │ │ │ +310 *
│ │ │ │ +311 * This is an equivalence relation. Complexity and semantics
│ │ │ │ +312 * depend on the underlying sequence type, but the expected rules
│ │ │ │ +313 * are: this relation is linear in the size of the sequences, and
│ │ │ │ +314 * stacks are considered equivalent if their sequences compare
│ │ │ │ +315 * equal.
│ │ │ │ +316 */
│ │ │ │ +317 template
│ │ │ │ +318 inline bool
│ │ │ │ +_3_1_9 operator==(const _s_t_a_c_k_<___T_p_,_ ___S_e_q_>& __x, const _s_t_a_c_k_<___T_p_,_ ___S_e_q_>& __y)
│ │ │ │ +320 { return __x.c == __y.c; }
│ │ │ │ +321
│ │ │ │ +322 /**
│ │ │ │ +323 * @brief Stack ordering relation.
│ │ │ │ +324 * @param __x A %stack.
│ │ │ │ +325 * @param __y A %stack of the same type as @a x.
│ │ │ │ +326 * @return True iff @a x is lexicographically less than @a __y.
│ │ │ │ +327 *
│ │ │ │ +328 * This is an total ordering relation. Complexity and semantics
│ │ │ │ +329 * depend on the underlying sequence type, but the expected rules
│ │ │ │ +330 * are: this relation is linear in the size of the sequences, the
│ │ │ │ +331 * elements must be comparable with @c <, and
│ │ │ │ +332 * std::lexicographical_compare() is usually used to make the
│ │ │ │ +333 * determination.
│ │ │ │ +334 */
│ │ │ │ +335 template
│ │ │ │ +_3_3_6 inline bool
│ │ │ │ +337 operator<(const _s_t_a_c_k_<___T_p_,_ ___S_e_q_>& __x, const _s_t_a_c_k_<___T_p_,_ ___S_e_q_>& __y)
│ │ │ │ +338 { return __x.c < __y.c; }
│ │ │ │ +339
│ │ │ │ +340 /// Based on operator==
│ │ │ │ +341 template
│ │ │ │ +342 inline bool
│ │ │ │ +_3_4_3 operator!=(const _s_t_a_c_k_<___T_p_,_ ___S_e_q_>& __x, const _s_t_a_c_k_<___T_p_,_ ___S_e_q_>& __y)
│ │ │ │ +344 { return !(__x == __y); }
│ │ │ │ +345
│ │ │ │ +346 /// Based on operator<
│ │ │ │ +347 template
│ │ │ │ +348 inline bool
│ │ │ │ +_3_4_9 operator>(const _s_t_a_c_k_<___T_p_,_ ___S_e_q_>& __x, const _s_t_a_c_k_<___T_p_,_ ___S_e_q_>& __y)
│ │ │ │ +350 { return __y < __x; }
│ │ │ │ +351
│ │ │ │ +352 /// Based on operator<
│ │ │ │ +353 template
│ │ │ │ +_3_5_4 inline bool
│ │ │ │ +355 operator<=(const _s_t_a_c_k_<___T_p_,_ ___S_e_q_>& __x, const _s_t_a_c_k_<___T_p_,_ ___S_e_q_>& __y)
│ │ │ │ +356 { return !(__y < __x); }
│ │ │ │ +357
│ │ │ │ +358 /// Based on operator<
│ │ │ │ +359 template
│ │ │ │ +360 inline bool
│ │ │ │ +_3_6_1 operator>=(const _s_t_a_c_k_<___T_p_,_ ___S_e_q_>& __x, const _s_t_a_c_k_<___T_p_,_ ___S_e_q_>& __y)
│ │ │ │ +362 { return !(__x < __y); }
│ │ │ │ +363
│ │ │ │ +364#if __cpp_lib_three_way_comparison
│ │ │ │ +365 template
│ │ │ │ +366 inline compare_three_way_result_t<_Seq>
│ │ │ │ +367 operator<=>(const stack<_Tp, _Seq>& __x, const stack<_Tp, _Seq>& __y)
│ │ │ │ +368 { return __x.c <=> __y.c; }
│ │ │ │ +369#endif
│ │ │ │ +370
│ │ │ │ +371#if __cplusplus >= 201103L
│ │ │ │ +372 template
│ │ │ │ +373 inline
│ │ │ │ +374#if __cplusplus > 201402L || !defined(__STRICT_ANSI__) // c++1z or gnu++11
│ │ │ │ +375 // Constrained free swap overload, see p0185r1
│ │ │ │ +376 typename _e_n_a_b_l_e___i_f_<_____i_s___s_w_a_p_p_a_b_l_e_<___S_e_q_>_:_:_v_a_l_u_e>::type
│ │ │ │ +377#else
│ │ │ │ +378 void
│ │ │ │ +379#endif
│ │ │ │ +380 _s_w_a_p(_s_t_a_c_k_<___T_p_,_ ___S_e_q_>& __x, _s_t_a_c_k_<___T_p_,_ ___S_e_q_>& __y)
│ │ │ │ +381 noexcept(noexcept(__x.swap(__y)))
│ │ │ │ +382 { __x.swap(__y); }
│ │ │ │ +383
│ │ │ │ +384 template
│ │ │ │ +385 struct _u_s_e_s___a_l_l_o_c_a_t_o_r<_s_t_a_c_k<_Tp, _Seq>, _Alloc>
│ │ │ │ +386 : public _u_s_e_s___a_l_l_o_c_a_t_o_r<_Seq, _Alloc>::type { };
│ │ │ │ +387#endif // __cplusplus >= 201103L
│ │ │ │ +388
│ │ │ │ +389_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ +390} // namespace
│ │ │ │ +391
│ │ │ │ +392#endif /* _STL_STACK_H */
│ │ │ │ +_c_o_n_c_e_p_t___c_h_e_c_k_._h
│ │ │ │ +_d_e_b_u_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_0_4
│ │ │ │ +_s_t_d_:_:_s_w_a_p
│ │ │ │ +void swap(any &__x, any &__y) noexcept
│ │ │ │ +Exchange the states of two any objects.
│ │ │ │ +DDeeffiinniittiioonn _a_n_y_:_4_2_8
│ │ │ │ +_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_7
│ │ │ │ _s_t_d
│ │ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ │ +_s_t_d_:_:_t_y_p_e
│ │ │ │ +_s_t_d_:_:_e_n_a_b_l_e___i_f
│ │ │ │ +Define a member typedef type only if a boolean constant is true.
│ │ │ │ +DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_2_1_9_2
│ │ │ │ +_s_t_d_:_:_s_i_z_e___t_y_p_e
│ │ │ │ +_s_t_d_:_:_v_a_l_u_e___t_y_p_e
│ │ │ │ +_s_t_d_:_:_u_s_e_s___a_l_l_o_c_a_t_o_r
│ │ │ │ +Declare uses_allocator so it can be specialized in etc.
│ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y_f_w_d_._h_:_7_2
│ │ │ │ +_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_0
│ │ │ │ +_s_t_d_:_:_s_t_a_c_k_:_:_p_o_p
│ │ │ │ +void pop()
│ │ │ │ +Removes first element.
│ │ │ │ +DDeeffiinniittiioonn _s_t_l___s_t_a_c_k_._h_:_2_7_2
│ │ │ │ +_s_t_d_:_:_s_t_a_c_k_:_:_s_i_z_e
│ │ │ │ +size_type size() const
│ │ │ │ +DDeeffiinniittiioonn _s_t_l___s_t_a_c_k_._h_:_2_0_4
│ │ │ │ +_s_t_d_:_:_s_t_a_c_k_:_:_p_u_s_h
│ │ │ │ +void push(const value_type &__x)
│ │ │ │ +Add data to the top of the stack.
│ │ │ │ +DDeeffiinniittiioonn _s_t_l___s_t_a_c_k_._h_:_2_3_9
│ │ │ │ +_s_t_d_:_:_s_t_a_c_k_:_:_e_m_p_t_y
│ │ │ │ +bool empty() const
│ │ │ │ +DDeeffiinniittiioonn _s_t_l___s_t_a_c_k_._h_:_1_9_9
│ │ │ │ +_s_t_d_:_:_s_t_a_c_k_:_:_t_o_p
│ │ │ │ +const_reference top() const
│ │ │ │ +DDeeffiinniittiioonn _s_t_l___s_t_a_c_k_._h_:_2_2_3
│ │ │ │ +_s_t_d_:_:_s_t_a_c_k_:_:_s_t_a_c_k
│ │ │ │ +stack()
│ │ │ │ +Default constructor creates no elements.
│ │ │ │ +DDeeffiinniittiioonn _s_t_l___s_t_a_c_k_._h_:_1_6_2
│ │ │ │ +_s_t_d_:_:_s_t_a_c_k_:_:_t_o_p
│ │ │ │ +reference top()
│ │ │ │ +DDeeffiinniittiioonn _s_t_l___s_t_a_c_k_._h_:_2_1_2
│ │ │ │ * bbiittss
│ │ │ │ - * _h_a_s_h___b_y_t_e_s_._h
│ │ │ │ + * _s_t_l___s_t_a_c_k_._h
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00326.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: exception_ptr.h File Reference
│ │ │ +libstdc++: stl_numeric.h File Reference
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,75 +48,70 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
Go to the source code of this file.
│ │ │
│ │ │
│ │ │ namespace std
│ │ │
│ │ │
│ │ │ -exception_ptr std::current_exception () noexcept
│ │ │ -template<typename _Ex>
│ │ │ -exception_ptr std::make_exception_ptr (_Ex __ex) noexcept
│ │ │ -void std::__exception_ptr::rethrow_exception (exception_ptr )
│ │ │ -void std::rethrow_exception (exception_ptr )
│ │ │ +template<typename _InputIterator, typename _Tp>
│ │ │ +constexpr _Tp std::accumulate (_InputIterator __first, _InputIterator __last, _Tp __init)
│ │ │ +template<typename _InputIterator, typename _Tp, typename _BinaryOperation>
│ │ │ +constexpr _Tp std::accumulate (_InputIterator __first, _InputIterator __last, _Tp __init, _BinaryOperation __binary_op)
│ │ │ +template<typename _InputIterator, typename _OutputIterator>
│ │ │ +constexpr _OutputIterator std::adjacent_difference (_InputIterator __first, _InputIterator __last, _OutputIterator __result)
│ │ │ +template<typename _InputIterator, typename _OutputIterator, typename _BinaryOperation>
│ │ │ +constexpr _OutputIterator std::adjacent_difference (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryOperation __binary_op)
│ │ │ +template<typename _InputIterator1, typename _InputIterator2, typename _Tp>
│ │ │ +constexpr _Tp std::inner_product (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Tp __init)
│ │ │ +template<typename _InputIterator1, typename _InputIterator2, typename _Tp, typename _BinaryOperation1, typename _BinaryOperation2>
│ │ │ +constexpr _Tp std::inner_product (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Tp __init, _BinaryOperation1 __binary_op1, _BinaryOperation2 __binary_op2)
│ │ │ +template<typename _ForwardIterator, typename _Tp>
│ │ │ +constexpr void std::iota (_ForwardIterator __first, _ForwardIterator __last, _Tp __value)
│ │ │ +template<typename _InputIterator, typename _OutputIterator>
│ │ │ +constexpr _OutputIterator std::partial_sum (_InputIterator __first, _InputIterator __last, _OutputIterator __result)
│ │ │ +template<typename _InputIterator, typename _OutputIterator, typename _BinaryOperation>
│ │ │ +constexpr _OutputIterator std::partial_sum (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryOperation __binary_op)
│ │ │
│ │ │
│ │ │ -
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 <numeric>.
│ │ │
│ │ │ -
Definition in file exception_ptr.h .
│ │ │ +
Definition in file stl_numeric.h .
│ │ │
│ │ │ -
│ │ │ -
◆ _GLIBCXX_EH_PTR_USED
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ - #define _GLIBCXX_EH_PTR_USED
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
◆ rethrow_exception()
│ │ │ +
│ │ │ +
◆ _GLIBCXX_MOVE_IF_20
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
Throw the object pointed to by the exception_ptr.
│ │ │ +
Definition at line 114 of file stl_numeric.h .
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -125,13 +120,13 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,29 +1,55 @@
│ │ │ │ libstdc++
│ │ │ │ -exception_ptr.h File Reference
│ │ │ │ +stl_numeric.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_:_:_____e_x_c_e_p_t_i_o_n___p_t_r_:_:_e_x_c_e_p_t_i_o_n___p_t_r
│ │ │ │ -class _s_t_d_:_:_e_x_c_e_p_t_i_o_n___p_t_r
│ │ │ │ NNaammeessppaacceess
│ │ │ │ namespace _s_t_d
│ │ │ │ +MMaaccrrooss
│ │ │ │ +#define ___G_L_I_B_C_X_X___M_O_V_E___I_F___2_0(_E)
│ │ │ │ FFuunnccttiioonnss
│ │ │ │ -_e_x_c_e_p_t_i_o_n___p_t_r _s_t_d_:_:_c_u_r_r_e_n_t___e_x_c_e_p_t_i_o_n () noexcept
│ │ │ │ -template
│ │ │ │ -_e_x_c_e_p_t_i_o_n___p_t_r _s_t_d_:_:_m_a_k_e___e_x_c_e_p_t_i_o_n___p_t_r (_Ex __ex) noexcept
│ │ │ │ - void _s_t_d_:_:_____e_x_c_e_p_t_i_o_n___p_t_r_:_:_r_e_t_h_r_o_w___e_x_c_e_p_t_i_o_n (_e_x_c_e_p_t_i_o_n___p_t_r)
│ │ │ │ - void _s_t_d_:_:_r_e_t_h_r_o_w___e_x_c_e_p_t_i_o_n (_e_x_c_e_p_t_i_o_n___p_t_r)
│ │ │ │ +template
│ │ │ │ + constexpr _Tp _s_t_d_:_:_a_c_c_u_m_u_l_a_t_e (_InputIterator __first,
│ │ │ │ + _InputIterator __last, _Tp __init)
│ │ │ │ +template
│ │ │ │ + constexpr _Tp _s_t_d_:_:_a_c_c_u_m_u_l_a_t_e (_InputIterator __first,
│ │ │ │ + _InputIterator __last, _Tp __init, _BinaryOperation
│ │ │ │ + __binary_op)
│ │ │ │ +template
│ │ │ │ +constexpr _OutputIterator _s_t_d_:_:_a_d_j_a_c_e_n_t___d_i_f_f_e_r_e_n_c_e (_InputIterator __first,
│ │ │ │ + _InputIterator __last, _OutputIterator __result)
│ │ │ │ +template
│ │ │ │ +constexpr _OutputIterator _s_t_d_:_:_a_d_j_a_c_e_n_t___d_i_f_f_e_r_e_n_c_e (_InputIterator __first,
│ │ │ │ + _InputIterator __last, _OutputIterator __result,
│ │ │ │ + _BinaryOperation __binary_op)
│ │ │ │ +template
│ │ │ │ + constexpr _Tp _s_t_d_:_:_i_n_n_e_r___p_r_o_d_u_c_t (_InputIterator1 __first1,
│ │ │ │ + _InputIterator1 __last1, _InputIterator2 __first2,
│ │ │ │ + _Tp __init)
│ │ │ │ +template
│ │ │ │ + constexpr _Tp _s_t_d_:_:_i_n_n_e_r___p_r_o_d_u_c_t (_InputIterator1 __first1,
│ │ │ │ + _InputIterator1 __last1, _InputIterator2 __first2,
│ │ │ │ + _Tp __init, _BinaryOperation1 __binary_op1,
│ │ │ │ + _BinaryOperation2 __binary_op2)
│ │ │ │ +template
│ │ │ │ + constexpr void _s_t_d_:_:_i_o_t_a (_ForwardIterator __first,
│ │ │ │ + _ForwardIterator __last, _Tp __value)
│ │ │ │ +template
│ │ │ │ +constexpr _OutputIterator _s_t_d_:_:_p_a_r_t_i_a_l___s_u_m (_InputIterator __first,
│ │ │ │ + _InputIterator __last, _OutputIterator __result)
│ │ │ │ +template
│ │ │ │ +constexpr _OutputIterator _s_t_d_:_:_p_a_r_t_i_a_l___s_u_m (_InputIterator __first,
│ │ │ │ + _InputIterator __last, _OutputIterator __result,
│ │ │ │ + _BinaryOperation __binary_op)
│ │ │ │ ********** 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 _e_x_c_e_p_t_i_o_n___p_t_r_._h.
│ │ │ │ +attempt to use it directly. Instead, include .
│ │ │ │ +Definition in file _s_t_l___n_u_m_e_r_i_c_._h.
│ │ │ │ ********** MMaaccrroo DDeeffiinniittiioonn DDooccuummeennttaattiioonn **********
│ │ │ │ -********** _?◆_? __GGLLIIBBCCXXXX__EEHH__PPTTRR__UUSSEEDD **********
│ │ │ │ -#define _GLIBCXX_EH_PTR_USED
│ │ │ │ -Definition at line _4_9 of file _e_x_c_e_p_t_i_o_n___p_t_r_._h.
│ │ │ │ -********** FFuunnccttiioonn DDooccuummeennttaattiioonn **********
│ │ │ │ -********** _?◆_? rreetthhrrooww__eexxcceeppttiioonn(()) **********
│ │ │ │ -void _s_t_d_:_:_r_e_t_h_r_o_w___e_x_c_e_p_t_i_o_n ( _e_x_c_e_p_t_i_o_n___p_t_r )
│ │ │ │ -Throw the object pointed to by the exception_ptr.
│ │ │ │ +********** _?◆_? __GGLLIIBBCCXXXX__MMOOVVEE__IIFF__2200 **********
│ │ │ │ +#define _GLIBCXX_MOVE_IF_20 ( __EE )
│ │ │ │ +Definition at line _1_1_4 of file _s_t_l___n_u_m_e_r_i_c_._h.
│ │ │ │ * bbiittss
│ │ │ │ - * _e_x_c_e_p_t_i_o_n___p_t_r_._h
│ │ │ │ + * _s_t_l___n_u_m_e_r_i_c_._h
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00326.js
│ │ │ ├── js-beautify {}
│ │ │ │ @@ -1,7 +1,11 @@
│ │ │ │ var a00326 = [
│ │ │ │ - ["std::exception_ptr", "a20892.html", null],
│ │ │ │ - ["std::current_exception", "a01573.html#ga02cdcc517fefe661313437aa9356a28f", null],
│ │ │ │ - ["std::make_exception_ptr", "a01573.html#ga200c1d3152b2fd43b206da6c031b9730", null],
│ │ │ │ - ["std::__exception_ptr::rethrow_exception", "a00326.html#a3d868a099252fe5a49e09b53b2d403cc", null],
│ │ │ │ - ["std::rethrow_exception", "a01573.html#ga3d868a099252fe5a49e09b53b2d403cc", null]
│ │ │ │ + ["std::accumulate", "a01593.html#ga1ab9deae5b1fb5b1f44e11200e7ed692", null],
│ │ │ │ + ["std::accumulate", "a01593.html#ga1a36d8691b0b4b72b32ea9ac57156c17", null],
│ │ │ │ + ["std::adjacent_difference", "a01593.html#ga76306a74ff39e25f64d4edb438c09642", null],
│ │ │ │ + ["std::adjacent_difference", "a01593.html#gad9f0dd3e246adea056b3591d776bd761", null],
│ │ │ │ + ["std::inner_product", "a01593.html#gaee19c7558ac11a31ab3bb2dd390f4a82", null],
│ │ │ │ + ["std::inner_product", "a01593.html#gaab0eef2f424aef434aa167c329ef4a24", null],
│ │ │ │ + ["std::iota", "a01593.html#ga854ad160d17fe9e284d784acd491e69f", null],
│ │ │ │ + ["std::partial_sum", "a01593.html#gad80570b71def65f6c121ab87d1a30a2f", null],
│ │ │ │ + ["std::partial_sum", "a01593.html#ga12a68a0208860c08aeefe4101afb86de", null]
│ │ │ │ ];
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00326_source.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: exception_ptr.h Source File
│ │ │ +libstdc++: stl_numeric.h Source File
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,319 +48,463 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
Go to the documentation of this file.
│ │ │ +
Go to the documentation of this file.
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
31 #ifndef _EXCEPTION_PTR_H
│ │ │ -
32 #define _EXCEPTION_PTR_H
│ │ │ -
│ │ │ -
34 #pragma GCC visibility push(default)
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
42 #if __cplusplus >= 201103L
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
46 #ifdef _GLIBCXX_EH_PTR_RELOPS_COMPAT
│ │ │ -
47 # define _GLIBCXX_EH_PTR_USED __attribute__((__used__))
│ │ │ -
│ │ │ -
49 # define _GLIBCXX_EH_PTR_USED
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
57 #define _STL_NUMERIC_H 1
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
63 namespace __exception_ptr
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
76 template<typename _Ex>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
82 namespace __exception_ptr
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
92 void * _M_exception_object;
│ │ │ -
│ │ │ -
94 explicit exception_ptr(
void * __e) _GLIBCXX_USE_NOEXCEPT;
│ │ │ -
│ │ │ -
96 void _M_addref() _GLIBCXX_USE_NOEXCEPT;
│ │ │ -
97 void _M_release() _GLIBCXX_USE_NOEXCEPT;
│ │ │ -
│ │ │ -
99 void *_M_get()
const _GLIBCXX_NOEXCEPT __attribute__ ((__pure__));
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
103 template <
typename _Ex>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
107 exception_ptr() _GLIBCXX_USE_NOEXCEPT;
│ │ │ +
│ │ │ +
64 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ +
│ │ │ +
66 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
72 #if __cplusplus >= 201103L
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
85 template <
typename _ForwardIterator,
typename _Tp>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
88 iota (_ForwardIterator __first, _ForwardIterator __last, _Tp __value)
│ │ │ +
│ │ │ +
│ │ │ +
91 __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
│ │ │ +
│ │ │ +
93 __glibcxx_function_requires(_ConvertibleConcept<_Tp,
│ │ │ +
│ │ │ +
95 __glibcxx_requires_valid_range(__first, __last);
│ │ │ +
│ │ │ +
97 for (; __first != __last; ++__first)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
105 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
107 _GLIBCXX_BEGIN_NAMESPACE_ALGO
│ │ │
│ │ │ -
109 exception_ptr(
const exception_ptr&) _GLIBCXX_USE_NOEXCEPT;
│ │ │ -
│ │ │ -
111 #if __cplusplus >= 201103L
│ │ │ -
112 exception_ptr(nullptr_t) noexcept
│ │ │ -
113 : _M_exception_object(
nullptr )
│ │ │ -
│ │ │ -
│ │ │ -
116 exception_ptr(exception_ptr&& __o) noexcept
│ │ │ -
117 : _M_exception_object(__o._M_exception_object)
│ │ │ -
118 { __o._M_exception_object =
nullptr ; }
│ │ │ -
│ │ │ -
│ │ │ -
121 #if (__cplusplus < 201103L) || defined (_GLIBCXX_EH_PTR_COMPAT)
│ │ │ -
122 typedef void (exception_ptr::*__safe_bool)();
│ │ │ -
│ │ │ -
│ │ │ -
125 exception_ptr(__safe_bool) _GLIBCXX_USE_NOEXCEPT;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
129 operator=(
const exception_ptr&) _GLIBCXX_USE_NOEXCEPT;
│ │ │ -
│ │ │ -
131 #if __cplusplus >= 201103L
│ │ │ -
│ │ │ -
133 operator=(exception_ptr&& __o)
noexcept
│ │ │ -
│ │ │ -
135 exception_ptr(
static_cast< exception_ptr&&
> (__o)).swap(*
this );
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
109 #if __cplusplus > 201703L
│ │ │ +
│ │ │ +
│ │ │ +
112 # define _GLIBCXX_MOVE_IF_20(_E) std::move(_E)
│ │ │ +
│ │ │ +
114 # define _GLIBCXX_MOVE_IF_20(_E) _E
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
131 template <
typename _InputIterator,
typename _Tp>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
134 accumulate (_InputIterator __first, _InputIterator __last, _Tp __init)
│ │ │ +
│ │ │ +
│ │ │ +
137 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
│ │ │ +
138 __glibcxx_requires_valid_range(__first, __last);
│ │ │
│ │ │ -
140 ~exception_ptr() _GLIBCXX_USE_NOEXCEPT;
│ │ │ -
│ │ │ -
│ │ │ -
143 swap(exception_ptr&) _GLIBCXX_USE_NOEXCEPT;
│ │ │ -
│ │ │ -
145 #ifdef _GLIBCXX_EH_PTR_COMPAT
│ │ │ -
│ │ │ -
147 void _M_safe_bool_dummy() _GLIBCXX_USE_NOEXCEPT
│ │ │ -
148 __attribute__ ((__const__));
│ │ │ -
149 bool operator!()
const _GLIBCXX_USE_NOEXCEPT
│ │ │ -
150 __attribute__ ((__pure__));
│ │ │ -
151 operator __safe_bool()
const _GLIBCXX_USE_NOEXCEPT;
│ │ │ -
│ │ │ -
│ │ │ -
154 #if __cplusplus >= 201103L
│ │ │ -
155 explicit operator bool()
const noexcept
│ │ │ -
156 {
return _M_exception_object; }
│ │ │ -
│ │ │ -
│ │ │ -
159 #if __cpp_impl_three_way_comparison >= 201907L \
│ │ │ -
160 && ! defined _GLIBCXX_EH_PTR_RELOPS_COMPAT
│ │ │ -
│ │ │ -
162 operator==(
const exception_ptr&,
const exception_ptr&)
noexcept =
default ;
│ │ │ -
│ │ │ -
164 friend _GLIBCXX_EH_PTR_USED
bool
│ │ │ -
165 operator==(
const exception_ptr& __x,
const exception_ptr& __y)
│ │ │ -
166 _GLIBCXX_USE_NOEXCEPT
│ │ │ -
167 {
return __x._M_exception_object == __y._M_exception_object; }
│ │ │ -
│ │ │ -
169 friend _GLIBCXX_EH_PTR_USED
bool
│ │ │ -
170 operator!=(
const exception_ptr& __x,
const exception_ptr& __y)
│ │ │ -
171 _GLIBCXX_USE_NOEXCEPT
│ │ │ -
172 {
return __x._M_exception_object != __y._M_exception_object; }
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
176 __cxa_exception_type()
const _GLIBCXX_USE_NOEXCEPT
│ │ │ -
177 __attribute__ ((__pure__));
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
182 exception_ptr::exception_ptr() _GLIBCXX_USE_NOEXCEPT
│ │ │ -
183 : _M_exception_object(0)
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
189 _GLIBCXX_USE_NOEXCEPT
│ │ │ -
190 : _M_exception_object(__other._M_exception_object)
│ │ │ -
│ │ │ -
192 if (_M_exception_object)
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
198 exception_ptr::~exception_ptr() _GLIBCXX_USE_NOEXCEPT
│ │ │ -
│ │ │ -
200 if (_M_exception_object)
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
206 exception_ptr::operator=(
const exception_ptr & __other) _GLIBCXX_USE_NOEXCEPT
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
214 exception_ptr::swap(
exception_ptr &__other) _GLIBCXX_USE_NOEXCEPT
│ │ │ -
│ │ │ -
216 void *__tmp = _M_exception_object;
│ │ │ -
217 _M_exception_object = __other._M_exception_object;
│ │ │ -
218 __other._M_exception_object = __tmp;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
224 { __lhs.swap(__rhs); }
│ │ │ -
│ │ │ -
│ │ │ -
227 template <
typename _Ex>
│ │ │ -
│ │ │ -
229 __dest_thunk(
void * __x)
│ │ │ -
230 {
static_cast< _Ex*
> (__x)->~_Ex(); }
│ │ │ -
│ │ │ +
140 for (; __first != __last; ++__first)
│ │ │ +
141 __init = _GLIBCXX_MOVE_IF_20(__init) + *__first;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
158 template <
typename _InputIterator,
typename _Tp,
typename _BinaryOperation>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
161 accumulate (_InputIterator __first, _InputIterator __last, _Tp __init,
│ │ │ +
162 _BinaryOperation __binary_op)
│ │ │ +
│ │ │ +
│ │ │ +
165 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
│ │ │ +
166 __glibcxx_requires_valid_range(__first, __last);
│ │ │ +
│ │ │ +
168 for (; __first != __last; ++__first)
│ │ │ +
169 __init = __binary_op(_GLIBCXX_MOVE_IF_20(__init), *__first);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
187 template <
typename _InputIterator1,
typename _InputIterator2,
typename _Tp>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
191 _InputIterator2 __first2, _Tp __init)
│ │ │ +
│ │ │ +
│ │ │ +
194 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
│ │ │ +
195 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
│ │ │ +
196 __glibcxx_requires_valid_range(__first1, __last1);
│ │ │ +
│ │ │ +
198 for (; __first1 != __last1; ++__first1, (void)++__first2)
│ │ │ +
199 __init = _GLIBCXX_MOVE_IF_20(__init) + (*__first1 * *__first2);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
219 template <
typename _InputIterator1,
typename _InputIterator2,
typename _Tp,
│ │ │ +
220 typename _BinaryOperation1,
typename _BinaryOperation2>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
224 _InputIterator2 __first2, _Tp __init,
│ │ │ +
225 _BinaryOperation1 __binary_op1,
│ │ │ +
226 _BinaryOperation2 __binary_op2)
│ │ │ +
│ │ │ +
│ │ │ +
229 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
│ │ │ +
230 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
│ │ │ +
231 __glibcxx_requires_valid_range(__first1, __last1);
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
236 template <
typename _Ex>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
240 #if __cpp_exceptions && __cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI \
│ │ │ -
241 && __cplusplus >= 201103L
│ │ │ -
242 using _Ex2 =
typename remove_reference<_Ex>::type;
│ │ │ -
243 void * __e = __cxxabiv1::__cxa_allocate_exception(
sizeof (_Ex));
│ │ │ -
244 (void) __cxxabiv1::__cxa_init_primary_exception(
│ │ │ -
│ │ │ -
246 __exception_ptr::__dest_thunk<_Ex2>);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
254 __cxxabiv1::__cxa_free_exception(__e);
│ │ │ -
│ │ │ -
│ │ │ -
257 #elif __cpp_exceptions
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
271 #undef _GLIBCXX_EH_PTR_USED
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
278 #pragma GCC visibility pop
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
│ │ │ -
exception_ptr current_exception() noexcept
│ │ │ -
exception_ptr make_exception_ptr(_Ex) noexcept
Obtain an exception_ptr pointing to a copy of the supplied object.
│ │ │ -
void rethrow_exception(exception_ptr)
Throw the object pointed to by the exception_ptr.
│ │ │ +
233 for (; __first1 != __last1; ++__first1, (void)++__first2)
│ │ │ +
234 __init = __binary_op1(_GLIBCXX_MOVE_IF_20(__init),
│ │ │ +
235 __binary_op2(*__first1, *__first2));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
253 template <
typename _InputIterator,
typename _OutputIterator>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
257 _OutputIterator __result)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
262 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
│ │ │ +
263 __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
│ │ │ +
│ │ │ +
265 __glibcxx_requires_valid_range(__first, __last);
│ │ │ +
│ │ │ +
267 if (__first == __last)
│ │ │ +
│ │ │ +
269 _ValueType __value = *__first;
│ │ │ +
│ │ │ +
271 while (++__first != __last)
│ │ │ +
│ │ │ +
273 __value = _GLIBCXX_MOVE_IF_20(__value) + *__first;
│ │ │ +
274 *++__result = __value;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
294 template <
typename _InputIterator,
typename _OutputIterator,
│ │ │ +
295 typename _BinaryOperation>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
299 _OutputIterator __result, _BinaryOperation __binary_op)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
304 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
│ │ │ +
305 __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
│ │ │ +
│ │ │ +
307 __glibcxx_requires_valid_range(__first, __last);
│ │ │ +
│ │ │ +
309 if (__first == __last)
│ │ │ +
│ │ │ +
311 _ValueType __value = *__first;
│ │ │ +
│ │ │ +
313 while (++__first != __last)
│ │ │ +
│ │ │ +
315 __value = __binary_op(_GLIBCXX_MOVE_IF_20(__value), *__first);
│ │ │ +
316 *++__result = __value;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
335 template <
typename _InputIterator,
typename _OutputIterator>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
339 _InputIterator __last, _OutputIterator __result)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
344 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
│ │ │ +
345 __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
│ │ │ +
│ │ │ +
347 __glibcxx_requires_valid_range(__first, __last);
│ │ │ +
│ │ │ +
349 if (__first == __last)
│ │ │ +
│ │ │ +
351 _ValueType __value = *__first;
│ │ │ +
│ │ │ +
353 while (++__first != __last)
│ │ │ +
│ │ │ +
355 _ValueType __tmp = *__first;
│ │ │ +
356 *++__result = __tmp - _GLIBCXX_MOVE_IF_20(__value);
│ │ │ +
357 __value = _GLIBCXX_MOVE(__tmp);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
378 template <
typename _InputIterator,
typename _OutputIterator,
│ │ │ +
379 typename _BinaryOperation>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
383 _OutputIterator __result, _BinaryOperation __binary_op)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
388 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
│ │ │ +
389 __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
│ │ │ +
│ │ │ +
391 __glibcxx_requires_valid_range(__first, __last);
│ │ │ +
│ │ │ +
393 if (__first == __last)
│ │ │ +
│ │ │ +
395 _ValueType __value = *__first;
│ │ │ +
│ │ │ +
397 while (++__first != __last)
│ │ │ +
│ │ │ +
399 _ValueType __tmp = *__first;
│ │ │ +
400 *++__result = __binary_op(__tmp, _GLIBCXX_MOVE_IF_20(__value));
│ │ │ +
401 __value = _GLIBCXX_MOVE(__tmp);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
408 #undef _GLIBCXX_MOVE_IF_20
│ │ │ +
│ │ │ +
410 _GLIBCXX_END_NAMESPACE_ALGO
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
constexpr _Tp accumulate(_InputIterator __first, _InputIterator __last, _Tp __init)
Accumulate values in a range.
│ │ │ +
constexpr _OutputIterator adjacent_difference(_InputIterator __first, _InputIterator __last, _OutputIterator __result)
Return differences between adjacent values.
│ │ │ +
constexpr void iota(_ForwardIterator __first, _ForwardIterator __last, _Tp __value)
Create a range of sequentially increasing values.
│ │ │ +
constexpr _OutputIterator partial_sum(_InputIterator __first, _InputIterator __last, _OutputIterator __result)
Return list of partial sums.
│ │ │ +
constexpr _Tp inner_product(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Tp __init)
Compute inner product of two ranges.
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ -
│ │ │ -
An opaque pointer to an arbitrary exception.
│ │ │ +
Traits class for iterators.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,315 +1,452 @@
│ │ │ │ libstdc++
│ │ │ │ -exception_ptr.h
│ │ │ │ +stl_numeric.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// Exception Handling support header (exception_ptr class) for -*- C++ -*-
│ │ │ │ +1// Numeric functions implementation -*- C++ -*-
│ │ │ │ 2
│ │ │ │ -3// Copyright (C) 2008-2021 Free Software Foundation, Inc.
│ │ │ │ +3// Copyright (C) 2001-2021 Free Software Foundation, Inc.
│ │ │ │ 4//
│ │ │ │ -5// This file is part of GCC.
│ │ │ │ -6//
│ │ │ │ -7// GCC is free software; you can redistribute it and/or modify
│ │ │ │ -8// it under the terms of the GNU General Public License as published by
│ │ │ │ -9// the Free Software Foundation; either version 3, or (at your option)
│ │ │ │ -10// any later version.
│ │ │ │ -11//
│ │ │ │ -12// GCC is distributed in the hope that it will be useful,
│ │ │ │ -13// but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
│ │ │ │ -15// GNU General Public License for more details.
│ │ │ │ -16//
│ │ │ │ -17// Under Section 7 of GPL version 3, you are granted additional
│ │ │ │ -18// permissions described in the GCC Runtime Library Exception, version
│ │ │ │ -19// 3.1, as published by the Free Software Foundation.
│ │ │ │ -20
│ │ │ │ -21// You should have received a copy of the GNU General Public License and
│ │ │ │ -22// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │ -23// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │ -24//
.
│ │ │ │ -25
│ │ │ │ -26/** @file bits/exception_ptr.h
│ │ │ │ -27 * This is an internal header file, included by other library headers.
│ │ │ │ -28 * Do not attempt to use it directly. @headername{exception}
│ │ │ │ -29 */
│ │ │ │ -30
│ │ │ │ -31#ifndef _EXCEPTION_PTR_H
│ │ │ │ -32#define _EXCEPTION_PTR_H
│ │ │ │ -33
│ │ │ │ -34#pragma GCC visibility push(default)
│ │ │ │ -35
│ │ │ │ -36#include <_b_i_t_s_/_c_+_+_c_o_n_f_i_g_._h>
│ │ │ │ -37#include <_b_i_t_s_/_e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h>
│ │ │ │ -38#include <_b_i_t_s_/_c_x_x_a_b_i___i_n_i_t___e_x_c_e_p_t_i_o_n_._h>
│ │ │ │ -39#include <_t_y_p_e_i_n_f_o>
│ │ │ │ -40#include <_n_e_w>
│ │ │ │ -41
│ │ │ │ -42#if __cplusplus >= 201103L
│ │ │ │ -43# include <_b_i_t_s_/_m_o_v_e_._h>
│ │ │ │ -44#endif
│ │ │ │ -45
│ │ │ │ -46#ifdef _GLIBCXX_EH_PTR_RELOPS_COMPAT
│ │ │ │ -47# define _GLIBCXX_EH_PTR_USED __attribute__((__used__))
│ │ │ │ -48#else
│ │ │ │ -49# define _GLIBCXX_EH_PTR_USED
│ │ │ │ -50#endif
│ │ │ │ -51
│ │ │ │ -52extern "C++" {
│ │ │ │ -53
│ │ │ │ -54namespace _s_t_d
│ │ │ │ -55{
│ │ │ │ -56 class _t_y_p_e___i_n_f_o;
│ │ │ │ -57
│ │ │ │ -58 /**
│ │ │ │ -59 * @addtogroup exceptions
│ │ │ │ -60 * @{
│ │ │ │ -61 */
│ │ │ │ +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
│ │ │ │ +11// This library is distributed in the hope that it will be useful,
│ │ │ │ +12// but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
│ │ │ │ +14// GNU General Public License for more details.
│ │ │ │ +15
│ │ │ │ +16// Under Section 7 of GPL version 3, you are granted additional
│ │ │ │ +17// permissions described in the GCC Runtime Library Exception, version
│ │ │ │ +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/*
│ │ │ │ +26 *
│ │ │ │ +27 * Copyright (c) 1994
│ │ │ │ +28 * Hewlett-Packard Company
│ │ │ │ +29 *
│ │ │ │ +30 * Permission to use, copy, modify, distribute and sell this software
│ │ │ │ +31 * and its documentation for any purpose is hereby granted without fee,
│ │ │ │ +32 * provided that the above copyright notice appear in all copies and
│ │ │ │ +33 * that both that copyright notice and this permission notice appear
│ │ │ │ +34 * in supporting documentation. Hewlett-Packard Company makes no
│ │ │ │ +35 * representations about the suitability of this software for any
│ │ │ │ +36 * purpose. It is provided "as is" without express or implied warranty.
│ │ │ │ +37 *
│ │ │ │ +38 *
│ │ │ │ +39 * Copyright (c) 1996,1997
│ │ │ │ +40 * Silicon Graphics Computer Systems, Inc.
│ │ │ │ +41 *
│ │ │ │ +42 * Permission to use, copy, modify, distribute and sell this software
│ │ │ │ +43 * and its documentation for any purpose is hereby granted without fee,
│ │ │ │ +44 * provided that the above copyright notice appear in all copies and
│ │ │ │ +45 * that both that copyright notice and this permission notice appear
│ │ │ │ +46 * in supporting documentation. Silicon Graphics makes no
│ │ │ │ +47 * representations about the suitability of this software for any
│ │ │ │ +48 * purpose. It is provided "as is" without express or implied warranty.
│ │ │ │ +49 */
│ │ │ │ +50
│ │ │ │ +51/** @file bits/stl_numeric.h
│ │ │ │ +52 * This is an internal header file, included by other library headers.
│ │ │ │ +53 * Do not attempt to use it directly. @headername{numeric}
│ │ │ │ +54 */
│ │ │ │ +55
│ │ │ │ +56#ifndef _STL_NUMERIC_H
│ │ │ │ +57#define _STL_NUMERIC_H 1
│ │ │ │ +58
│ │ │ │ +59#include <_b_i_t_s_/_c_o_n_c_e_p_t___c_h_e_c_k_._h>
│ │ │ │ +60#include <_d_e_b_u_g_/_d_e_b_u_g_._h>
│ │ │ │ +61#include <_b_i_t_s_/_m_o_v_e_._h> // For _GLIBCXX_MOVE
│ │ │ │ 62
│ │ │ │ -63 namespace __exception_ptr
│ │ │ │ -64 {
│ │ │ │ -65 class _e_x_c_e_p_t_i_o_n___p_t_r;
│ │ │ │ -66 }
│ │ │ │ +63
│ │ │ │ +64namespace _s_t_d _GLIBCXX_VISIBILITY(default)
│ │ │ │ +65{
│ │ │ │ +66_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ 67
│ │ │ │ -68 using _____e_x_c_e_p_t_i_o_n___p_t_r_:_:_e_x_c_e_p_t_i_o_n___p_t_r;
│ │ │ │ -69
│ │ │ │ -70 /** Obtain an exception_ptr to the currently handled exception. If there
│ │ │ │ -71 * is none, or the currently handled exception is foreign, return the null
│ │ │ │ -72 * value.
│ │ │ │ -73 */
│ │ │ │ -_7_4 _e_x_c_e_p_t_i_o_n___p_t_r _c_u_r_r_e_n_t___e_x_c_e_p_t_i_o_n() _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ -75
│ │ │ │ -76 template
│ │ │ │ -77 _e_x_c_e_p_t_i_o_n___p_t_r _m_a_k_e___e_x_c_e_p_t_i_o_n___p_t_r(_Ex) _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ -78
│ │ │ │ -79 /// Throw the object pointed to by the exception_ptr.
│ │ │ │ -_8_0 void _r_e_t_h_r_o_w___e_x_c_e_p_t_i_o_n(_e_x_c_e_p_t_i_o_n___p_t_r) __attribute__ ((__noreturn__));
│ │ │ │ -81
│ │ │ │ -82 namespace __exception_ptr
│ │ │ │ -83 {
│ │ │ │ -84 using _s_t_d_:_:_r_e_t_h_r_o_w___e_x_c_e_p_t_i_o_n;
│ │ │ │ -85
│ │ │ │ -86 /**
│ │ │ │ -87 * @brief An opaque pointer to an arbitrary exception.
│ │ │ │ -88 * @ingroup exceptions
│ │ │ │ -89 */
│ │ │ │ -_9_0 class exception_ptr
│ │ │ │ -91 {
│ │ │ │ -92 void* _M_exception_object;
│ │ │ │ -93
│ │ │ │ -94 explicit exception_ptr(void* __e) _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ -95
│ │ │ │ -96 void _M_addref() _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ -97 void _M_release() _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ -98
│ │ │ │ -99 void *_M_get() const _GLIBCXX_NOEXCEPT __attribute__ ((__pure__));
│ │ │ │ -100
│ │ │ │ -101 friend exception_ptr _s_t_d_:_:_c_u_r_r_e_n_t___e_x_c_e_p_t_i_o_n() _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ -102 friend void _s_t_d_:_:_r_e_t_h_r_o_w___e_x_c_e_p_t_i_o_n(exception_ptr);
│ │ │ │ -103 template
│ │ │ │ -104 friend exception_ptr _s_t_d_:_:_m_a_k_e___e_x_c_e_p_t_i_o_n___p_t_r(_Ex) _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ -105
│ │ │ │ -106 public:
│ │ │ │ -107 exception_ptr() _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ +68 /** @defgroup numeric_ops Generalized Numeric operations
│ │ │ │ +69 * @ingroup algorithms
│ │ │ │ +70 */
│ │ │ │ +71
│ │ │ │ +72#if __cplusplus >= 201103L
│ │ │ │ +73 /**
│ │ │ │ +74 * @brief Create a range of sequentially increasing values.
│ │ │ │ +75 *
│ │ │ │ +76 * For each element in the range @p [first,last) assigns @p value and
│ │ │ │ +77 * increments @p value as if by @p ++value.
│ │ │ │ +78 *
│ │ │ │ +79 * @param __first Start of range.
│ │ │ │ +80 * @param __last End of range.
│ │ │ │ +81 * @param __value Starting value.
│ │ │ │ +82 * @return Nothing.
│ │ │ │ +83 * @ingroup numeric_ops
│ │ │ │ +84 */
│ │ │ │ +85 template
│ │ │ │ +86 _GLIBCXX20_CONSTEXPR
│ │ │ │ +87 void
│ │ │ │ +_8_8 _i_o_t_a(_ForwardIterator __first, _ForwardIterator __last, _Tp __value)
│ │ │ │ +89 {
│ │ │ │ +90 // concept requirements
│ │ │ │ +91 __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
│ │ │ │ +92 _ForwardIterator>)
│ │ │ │ +93 __glibcxx_function_requires(_ConvertibleConcept<_Tp,
│ │ │ │ +94 typename _i_t_e_r_a_t_o_r___t_r_a_i_t_s_<___F_o_r_w_a_r_d_I_t_e_r_a_t_o_r_>_:_:_v_a_l_u_e___t_y_p_e>)
│ │ │ │ +95 __glibcxx_requires_valid_range(__first, __last);
│ │ │ │ +96
│ │ │ │ +97 for (; __first != __last; ++__first)
│ │ │ │ +98 {
│ │ │ │ +99 *__first = __value;
│ │ │ │ +100 ++__value;
│ │ │ │ +101 }
│ │ │ │ +102 }
│ │ │ │ +103#endif
│ │ │ │ +104
│ │ │ │ +105_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ +106
│ │ │ │ +107_GLIBCXX_BEGIN_NAMESPACE_ALGO
│ │ │ │ 108
│ │ │ │ -109 exception_ptr(const exception_ptr&) _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ -110
│ │ │ │ -111#if __cplusplus >= 201103L
│ │ │ │ -112 exception_ptr(nullptr_t) noexcept
│ │ │ │ -113 : _M_exception_object(nullptr)
│ │ │ │ -114 { }
│ │ │ │ -115
│ │ │ │ -116 exception_ptr(exception_ptr&& __o) noexcept
│ │ │ │ -117 : _M_exception_object(__o._M_exception_object)
│ │ │ │ -118 { __o._M_exception_object = nullptr; }
│ │ │ │ -119#endif
│ │ │ │ -120
│ │ │ │ -121#if (__cplusplus < 201103L) || defined (_GLIBCXX_EH_PTR_COMPAT)
│ │ │ │ -122 typedef void (exception_ptr::*__safe_bool)();
│ │ │ │ -123
│ │ │ │ -124 // For construction from nullptr or 0.
│ │ │ │ -125 exception_ptr(__safe_bool) _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ -126#endif
│ │ │ │ -127
│ │ │ │ -128 exception_ptr&
│ │ │ │ -129 operator=(const exception_ptr&) _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ -130
│ │ │ │ -131#if __cplusplus >= 201103L
│ │ │ │ -132 exception_ptr&
│ │ │ │ -133 operator=(exception_ptr&& __o) noexcept
│ │ │ │ -134 {
│ │ │ │ -135 exception_ptr(static_cast(__o)).swap(*this);
│ │ │ │ -136 return *this;
│ │ │ │ -137 }
│ │ │ │ -138#endif
│ │ │ │ +109#if __cplusplus > 201703L
│ │ │ │ +110// _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ +111// DR 2055. std::move in std::accumulate and other algorithms
│ │ │ │ +112# define _GLIBCXX_MOVE_IF_20(_E) std::move(_E)
│ │ │ │ +113#else
│ │ │ │ +114# define _GLIBCXX_MOVE_IF_20(_E) _E
│ │ │ │ +115#endif
│ │ │ │ +116
│ │ │ │ +117 /// @addtogroup numeric_ops
│ │ │ │ +118 /// @{
│ │ │ │ +119
│ │ │ │ +120 /**
│ │ │ │ +121 * @brief Accumulate values in a range.
│ │ │ │ +122 *
│ │ │ │ +123 * Accumulates the values in the range [first,last) using operator+(). The
│ │ │ │ +124 * initial value is @a init. The values are processed in order.
│ │ │ │ +125 *
│ │ │ │ +126 * @param __first Start of range.
│ │ │ │ +127 * @param __last End of range.
│ │ │ │ +128 * @param __init Starting value to add other values to.
│ │ │ │ +129 * @return The final sum.
│ │ │ │ +130 */
│ │ │ │ +131 template
│ │ │ │ +132 _GLIBCXX20_CONSTEXPR
│ │ │ │ +133 inline _Tp
│ │ │ │ +_1_3_4 _a_c_c_u_m_u_l_a_t_e(_InputIterator __first, _InputIterator __last, _Tp __init)
│ │ │ │ +135 {
│ │ │ │ +136 // concept requirements
│ │ │ │ +137 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
│ │ │ │ +138 __glibcxx_requires_valid_range(__first, __last);
│ │ │ │ 139
│ │ │ │ -140 ~exception_ptr() _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ -141
│ │ │ │ -142 void
│ │ │ │ -143 swap(exception_ptr&) _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ +140 for (; __first != __last; ++__first)
│ │ │ │ +141 __init = _GLIBCXX_MOVE_IF_20(__init) + *__first;
│ │ │ │ +142 return __init;
│ │ │ │ +143 }
│ │ │ │ 144
│ │ │ │ -145#ifdef _GLIBCXX_EH_PTR_COMPAT
│ │ │ │ -146 // Retained for compatibility with CXXABI_1.3.
│ │ │ │ -147 void _M_safe_bool_dummy() _GLIBCXX_USE_NOEXCEPT
│ │ │ │ -148 __attribute__ ((__const__));
│ │ │ │ -149 bool operator!() const _GLIBCXX_USE_NOEXCEPT
│ │ │ │ -150 __attribute__ ((__pure__));
│ │ │ │ -151 operator __safe_bool() const _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ -152#endif
│ │ │ │ -153
│ │ │ │ -154#if __cplusplus >= 201103L
│ │ │ │ -155 explicit operator bool() const noexcept
│ │ │ │ -156 { return _M_exception_object; }
│ │ │ │ -157#endif
│ │ │ │ -158
│ │ │ │ -159#if __cpp_impl_three_way_comparison >= 201907L \
│ │ │ │ -160 && ! defined _GLIBCXX_EH_PTR_RELOPS_COMPAT
│ │ │ │ -161 friend bool
│ │ │ │ -162 operator==(const exception_ptr&, const exception_ptr&) noexcept = default;
│ │ │ │ -163#else
│ │ │ │ -164 friend _GLIBCXX_EH_PTR_USED bool
│ │ │ │ -165 operator==(const exception_ptr& __x, const exception_ptr& __y)
│ │ │ │ -166 _GLIBCXX_USE_NOEXCEPT
│ │ │ │ -167 { return __x._M_exception_object == __y._M_exception_object; }
│ │ │ │ -168
│ │ │ │ -169 friend _GLIBCXX_EH_PTR_USED bool
│ │ │ │ -170 operator!=(const exception_ptr& __x, const exception_ptr& __y)
│ │ │ │ -171 _GLIBCXX_USE_NOEXCEPT
│ │ │ │ -172 { return __x._M_exception_object != __y._M_exception_object; }
│ │ │ │ -173#endif
│ │ │ │ -174
│ │ │ │ -175 const class _s_t_d_:_:_t_y_p_e___i_n_f_o*
│ │ │ │ -176 __cxa_exception_type() const _GLIBCXX_USE_NOEXCEPT
│ │ │ │ -177 __attribute__ ((__pure__));
│ │ │ │ -178 };
│ │ │ │ -179
│ │ │ │ -180 _GLIBCXX_EH_PTR_USED
│ │ │ │ -181 inline
│ │ │ │ -182 exception_ptr::exception_ptr() _GLIBCXX_USE_NOEXCEPT
│ │ │ │ -183 : _M_exception_object(0)
│ │ │ │ -184 { }
│ │ │ │ -185
│ │ │ │ -186 _GLIBCXX_EH_PTR_USED
│ │ │ │ -187 inline
│ │ │ │ -188 exception_ptr::exception_ptr(const _e_x_c_e_p_t_i_o_n___p_t_r& __other)
│ │ │ │ -189 _GLIBCXX_USE_NOEXCEPT
│ │ │ │ -190 : _M_exception_object(__other._M_exception_object)
│ │ │ │ -191 {
│ │ │ │ -192 if (_M_exception_object)
│ │ │ │ -193 _M_addref();
│ │ │ │ -194 }
│ │ │ │ -195
│ │ │ │ -196 _GLIBCXX_EH_PTR_USED
│ │ │ │ -197 inline
│ │ │ │ -198 exception_ptr::~exception_ptr() _GLIBCXX_USE_NOEXCEPT
│ │ │ │ -199 {
│ │ │ │ -200 if (_M_exception_object)
│ │ │ │ -201 _M_release();
│ │ │ │ -202 }
│ │ │ │ -203
│ │ │ │ -204 _GLIBCXX_EH_PTR_USED
│ │ │ │ -205 inline _e_x_c_e_p_t_i_o_n___p_t_r&
│ │ │ │ -206 exception_ptr::operator=(const _e_x_c_e_p_t_i_o_n___p_t_r& __other)
│ │ │ │ -_GLIBCXX_USE_NOEXCEPT
│ │ │ │ -207 {
│ │ │ │ -208 _e_x_c_e_p_t_i_o_n___p_t_r(__other).swap(*this);
│ │ │ │ -209 return *this;
│ │ │ │ -210 }
│ │ │ │ -211
│ │ │ │ -212 _GLIBCXX_EH_PTR_USED
│ │ │ │ -213 inline void
│ │ │ │ -214 exception_ptr::swap(_e_x_c_e_p_t_i_o_n___p_t_r &__other) _GLIBCXX_USE_NOEXCEPT
│ │ │ │ -215 {
│ │ │ │ -216 void *__tmp = _M_exception_object;
│ │ │ │ -217 _M_exception_object = __other._M_exception_object;
│ │ │ │ -218 __other._M_exception_object = __tmp;
│ │ │ │ -219 }
│ │ │ │ -220
│ │ │ │ -221 /// @relates exception_ptr
│ │ │ │ -222 inline void
│ │ │ │ -223 swap(_e_x_c_e_p_t_i_o_n___p_t_r& __lhs, _e_x_c_e_p_t_i_o_n___p_t_r& __rhs)
│ │ │ │ -224 { __lhs.swap(__rhs); }
│ │ │ │ -225
│ │ │ │ -226 /// @cond undocumented
│ │ │ │ -227 template
│ │ │ │ -228 inline void
│ │ │ │ -229 __dest_thunk(void* __x)
│ │ │ │ -230 { static_cast<_Ex*>(__x)->~_Ex(); }
│ │ │ │ -231 /// @endcond
│ │ │ │ +145 /**
│ │ │ │ +146 * @brief Accumulate values in a range with operation.
│ │ │ │ +147 *
│ │ │ │ +148 * Accumulates the values in the range `[first,last)` using the function
│ │ │ │ +149 * object `__binary_op`. The initial value is `__init`. The values are
│ │ │ │ +150 * processed in order.
│ │ │ │ +151 *
│ │ │ │ +152 * @param __first Start of range.
│ │ │ │ +153 * @param __last End of range.
│ │ │ │ +154 * @param __init Starting value to add other values to.
│ │ │ │ +155 * @param __binary_op Function object to accumulate with.
│ │ │ │ +156 * @return The final sum.
│ │ │ │ +157 */
│ │ │ │ +158 template
│ │ │ │ +159 _GLIBCXX20_CONSTEXPR
│ │ │ │ +160 inline _Tp
│ │ │ │ +_1_6_1 _a_c_c_u_m_u_l_a_t_e(_InputIterator __first, _InputIterator __last, _Tp __init,
│ │ │ │ +162 _BinaryOperation __binary_op)
│ │ │ │ +163 {
│ │ │ │ +164 // concept requirements
│ │ │ │ +165 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
│ │ │ │ +166 __glibcxx_requires_valid_range(__first, __last);
│ │ │ │ +167
│ │ │ │ +168 for (; __first != __last; ++__first)
│ │ │ │ +169 __init = __binary_op(_GLIBCXX_MOVE_IF_20(__init), *__first);
│ │ │ │ +170 return __init;
│ │ │ │ +171 }
│ │ │ │ +172
│ │ │ │ +173 /**
│ │ │ │ +174 * @brief Compute inner product of two ranges.
│ │ │ │ +175 *
│ │ │ │ +176 * Starting with an initial value of @p __init, multiplies successive
│ │ │ │ +177 * elements from the two ranges and adds each product into the accumulated
│ │ │ │ +178 * value using operator+(). The values in the ranges are processed in
│ │ │ │ +179 * order.
│ │ │ │ +180 *
│ │ │ │ +181 * @param __first1 Start of range 1.
│ │ │ │ +182 * @param __last1 End of range 1.
│ │ │ │ +183 * @param __first2 Start of range 2.
│ │ │ │ +184 * @param __init Starting value to add other values to.
│ │ │ │ +185 * @return The final inner product.
│ │ │ │ +186 */
│ │ │ │ +187 template
│ │ │ │ +188 _GLIBCXX20_CONSTEXPR
│ │ │ │ +189 inline _Tp
│ │ │ │ +_1_9_0 _i_n_n_e_r___p_r_o_d_u_c_t(_InputIterator1 __first1, _InputIterator1 __last1,
│ │ │ │ +191 _InputIterator2 __first2, _Tp __init)
│ │ │ │ +192 {
│ │ │ │ +193 // concept requirements
│ │ │ │ +194 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
│ │ │ │ +195 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
│ │ │ │ +196 __glibcxx_requires_valid_range(__first1, __last1);
│ │ │ │ +197
│ │ │ │ +198 for (; __first1 != __last1; ++__first1, (void)++__first2)
│ │ │ │ +199 __init = _GLIBCXX_MOVE_IF_20(__init) + (*__first1 * *__first2);
│ │ │ │ +200 return __init;
│ │ │ │ +201 }
│ │ │ │ +202
│ │ │ │ +203 /**
│ │ │ │ +204 * @brief Compute inner product of two ranges.
│ │ │ │ +205 *
│ │ │ │ +206 * Starting with an initial value of @p __init, applies @p __binary_op2 to
│ │ │ │ +207 * successive elements from the two ranges and accumulates each result into
│ │ │ │ +208 * the accumulated value using @p __binary_op1. The values in the ranges are
│ │ │ │ +209 * processed in order.
│ │ │ │ +210 *
│ │ │ │ +211 * @param __first1 Start of range 1.
│ │ │ │ +212 * @param __last1 End of range 1.
│ │ │ │ +213 * @param __first2 Start of range 2.
│ │ │ │ +214 * @param __init Starting value to add other values to.
│ │ │ │ +215 * @param __binary_op1 Function object to accumulate with.
│ │ │ │ +216 * @param __binary_op2 Function object to apply to pairs of input values.
│ │ │ │ +217 * @return The final inner product.
│ │ │ │ +218 */
│ │ │ │ +219 template
│ │ │ │ +221 _GLIBCXX20_CONSTEXPR
│ │ │ │ +222 inline _Tp
│ │ │ │ +_2_2_3 _i_n_n_e_r___p_r_o_d_u_c_t(_InputIterator1 __first1, _InputIterator1 __last1,
│ │ │ │ +224 _InputIterator2 __first2, _Tp __init,
│ │ │ │ +225 _BinaryOperation1 __binary_op1,
│ │ │ │ +226 _BinaryOperation2 __binary_op2)
│ │ │ │ +227 {
│ │ │ │ +228 // concept requirements
│ │ │ │ +229 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
│ │ │ │ +230 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
│ │ │ │ +231 __glibcxx_requires_valid_range(__first1, __last1);
│ │ │ │ 232
│ │ │ │ -233 } // namespace __exception_ptr
│ │ │ │ -234
│ │ │ │ -235 /// Obtain an exception_ptr pointing to a copy of the supplied object.
│ │ │ │ -236 template
│ │ │ │ -237 _e_x_c_e_p_t_i_o_n___p_t_r
│ │ │ │ -_2_3_8 _m_a_k_e___e_x_c_e_p_t_i_o_n___p_t_r(_Ex __ex) _GLIBCXX_USE_NOEXCEPT
│ │ │ │ -239 {
│ │ │ │ -240#if __cpp_exceptions && __cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI \
│ │ │ │ -241 && __cplusplus >= 201103L
│ │ │ │ -242 using _Ex2 = typename remove_reference<_Ex>::type;
│ │ │ │ -243 void* __e = __cxxabiv1::__cxa_allocate_exception(sizeof(_Ex));
│ │ │ │ -244 (void) __cxxabiv1::__cxa_init_primary_exception(
│ │ │ │ -245 __e, const_cast<_s_t_d_:_:_t_y_p_e___i_n_f_o*>(&typeid(_Ex)),
│ │ │ │ -246 __exception_ptr::__dest_thunk<_Ex2>);
│ │ │ │ -247 try
│ │ │ │ -248 {
│ │ │ │ -249 ::new (__e) _Ex2(_s_t_d_:_:_f_o_r_w_a_r_d_<___E_x_>(__ex));
│ │ │ │ -250 return _e_x_c_e_p_t_i_o_n___p_t_r(__e);
│ │ │ │ -251 }
│ │ │ │ -252 catch(...)
│ │ │ │ -253 {
│ │ │ │ -254 __cxxabiv1::__cxa_free_exception(__e);
│ │ │ │ -255 return _c_u_r_r_e_n_t___e_x_c_e_p_t_i_o_n();
│ │ │ │ -256 }
│ │ │ │ -257#elif __cpp_exceptions
│ │ │ │ -258 try
│ │ │ │ -259 {
│ │ │ │ -260 throw __ex;
│ │ │ │ -261 }
│ │ │ │ -262 catch(...)
│ │ │ │ -263 {
│ │ │ │ -264 return _c_u_r_r_e_n_t___e_x_c_e_p_t_i_o_n();
│ │ │ │ -265 }
│ │ │ │ -266#else // no RTTI and no exceptions
│ │ │ │ -267 return _e_x_c_e_p_t_i_o_n___p_t_r();
│ │ │ │ -268#endif
│ │ │ │ -269 }
│ │ │ │ -270
│ │ │ │ -271#undef _GLIBCXX_EH_PTR_USED
│ │ │ │ -272
│ │ │ │ -273 /// @} group exceptions
│ │ │ │ -274} // namespace std
│ │ │ │ -275
│ │ │ │ -276} // extern "C++"
│ │ │ │ -277
│ │ │ │ -278#pragma GCC visibility pop
│ │ │ │ -279
│ │ │ │ -280#endif
│ │ │ │ -_n_e_w
│ │ │ │ -_t_y_p_e_i_n_f_o
│ │ │ │ -_e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h
│ │ │ │ -_c_x_x_a_b_i___i_n_i_t___e_x_c_e_p_t_i_o_n_._h
│ │ │ │ +233 for (; __first1 != __last1; ++__first1, (void)++__first2)
│ │ │ │ +234 __init = __binary_op1(_GLIBCXX_MOVE_IF_20(__init),
│ │ │ │ +235 __binary_op2(*__first1, *__first2));
│ │ │ │ +236 return __init;
│ │ │ │ +237 }
│ │ │ │ +238
│ │ │ │ +239 /**
│ │ │ │ +240 * @brief Return list of partial sums
│ │ │ │ +241 *
│ │ │ │ +242 * Accumulates the values in the range [first,last) using the @c + operator.
│ │ │ │ +243 * As each successive input value is added into the total, that partial sum
│ │ │ │ +244 * is written to @p __result. Therefore, the first value in @p __result is
│ │ │ │ +245 * the first value of the input, the second value in @p __result is the sum
│ │ │ │ +246 * of the first and second input values, and so on.
│ │ │ │ +247 *
│ │ │ │ +248 * @param __first Start of input range.
│ │ │ │ +249 * @param __last End of input range.
│ │ │ │ +250 * @param __result Output sum.
│ │ │ │ +251 * @return Iterator pointing just beyond the values written to __result.
│ │ │ │ +252 */
│ │ │ │ +253 template
│ │ │ │ +254 _GLIBCXX20_CONSTEXPR
│ │ │ │ +255 _OutputIterator
│ │ │ │ +_2_5_6 _p_a_r_t_i_a_l___s_u_m(_InputIterator __first, _InputIterator __last,
│ │ │ │ +257 _OutputIterator __result)
│ │ │ │ +258 {
│ │ │ │ +259 typedef typename _i_t_e_r_a_t_o_r___t_r_a_i_t_s_<___I_n_p_u_t_I_t_e_r_a_t_o_r_>_:_:_v_a_l_u_e___t_y_p_e _ValueType;
│ │ │ │ +260
│ │ │ │ +261 // concept requirements
│ │ │ │ +262 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
│ │ │ │ +263 __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
│ │ │ │ +264 _ValueType>)
│ │ │ │ +265 __glibcxx_requires_valid_range(__first, __last);
│ │ │ │ +266
│ │ │ │ +267 if (__first == __last)
│ │ │ │ +268 return __result;
│ │ │ │ +269 _ValueType __value = *__first;
│ │ │ │ +270 *__result = __value;
│ │ │ │ +271 while (++__first != __last)
│ │ │ │ +272 {
│ │ │ │ +273 __value = _GLIBCXX_MOVE_IF_20(__value) + *__first;
│ │ │ │ +274 *++__result = __value;
│ │ │ │ +275 }
│ │ │ │ +276 return ++__result;
│ │ │ │ +277 }
│ │ │ │ +278
│ │ │ │ +279 /**
│ │ │ │ +280 * @brief Return list of partial sums
│ │ │ │ +281 *
│ │ │ │ +282 * Accumulates the values in the range [first,last) using @p __binary_op.
│ │ │ │ +283 * As each successive input value is added into the total, that partial sum
│ │ │ │ +284 * is written to @p __result. Therefore, the first value in @p __result is
│ │ │ │ +285 * the first value of the input, the second value in @p __result is the sum
│ │ │ │ +286 * of the first and second input values, and so on.
│ │ │ │ +287 *
│ │ │ │ +288 * @param __first Start of input range.
│ │ │ │ +289 * @param __last End of input range.
│ │ │ │ +290 * @param __result Output sum.
│ │ │ │ +291 * @param __binary_op Function object.
│ │ │ │ +292 * @return Iterator pointing just beyond the values written to __result.
│ │ │ │ +293 */
│ │ │ │ +294 template
│ │ │ │ +296 _GLIBCXX20_CONSTEXPR
│ │ │ │ +297 _OutputIterator
│ │ │ │ +_2_9_8 _p_a_r_t_i_a_l___s_u_m(_InputIterator __first, _InputIterator __last,
│ │ │ │ +299 _OutputIterator __result, _BinaryOperation __binary_op)
│ │ │ │ +300 {
│ │ │ │ +301 typedef typename _i_t_e_r_a_t_o_r___t_r_a_i_t_s_<___I_n_p_u_t_I_t_e_r_a_t_o_r_>_:_:_v_a_l_u_e___t_y_p_e _ValueType;
│ │ │ │ +302
│ │ │ │ +303 // concept requirements
│ │ │ │ +304 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
│ │ │ │ +305 __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
│ │ │ │ +306 _ValueType>)
│ │ │ │ +307 __glibcxx_requires_valid_range(__first, __last);
│ │ │ │ +308
│ │ │ │ +309 if (__first == __last)
│ │ │ │ +310 return __result;
│ │ │ │ +311 _ValueType __value = *__first;
│ │ │ │ +312 *__result = __value;
│ │ │ │ +313 while (++__first != __last)
│ │ │ │ +314 {
│ │ │ │ +315 __value = __binary_op(_GLIBCXX_MOVE_IF_20(__value), *__first);
│ │ │ │ +316 *++__result = __value;
│ │ │ │ +317 }
│ │ │ │ +318 return ++__result;
│ │ │ │ +319 }
│ │ │ │ +320
│ │ │ │ +321 /**
│ │ │ │ +322 * @brief Return differences between adjacent values.
│ │ │ │ +323 *
│ │ │ │ +324 * Computes the difference between adjacent values in the range
│ │ │ │ +325 * [first,last) using operator-() and writes the result to @p __result.
│ │ │ │ +326 *
│ │ │ │ +327 * @param __first Start of input range.
│ │ │ │ +328 * @param __last End of input range.
│ │ │ │ +329 * @param __result Output sums.
│ │ │ │ +330 * @return Iterator pointing just beyond the values written to result.
│ │ │ │ +331 *
│ │ │ │ +332 * _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ +333 * DR 539. partial_sum and adjacent_difference should mention requirements
│ │ │ │ +334 */
│ │ │ │ +335 template
│ │ │ │ +336 _GLIBCXX20_CONSTEXPR
│ │ │ │ +337 _OutputIterator
│ │ │ │ +_3_3_8 _a_d_j_a_c_e_n_t___d_i_f_f_e_r_e_n_c_e(_InputIterator __first,
│ │ │ │ +339 _InputIterator __last, _OutputIterator __result)
│ │ │ │ +340 {
│ │ │ │ +341 typedef typename _i_t_e_r_a_t_o_r___t_r_a_i_t_s_<___I_n_p_u_t_I_t_e_r_a_t_o_r_>_:_:_v_a_l_u_e___t_y_p_e _ValueType;
│ │ │ │ +342
│ │ │ │ +343 // concept requirements
│ │ │ │ +344 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
│ │ │ │ +345 __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
│ │ │ │ +346 _ValueType>)
│ │ │ │ +347 __glibcxx_requires_valid_range(__first, __last);
│ │ │ │ +348
│ │ │ │ +349 if (__first == __last)
│ │ │ │ +350 return __result;
│ │ │ │ +351 _ValueType __value = *__first;
│ │ │ │ +352 *__result = __value;
│ │ │ │ +353 while (++__first != __last)
│ │ │ │ +354 {
│ │ │ │ +355 _ValueType __tmp = *__first;
│ │ │ │ +356 *++__result = __tmp - _GLIBCXX_MOVE_IF_20(__value);
│ │ │ │ +357 __value = _GLIBCXX_MOVE(__tmp);
│ │ │ │ +358 }
│ │ │ │ +359 return ++__result;
│ │ │ │ +360 }
│ │ │ │ +361
│ │ │ │ +362 /**
│ │ │ │ +363 * @brief Return differences between adjacent values.
│ │ │ │ +364 *
│ │ │ │ +365 * Computes the difference between adjacent values in the range
│ │ │ │ +366 * [__first,__last) using the function object @p __binary_op and writes the
│ │ │ │ +367 * result to @p __result.
│ │ │ │ +368 *
│ │ │ │ +369 * @param __first Start of input range.
│ │ │ │ +370 * @param __last End of input range.
│ │ │ │ +371 * @param __result Output sum.
│ │ │ │ +372 * @param __binary_op Function object.
│ │ │ │ +373 * @return Iterator pointing just beyond the values written to result.
│ │ │ │ +374 *
│ │ │ │ +375 * _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ +376 * DR 539. partial_sum and adjacent_difference should mention requirements
│ │ │ │ +377 */
│ │ │ │ +378 template
│ │ │ │ +380 _GLIBCXX20_CONSTEXPR
│ │ │ │ +381 _OutputIterator
│ │ │ │ +_3_8_2 _a_d_j_a_c_e_n_t___d_i_f_f_e_r_e_n_c_e(_InputIterator __first, _InputIterator __last,
│ │ │ │ +383 _OutputIterator __result, _BinaryOperation __binary_op)
│ │ │ │ +384 {
│ │ │ │ +385 typedef typename _i_t_e_r_a_t_o_r___t_r_a_i_t_s_<___I_n_p_u_t_I_t_e_r_a_t_o_r_>_:_:_v_a_l_u_e___t_y_p_e _ValueType;
│ │ │ │ +386
│ │ │ │ +387 // concept requirements
│ │ │ │ +388 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
│ │ │ │ +389 __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
│ │ │ │ +390 _ValueType>)
│ │ │ │ +391 __glibcxx_requires_valid_range(__first, __last);
│ │ │ │ +392
│ │ │ │ +393 if (__first == __last)
│ │ │ │ +394 return __result;
│ │ │ │ +395 _ValueType __value = *__first;
│ │ │ │ +396 *__result = __value;
│ │ │ │ +397 while (++__first != __last)
│ │ │ │ +398 {
│ │ │ │ +399 _ValueType __tmp = *__first;
│ │ │ │ +400 *++__result = __binary_op(__tmp, _GLIBCXX_MOVE_IF_20(__value));
│ │ │ │ +401 __value = _GLIBCXX_MOVE(__tmp);
│ │ │ │ +402 }
│ │ │ │ +403 return ++__result;
│ │ │ │ +404 }
│ │ │ │ +405
│ │ │ │ +406 /// @} group numeric_ops
│ │ │ │ +407
│ │ │ │ +408#undef _GLIBCXX_MOVE_IF_20
│ │ │ │ +409
│ │ │ │ +410_GLIBCXX_END_NAMESPACE_ALGO
│ │ │ │ +411} // namespace std
│ │ │ │ +412
│ │ │ │ +413#endif /* _STL_NUMERIC_H */
│ │ │ │ +_c_o_n_c_e_p_t___c_h_e_c_k_._h
│ │ │ │ _m_o_v_e_._h
│ │ │ │ -_c_+_+_c_o_n_f_i_g_._h
│ │ │ │ -_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_7
│ │ │ │ -_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_:_:_m_a_k_e___e_x_c_e_p_t_i_o_n___p_t_r
│ │ │ │ -exception_ptr make_exception_ptr(_Ex) noexcept
│ │ │ │ -Obtain an exception_ptr pointing to a copy of the supplied object.
│ │ │ │ -DDeeffiinniittiioonn _e_x_c_e_p_t_i_o_n___p_t_r_._h_:_2_3_8
│ │ │ │ -_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.
│ │ │ │ +_d_e_b_u_g_._h
│ │ │ │ +_s_t_d_:_:_a_c_c_u_m_u_l_a_t_e
│ │ │ │ +constexpr _Tp accumulate(_InputIterator __first, _InputIterator __last, _Tp
│ │ │ │ +__init)
│ │ │ │ +Accumulate values in a range.
│ │ │ │ +DDeeffiinniittiioonn _s_t_l___n_u_m_e_r_i_c_._h_:_1_3_4
│ │ │ │ +_s_t_d_:_:_a_d_j_a_c_e_n_t___d_i_f_f_e_r_e_n_c_e
│ │ │ │ +constexpr _OutputIterator adjacent_difference(_InputIterator __first,
│ │ │ │ +_InputIterator __last, _OutputIterator __result)
│ │ │ │ +Return differences between adjacent values.
│ │ │ │ +DDeeffiinniittiioonn _s_t_l___n_u_m_e_r_i_c_._h_:_3_3_8
│ │ │ │ +_s_t_d_:_:_i_o_t_a
│ │ │ │ +constexpr void iota(_ForwardIterator __first, _ForwardIterator __last, _Tp
│ │ │ │ +__value)
│ │ │ │ +Create a range of sequentially increasing values.
│ │ │ │ +DDeeffiinniittiioonn _s_t_l___n_u_m_e_r_i_c_._h_:_8_8
│ │ │ │ +_s_t_d_:_:_p_a_r_t_i_a_l___s_u_m
│ │ │ │ +constexpr _OutputIterator partial_sum(_InputIterator __first, _InputIterator
│ │ │ │ +__last, _OutputIterator __result)
│ │ │ │ +Return list of partial sums.
│ │ │ │ +DDeeffiinniittiioonn _s_t_l___n_u_m_e_r_i_c_._h_:_2_5_6
│ │ │ │ +_s_t_d_:_:_i_n_n_e_r___p_r_o_d_u_c_t
│ │ │ │ +constexpr _Tp inner_product(_InputIterator1 __first1, _InputIterator1 __last1,
│ │ │ │ +_InputIterator2 __first2, _Tp __init)
│ │ │ │ +Compute inner product of two ranges.
│ │ │ │ +DDeeffiinniittiioonn _s_t_l___n_u_m_e_r_i_c_._h_:_1_9_0
│ │ │ │ _s_t_d
│ │ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ │ -_s_t_d_:_:_t_y_p_e___i_n_f_o
│ │ │ │ -Part of RTTI.
│ │ │ │ -DDeeffiinniittiioonn _t_y_p_e_i_n_f_o_:_8_9
│ │ │ │ -_s_t_d_:_:_____e_x_c_e_p_t_i_o_n___p_t_r_:_:_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_:_9_1
│ │ │ │ +_s_t_d_:_:_i_t_e_r_a_t_o_r___t_r_a_i_t_s
│ │ │ │ +Traits class for iterators.
│ │ │ │ +DDeeffiinniittiioonn _s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___t_y_p_e_s_._h_:_1_7_8
│ │ │ │ * bbiittss
│ │ │ │ - * _e_x_c_e_p_t_i_o_n___p_t_r_._h
│ │ │ │ + * _s_t_l___n_u_m_e_r_i_c_._h
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00329.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: exception_defines.h File Reference
│ │ │ +libstdc++: regex.tcc File Reference
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,94 +48,41 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
Go to the source code of this file.
│ │ │
│ │ │
│ │ │ -
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 <regex>.
│ │ │
│ │ │ -
Definition in file exception_defines.h .
│ │ │ -
│ │ │ -
│ │ │ -
◆ __catch
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ - #define __catch
│ │ │ - (
│ │ │ - X )
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
◆ __throw_exception_again
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ - #define __throw_exception_again
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
◆ __try
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ - #define __try
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
Definition in file regex.tcc .
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,24 +1,13 @@
│ │ │ │ libstdc++
│ │ │ │ -exception_defines.h File Reference
│ │ │ │ +regex.tcc 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_.
│ │ │ │ -MMaaccrrooss
│ │ │ │ -#define _____c_a_t_c_h(X)
│ │ │ │ -#define _____t_h_r_o_w___e_x_c_e_p_t_i_o_n___a_g_a_i_n
│ │ │ │ -#define _____t_r_y
│ │ │ │ +NNaammeessppaacceess
│ │ │ │ +namespace _s_t_d
│ │ │ │ +namespace _s_t_d_:_:_____d_e_t_a_i_l
│ │ │ │ ********** 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 _e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h.
│ │ │ │ -********** MMaaccrroo DDeeffiinniittiioonn DDooccuummeennttaattiioonn **********
│ │ │ │ -********** _?◆_? ____ccaattcchh **********
│ │ │ │ -#define __catch ( XX )
│ │ │ │ -Definition at line _4_1 of file _e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h.
│ │ │ │ -********** _?◆_? ____tthhrrooww__eexxcceeppttiioonn__aaggaaiinn **********
│ │ │ │ -#define __throw_exception_again
│ │ │ │ -Definition at line _4_2 of file _e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h.
│ │ │ │ -********** _?◆_? ____ttrryy **********
│ │ │ │ -#define __try
│ │ │ │ -Definition at line _4_0 of file _e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h.
│ │ │ │ +attempt to use it directly. Instead, include .
│ │ │ │ +Definition in file _r_e_g_e_x_._t_c_c.
│ │ │ │ * bbiittss
│ │ │ │ - * _e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h
│ │ │ │ + * _r_e_g_e_x_._t_c_c
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00329_source.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: exception_defines.h Source File
│ │ │ +libstdc++: regex.tcc Source File
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,20 +48,20 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
Go to the documentation of this file.
│ │ │ +
Go to the documentation of this file.
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -75,40 +75,699 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
30 #ifndef _EXCEPTION_DEFINES_H
│ │ │ -
31 #define _EXCEPTION_DEFINES_H 1
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
35 # define __try if (true)
│ │ │ -
36 # define __catch(X) if (false)
│ │ │ -
37 # define __throw_exception_again
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
41 # define __catch(X) catch(X)
│ │ │ -
42 # define __throw_exception_again throw
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
31 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ +
│ │ │ +
33 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
45 template <
typename _BiIter,
typename _Alloc,
│ │ │ +
46 typename _CharT,
typename _TraitsT,
│ │ │ +
47 _RegexExecutorPolicy __policy,
│ │ │ +
│ │ │ +
│ │ │ +
50 __regex_algo_impl(_BiIter __s,
│ │ │ +
│ │ │ +
52 match_results<_BiIter, _Alloc>& __m,
│ │ │ +
53 const basic_regex<_CharT, _TraitsT>& __re,
│ │ │ +
│ │ │ +
│ │ │ +
56 if (__re._M_automaton ==
nullptr )
│ │ │ +
│ │ │ +
│ │ │ +
59 typename match_results<_BiIter, _Alloc>::_Base_type& __res = __m;
│ │ │ +
│ │ │ +
61 __m._M_resize(__re._M_automaton->_M_sub_count());
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
65 || (__policy == _RegexExecutorPolicy::_S_alternate
│ │ │ +
66 && !__re._M_automaton->_M_has_backref))
│ │ │ +
│ │ │ +
│ │ │ +
69 __executor(__s, __e, __m, __re, __flags);
│ │ │ +
│ │ │ +
71 __ret = __executor._M_match();
│ │ │ +
│ │ │ +
73 __ret = __executor._M_search();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
78 __executor(__s, __e, __m, __re, __flags);
│ │ │ +
│ │ │ +
80 __ret = __executor._M_match();
│ │ │ +
│ │ │ +
82 __ret = __executor._M_search();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
86 for (
auto & __it : __res)
│ │ │ +
│ │ │ +
88 __it.first = __it.second = __e;
│ │ │ +
89 auto & __pre = __m._M_prefix();
│ │ │ +
90 auto & __suf = __m._M_suffix();
│ │ │ +
│ │ │ +
│ │ │ +
93 __pre.matched =
false ;
│ │ │ +
│ │ │ +
│ │ │ +
96 __suf.matched =
false ;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
103 __pre.second = __res[0].first;
│ │ │ +
104 __pre.matched = (__pre.first != __pre.second);
│ │ │ +
105 __suf.first = __res[0].second;
│ │ │ +
│ │ │ +
107 __suf.matched = (__suf.first != __suf.second);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
112 __m._M_establish_failed_match(__e);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
121 template <
typename _Ch_type>
│ │ │ +
122 template <
typename _Fwd_iter>
│ │ │ +
123 typename regex_traits<_Ch_type>::string_type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
127 typedef std::ctype<char_type> __ctype_type;
│ │ │ +
│ │ │ +
│ │ │ +
130 static const char * __collatenames[] =
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
223 "left-square-bracket" ,
│ │ │ +
│ │ │ +
225 "right-square-bracket" ,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
255 "left-curly-bracket" ,
│ │ │ +
│ │ │ +
257 "right-curly-bracket" ,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
263 for (; __first != __last; ++__first)
│ │ │ +
264 __s += __fctyp.narrow(*__first, 0);
│ │ │ +
│ │ │ +
266 for (
const auto & __it : __collatenames)
│ │ │ +
│ │ │ +
268 return string_type(1, __fctyp.widen(
│ │ │ +
269 static_cast< char > (&__it - __collatenames)));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
274 return string_type();
│ │ │ +
│ │ │ +
│ │ │ +
277 template <
typename _Ch_type>
│ │ │ +
278 template <
typename _Fwd_iter>
│ │ │ +
279 typename regex_traits<_Ch_type>::char_class_type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
283 typedef std::ctype<char_type> __ctype_type;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
289 {
"d" , ctype_base::digit},
│ │ │ +
290 {
"w" , {ctype_base::alnum, _RegexMask::_S_under}},
│ │ │ +
291 {
"s" , ctype_base::space},
│ │ │ +
292 {
"alnum" , ctype_base::alnum},
│ │ │ +
293 {
"alpha" , ctype_base::alpha},
│ │ │ +
294 {
"blank" , ctype_base::blank},
│ │ │ +
295 {
"cntrl" , ctype_base::cntrl},
│ │ │ +
296 {
"digit" , ctype_base::digit},
│ │ │ +
297 {
"graph" , ctype_base::graph},
│ │ │ +
298 {
"lower" , ctype_base::lower},
│ │ │ +
299 {
"print" , ctype_base::print},
│ │ │ +
300 {
"punct" , ctype_base::punct},
│ │ │ +
301 {
"space" , ctype_base::space},
│ │ │ +
302 {
"upper" , ctype_base::upper},
│ │ │ +
303 {
"xdigit" , ctype_base::xdigit},
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
307 for (; __first != __last; ++__first)
│ │ │ +
308 __s += __fctyp.narrow(__fctyp.tolower(*__first), 0);
│ │ │ +
│ │ │ +
310 for (
const auto & __it : __classnames)
│ │ │ +
311 if (__s == __it.first)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
315 & (ctype_base::lower | ctype_base::upper)) != 0))
│ │ │ +
316 return ctype_base::alpha;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
322 template <
typename _Ch_type>
│ │ │ +
│ │ │ +
│ │ │ +
325 isctype (_Ch_type __c, char_class_type __f)
const
│ │ │ +
│ │ │ +
327 typedef std::ctype<char_type> __ctype_type;
│ │ │ +
│ │ │ +
│ │ │ +
330 return __fctyp.is(__f._M_base, __c)
│ │ │ +
│ │ │ +
332 || ((__f._M_extended & _RegexMask::_S_under)
│ │ │ +
333 && __c == __fctyp.widen(
'_' ));
│ │ │ +
│ │ │ +
│ │ │ +
336 template <
typename _Ch_type>
│ │ │ +
│ │ │ +
│ │ │ +
339 value (_Ch_type __ch,
int __radix)
const
│ │ │ +
│ │ │ +
341 std::basic_istringstream<char_type> __is(string_type(1, __ch));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
345 else if (__radix == 16)
│ │ │ +
│ │ │ +
│ │ │ +
348 return __is.fail() ? -1 : __v;
│ │ │ +
│ │ │ +
│ │ │ +
351 template <
typename _Bi_iter,
typename _Alloc>
│ │ │ +
352 template <
typename _Out_iter>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
356 const match_results<_Bi_iter, _Alloc>::char_type* __fmt_first,
│ │ │ +
357 const match_results<_Bi_iter, _Alloc>::char_type* __fmt_last,
│ │ │ +
358 match_flag_type __flags)
const
│ │ │ +
│ │ │ +
360 __glibcxx_assert( ready() );
│ │ │ +
│ │ │ +
362 typedef std::ctype<char_type> __ctype_type;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
366 auto __output = [&](
size_t __idx)
│ │ │ +
│ │ │ +
368 auto & __sub = (*this)[__idx];
│ │ │ +
│ │ │ +
370 __out = std::copy(__sub.first, __sub.second, __out);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
375 bool __escaping =
false ;
│ │ │ +
376 for (; __fmt_first != __fmt_last; __fmt_first++)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
381 if (__fctyp.is(__ctype_type::digit, *__fmt_first))
│ │ │ +
382 __output(__traits.value(*__fmt_first, 10));
│ │ │ +
│ │ │ +
384 *__out++ = *__fmt_first;
│ │ │ +
│ │ │ +
│ │ │ +
387 if (*__fmt_first ==
'\\' )
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
392 if (*__fmt_first ==
'&' )
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
397 *__out++ = *__fmt_first;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
406 auto __next = std::find(__fmt_first, __fmt_last,
'$' );
│ │ │ +
407 if (__next == __fmt_last)
│ │ │ +
│ │ │ +
│ │ │ +
410 __out = std::copy(__fmt_first, __next, __out);
│ │ │ +
│ │ │ +
412 auto __eat = [&](
char __ch) ->
bool
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
422 if (++__next == __fmt_last)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
430 auto & __sub = _M_prefix();
│ │ │ +
│ │ │ +
432 __out = std::copy(__sub.first, __sub.second, __out);
│ │ │ +
│ │ │ +
434 else if (__eat(
'\'' ))
│ │ │ +
│ │ │ +
436 auto & __sub = _M_suffix();
│ │ │ +
│ │ │ +
438 __out = std::copy(__sub.first, __sub.second, __out);
│ │ │ +
│ │ │ +
440 else if (__fctyp.is(__ctype_type::digit, *__next))
│ │ │ +
│ │ │ +
442 long __num = __traits.value(*__next, 10);
│ │ │ +
443 if (++__next != __fmt_last
│ │ │ +
444 && __fctyp.is(__ctype_type::digit, *__next))
│ │ │ +
│ │ │ +
│ │ │ +
447 __num += __traits.value(*__next++, 10);
│ │ │ +
│ │ │ +
449 if (0 <= __num && __num < this->
size ())
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
454 __fmt_first = __next;
│ │ │ +
│ │ │ +
456 __out = std::copy(__fmt_first, __fmt_last, __out);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
461 template <
typename _Out_iter,
typename _Bi_iter,
│ │ │ +
462 typename _Rx_traits,
typename _Ch_type>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
466 const _Ch_type* __fmt,
size_t __len,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
470 _IterT __i(__first, __last, __e, __flags);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
475 __out = std::copy(__first, __last, __out);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
480 for (; __i != __end; ++__i)
│ │ │ +
│ │ │ +
│ │ │ +
483 __out = std::copy(__i->prefix().first, __i->prefix().second,
│ │ │ +
│ │ │ +
485 __out = __i->format(__out, __fmt, __fmt + __len, __flags);
│ │ │ +
486 __last = __i->suffix();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
491 __out = std::copy(__last.first, __last.second, __out);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
496 template <
typename _Bi_iter,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
503 if (_M_pregex ==
nullptr && __rhs._M_pregex ==
nullptr )
│ │ │ +
│ │ │ +
505 return _M_pregex == __rhs._M_pregex
│ │ │ +
506 && _M_begin == __rhs._M_begin
│ │ │ +
507 && _M_end == __rhs._M_end
│ │ │ +
508 && _M_flags == __rhs._M_flags
│ │ │ +
509 && _M_match[0] == __rhs._M_match[0];
│ │ │ +
│ │ │ +
│ │ │ +
512 template <
typename _Bi_iter,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
525 if (_M_match[0].matched)
│ │ │ +
│ │ │ +
527 auto __start = _M_match[0].second;
│ │ │ +
528 auto __prefix_first = _M_match[0].second;
│ │ │ +
529 if (_M_match[0].first == _M_match[0].second)
│ │ │ +
│ │ │ +
531 if (__start == _M_end)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
543 __glibcxx_assert(_M_match[0].matched);
│ │ │ +
544 auto & __prefix = _M_match._M_prefix();
│ │ │ +
545 __prefix.first = __prefix_first;
│ │ │ +
546 __prefix.matched = __prefix.first != __prefix.second;
│ │ │ +
│ │ │ +
548 _M_match._M_begin = _M_begin;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
556 if (
regex_search (__start, _M_end, _M_match, *_M_pregex, _M_flags))
│ │ │ +
│ │ │ +
558 __glibcxx_assert(_M_match[0].matched);
│ │ │ +
559 auto & __prefix = _M_match._M_prefix();
│ │ │ +
560 __prefix.first = __prefix_first;
│ │ │ +
561 __prefix.matched = __prefix.first != __prefix.second;
│ │ │ +
│ │ │ +
563 _M_match._M_begin = _M_begin;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
571 template <
typename _Bi_iter,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
578 _M_position = __rhs._M_position;
│ │ │ +
579 _M_subs = __rhs._M_subs;
│ │ │ +
│ │ │ +
581 _M_suffix = __rhs._M_suffix;
│ │ │ +
582 _M_has_m1 = __rhs._M_has_m1;
│ │ │ +
583 _M_normalize_result();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
587 template <
typename _Bi_iter,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
594 if (_M_end_of_seq() && __rhs._M_end_of_seq())
│ │ │ +
│ │ │ +
596 if (_M_suffix.matched && __rhs._M_suffix.matched
│ │ │ +
597 && _M_suffix == __rhs._M_suffix)
│ │ │ +
│ │ │ +
599 if (_M_end_of_seq() || _M_suffix.matched
│ │ │ +
600 || __rhs._M_end_of_seq() || __rhs._M_suffix.matched)
│ │ │ +
│ │ │ +
602 return _M_position == __rhs._M_position
│ │ │ +
603 && _M_n == __rhs._M_n
│ │ │ +
604 && _M_subs == __rhs._M_subs;
│ │ │ +
│ │ │ +
│ │ │ +
607 template <
typename _Bi_iter,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
614 _Position __prev = _M_position;
│ │ │ +
615 if (_M_suffix.matched)
│ │ │ +
│ │ │ +
617 else if (_M_n + 1 < _M_subs.size())
│ │ │ +
│ │ │ +
│ │ │ +
620 _M_result = &_M_current_match();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
626 if (_M_position != _Position())
│ │ │ +
627 _M_result = &_M_current_match();
│ │ │ +
628 else if (_M_has_m1 && __prev->suffix().length() != 0)
│ │ │ +
│ │ │ +
630 _M_suffix.matched =
true ;
│ │ │ +
631 _M_suffix.first = __prev->suffix().first;
│ │ │ +
632 _M_suffix.second = __prev->suffix().second;
│ │ │ +
633 _M_result = &_M_suffix;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
641 template <
typename _Bi_iter,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
646 _M_init (_Bi_iter __a, _Bi_iter __b)
│ │ │ +
│ │ │ +
│ │ │ +
649 for (
auto __it : _M_subs)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
655 if (_M_position != _Position())
│ │ │ +
656 _M_result = &_M_current_match();
│ │ │ +
│ │ │ +
│ │ │ +
659 _M_suffix.matched =
true ;
│ │ │ +
660 _M_suffix.first = __a;
│ │ │ +
661 _M_suffix.second = __b;
│ │ │ +
662 _M_result = &_M_suffix;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
670 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
const _Facet & use_facet(const locale &__loc)
Return a facet.
│ │ │ +
_Out_iter __regex_replace(_Out_iter __out, _Bi_iter __first, _Bi_iter __last, const basic_regex< _Ch_type, _Rx_traits > &__e, const _Ch_type *__fmt, size_t __len, regex_constants::match_flag_type __flags)
Determines if there is a match between the regular expression e and all of the character sequence [fi...
│ │ │ +
bool regex_search(_Bi_iter __s, _Bi_iter __e, match_results< _Bi_iter, _Alloc > &__m, const basic_regex< _Ch_type, _Rx_traits > &__re, regex_constants::match_flag_type __flags=regex_constants::match_default)
│ │ │ +
ISO C++ entities toplevel namespace is std.
│ │ │ +
ios_base & hex(ios_base &__base)
Calls base.setf(ios_base::hex, ios_base::basefield).
│ │ │ +
constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
Return the size of a container.
│ │ │ +
ios_base & oct(ios_base &__base)
Calls base.setf(ios_base::oct, ios_base::basefield).
│ │ │ +
Implementation details not part of the namespace std interface.
│ │ │ +
constexpr syntax_option_type __polynomial
│ │ │ +
constexpr match_flag_type format_first_only
│ │ │ +
constexpr match_flag_type match_continuous
│ │ │ +
match_flag_type
This is a bitmask type indicating regex matching rules.
│ │ │ +
constexpr match_flag_type match_prev_avail
│ │ │ +
constexpr match_flag_type format_sed
│ │ │ +
constexpr match_flag_type match_not_null
│ │ │ +
constexpr match_flag_type format_no_copy
│ │ │ +
│ │ │ +
_Out_iter format(_Out_iter __out, const char_type *__fmt_first, const char_type *__fmt_last, match_flag_type __flags=regex_constants::format_default) const
│ │ │ +
Takes a regex and an input string and does the matching.
│ │ │ +
Describes aspects of a regular expression.
│ │ │ +
string_type lookup_collatename(_Fwd_iter __first, _Fwd_iter __last) const
Gets a collation element by name.
│ │ │ +
char_class_type lookup_classname(_Fwd_iter __first, _Fwd_iter __last, bool __icase=false) const
Maps one or more characters to a named character classification.
│ │ │ +
int value(_Ch_type __ch, int __radix) const
Converts a digit to an int.
│ │ │ +
bool isctype(_Ch_type __c, char_class_type __f) const
Determines if c is a member of an identified class.
│ │ │ +
│ │ │ +
│ │ │ +
regex_iterator & operator++()
Increments a regex_iterator.
│ │ │ +
bool operator==(const regex_iterator &) const noexcept
Tests the equivalence of two regex iterators.
│ │ │ +
│ │ │ +
bool operator==(const regex_token_iterator &__rhs) const
Compares a regex_token_iterator to another for equality.
│ │ │ +
regex_token_iterator & operator++()
Increments a regex_token_iterator.
│ │ │ +
regex_token_iterator & operator=(const regex_token_iterator &__rhs)
Assigns a regex_token_iterator to another.
│ │ │ +
Struct holding two objects of arbitrary type.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,13 +1,13 @@
│ │ │ │ libstdc++
│ │ │ │ -exception_defines.h
│ │ │ │ +regex.tcc
│ │ │ │ _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// -fno-exceptions Support -*- C++ -*-
│ │ │ │ +1// class template regex -*- C++ -*-
│ │ │ │ 2
│ │ │ │ -3// Copyright (C) 2001-2021 Free Software Foundation, Inc.
│ │ │ │ +3// Copyright (C) 2013-2021 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,31 +21,762 @@
│ │ │ │ 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/exception_defines.h
│ │ │ │ -26 * This is an internal header file, included by other library headers.
│ │ │ │ -27 * Do not attempt to use it directly. @headername{exception}
│ │ │ │ -28 */
│ │ │ │ -29
│ │ │ │ -30#ifndef _EXCEPTION_DEFINES_H
│ │ │ │ -31#define _EXCEPTION_DEFINES_H 1
│ │ │ │ -32
│ │ │ │ -33#if ! __cpp_exceptions
│ │ │ │ -34// Iff -fno-exceptions, transform error handling code to work without it.
│ │ │ │ -35# define __try if (true)
│ │ │ │ -36# define __catch(X) if (false)
│ │ │ │ -37# define __throw_exception_again
│ │ │ │ -38#else
│ │ │ │ -39// Else proceed normally.
│ │ │ │ -40# define __try try
│ │ │ │ -41# define __catch(X) catch(X)
│ │ │ │ -42# define __throw_exception_again throw
│ │ │ │ -43#endif
│ │ │ │ -44
│ │ │ │ -45#endif
│ │ │ │ +25/**
│ │ │ │ +26 * @file bits/regex.tcc
│ │ │ │ +27 * This is an internal header file, included by other library headers.
│ │ │ │ +28 * Do not attempt to use it directly. @headername{regex}
│ │ │ │ +29 */
│ │ │ │ +30
│ │ │ │ +31namespace _s_t_d _GLIBCXX_VISIBILITY(default)
│ │ │ │ +32{
│ │ │ │ +33_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ +34
│ │ │ │ +35namespace _____d_e_t_a_i_l
│ │ │ │ +36{
│ │ │ │ +37 /// @cond undocumented
│ │ │ │ +38
│ │ │ │ +39 // Result of merging regex_match and regex_search.
│ │ │ │ +40 //
│ │ │ │ +41 // __policy now can be _S_auto (auto dispatch) and _S_alternate (use
│ │ │ │ +42 // the other one if possible, for test purpose).
│ │ │ │ +43 //
│ │ │ │ +44 // That __match_mode is true means regex_match, else regex_search.
│ │ │ │ +45 template
│ │ │ │ +49 bool
│ │ │ │ +50 __regex_algo_impl(_BiIter __s,
│ │ │ │ +51 _BiIter __e,
│ │ │ │ +52 match_results<_BiIter, _Alloc>& __m,
│ │ │ │ +53 const basic_regex<_CharT, _TraitsT>& __re,
│ │ │ │ +54 _r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___f_l_a_g___t_y_p_e __flags)
│ │ │ │ +55 {
│ │ │ │ +56 if (__re._M_automaton == nullptr)
│ │ │ │ +57 return false;
│ │ │ │ +58
│ │ │ │ +59 typename match_results<_BiIter, _Alloc>::_Base_type& __res = __m;
│ │ │ │ +60 __m._M_begin = __s;
│ │ │ │ +61 __m._M_resize(__re._M_automaton->_M_sub_count());
│ │ │ │ +62
│ │ │ │ +63 bool __ret;
│ │ │ │ +64 if ((__re.flags() & _r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_____p_o_l_y_n_o_m_i_a_l)
│ │ │ │ +65 || (__policy == _RegexExecutorPolicy::_S_alternate
│ │ │ │ +66 && !__re._M_automaton->_M_has_backref))
│ │ │ │ +67 {
│ │ │ │ +68 ___E_x_e_c_u_t_o_r_<___B_i_I_t_e_r_,_ ___A_l_l_o_c_,_ ___T_r_a_i_t_s_T_,_ _f_a_l_s_e_>
│ │ │ │ +69 __executor(__s, __e, __m, __re, __flags);
│ │ │ │ +70 if (__match_mode)
│ │ │ │ +71 __ret = __executor._M_match();
│ │ │ │ +72 else
│ │ │ │ +73 __ret = __executor._M_search();
│ │ │ │ +74 }
│ │ │ │ +75 else
│ │ │ │ +76 {
│ │ │ │ +77 ___E_x_e_c_u_t_o_r_<___B_i_I_t_e_r_,_ ___A_l_l_o_c_,_ ___T_r_a_i_t_s_T_,_ _t_r_u_e_>
│ │ │ │ +78 __executor(__s, __e, __m, __re, __flags);
│ │ │ │ +79 if (__match_mode)
│ │ │ │ +80 __ret = __executor._M_match();
│ │ │ │ +81 else
│ │ │ │ +82 __ret = __executor._M_search();
│ │ │ │ +83 }
│ │ │ │ +84 if (__ret)
│ │ │ │ +85 {
│ │ │ │ +86 for (auto& __it : __res)
│ │ │ │ +87 if (!__it.matched)
│ │ │ │ +88 __it.first = __it.second = __e;
│ │ │ │ +89 auto& __pre = __m._M_prefix();
│ │ │ │ +90 auto& __suf = __m._M_suffix();
│ │ │ │ +91 if (__match_mode)
│ │ │ │ +92 {
│ │ │ │ +93 __pre.matched = false;
│ │ │ │ +94 __pre.first = __s;
│ │ │ │ +95 __pre.second = __s;
│ │ │ │ +96 __suf.matched = false;
│ │ │ │ +97 __suf.first = __e;
│ │ │ │ +98 __suf.second = __e;
│ │ │ │ +99 }
│ │ │ │ +100 else
│ │ │ │ +101 {
│ │ │ │ +102 __pre.first = __s;
│ │ │ │ +103 __pre.second = __res[0].first;
│ │ │ │ +104 __pre.matched = (__pre.first != __pre.second);
│ │ │ │ +105 __suf.first = __res[0].second;
│ │ │ │ +106 __suf.second = __e;
│ │ │ │ +107 __suf.matched = (__suf.first != __suf.second);
│ │ │ │ +108 }
│ │ │ │ +109 }
│ │ │ │ +110 else
│ │ │ │ +111 {
│ │ │ │ +112 __m._M_establish_failed_match(__e);
│ │ │ │ +113 }
│ │ │ │ +114 return __ret;
│ │ │ │ +115 }
│ │ │ │ +116 /// @endcond
│ │ │ │ +117} // namespace __detail
│ │ │ │ +118
│ │ │ │ +119 /// @cond
│ │ │ │ +120
│ │ │ │ +121 template
│ │ │ │ +122 template
│ │ │ │ +123 typename regex_traits<_Ch_type>::string_type
│ │ │ │ +124 _r_e_g_e_x___t_r_a_i_t_s_<___C_h___t_y_p_e_>_:_:
│ │ │ │ +125_ _l_o_o_k_u_p___c_o_l_l_a_t_e_n_a_m_e(_Fwd_iter __first, _Fwd_iter __last) const
│ │ │ │ +126 {
│ │ │ │ +127 typedef std::ctype __ctype_type;
│ │ │ │ +128 const __ctype_type& __fctyp(_u_s_e___f_a_c_e_t_<_____c_t_y_p_e___t_y_p_e_>(_M_locale));
│ │ │ │ +129
│ │ │ │ +130 static const char* __collatenames[] =
│ │ │ │ +131 {
│ │ │ │ +132 "NUL",
│ │ │ │ +133 "SOH",
│ │ │ │ +134 "STX",
│ │ │ │ +135 "ETX",
│ │ │ │ +136 "EOT",
│ │ │ │ +137 "ENQ",
│ │ │ │ +138 "ACK",
│ │ │ │ +139 "alert",
│ │ │ │ +140 "backspace",
│ │ │ │ +141 "tab",
│ │ │ │ +142 "newline",
│ │ │ │ +143 "vertical-tab",
│ │ │ │ +144 "form-feed",
│ │ │ │ +145 "carriage-return",
│ │ │ │ +146 "SO",
│ │ │ │ +147 "SI",
│ │ │ │ +148 "DLE",
│ │ │ │ +149 "DC1",
│ │ │ │ +150 "DC2",
│ │ │ │ +151 "DC3",
│ │ │ │ +152 "DC4",
│ │ │ │ +153 "NAK",
│ │ │ │ +154 "SYN",
│ │ │ │ +155 "ETB",
│ │ │ │ +156 "CAN",
│ │ │ │ +157 "EM",
│ │ │ │ +158 "SUB",
│ │ │ │ +159 "ESC",
│ │ │ │ +160 "IS4",
│ │ │ │ +161 "IS3",
│ │ │ │ +162 "IS2",
│ │ │ │ +163 "IS1",
│ │ │ │ +164 "space",
│ │ │ │ +165 "exclamation-mark",
│ │ │ │ +166 "quotation-mark",
│ │ │ │ +167 "number-sign",
│ │ │ │ +168 "dollar-sign",
│ │ │ │ +169 "percent-sign",
│ │ │ │ +170 "ampersand",
│ │ │ │ +171 "apostrophe",
│ │ │ │ +172 "left-parenthesis",
│ │ │ │ +173 "right-parenthesis",
│ │ │ │ +174 "asterisk",
│ │ │ │ +175 "plus-sign",
│ │ │ │ +176 "comma",
│ │ │ │ +177 "hyphen",
│ │ │ │ +178 "period",
│ │ │ │ +179 "slash",
│ │ │ │ +180 "zero",
│ │ │ │ +181 "one",
│ │ │ │ +182 "two",
│ │ │ │ +183 "three",
│ │ │ │ +184 "four",
│ │ │ │ +185 "five",
│ │ │ │ +186 "six",
│ │ │ │ +187 "seven",
│ │ │ │ +188 "eight",
│ │ │ │ +189 "nine",
│ │ │ │ +190 "colon",
│ │ │ │ +191 "semicolon",
│ │ │ │ +192 "less-than-sign",
│ │ │ │ +193 "equals-sign",
│ │ │ │ +194 "greater-than-sign",
│ │ │ │ +195 "question-mark",
│ │ │ │ +196 "commercial-at",
│ │ │ │ +197 "A",
│ │ │ │ +198 "B",
│ │ │ │ +199 "C",
│ │ │ │ +200 "D",
│ │ │ │ +201 "E",
│ │ │ │ +202 "F",
│ │ │ │ +203 "G",
│ │ │ │ +204 "H",
│ │ │ │ +205 "I",
│ │ │ │ +206 "J",
│ │ │ │ +207 "K",
│ │ │ │ +208 "L",
│ │ │ │ +209 "M",
│ │ │ │ +210 "N",
│ │ │ │ +211 "O",
│ │ │ │ +212 "P",
│ │ │ │ +213 "Q",
│ │ │ │ +214 "R",
│ │ │ │ +215 "S",
│ │ │ │ +216 "T",
│ │ │ │ +217 "U",
│ │ │ │ +218 "V",
│ │ │ │ +219 "W",
│ │ │ │ +220 "X",
│ │ │ │ +221 "Y",
│ │ │ │ +222 "Z",
│ │ │ │ +223 "left-square-bracket",
│ │ │ │ +224 "backslash",
│ │ │ │ +225 "right-square-bracket",
│ │ │ │ +226 "circumflex",
│ │ │ │ +227 "underscore",
│ │ │ │ +228 "grave-accent",
│ │ │ │ +229 "a",
│ │ │ │ +230 "b",
│ │ │ │ +231 "c",
│ │ │ │ +232 "d",
│ │ │ │ +233 "e",
│ │ │ │ +234 "f",
│ │ │ │ +235 "g",
│ │ │ │ +236 "h",
│ │ │ │ +237 "i",
│ │ │ │ +238 "j",
│ │ │ │ +239 "k",
│ │ │ │ +240 "l",
│ │ │ │ +241 "m",
│ │ │ │ +242 "n",
│ │ │ │ +243 "o",
│ │ │ │ +244 "p",
│ │ │ │ +245 "q",
│ │ │ │ +246 "r",
│ │ │ │ +247 "s",
│ │ │ │ +248 "t",
│ │ │ │ +249 "u",
│ │ │ │ +250 "v",
│ │ │ │ +251 "w",
│ │ │ │ +252 "x",
│ │ │ │ +253 "y",
│ │ │ │ +254 "z",
│ │ │ │ +255 "left-curly-bracket",
│ │ │ │ +256 "vertical-line",
│ │ │ │ +257 "right-curly-bracket",
│ │ │ │ +258 "tilde",
│ │ │ │ +259 "DEL",
│ │ │ │ +260 };
│ │ │ │ +261
│ │ │ │ +262 string __s;
│ │ │ │ +263 for (; __first != __last; ++__first)
│ │ │ │ +264 __s += __fctyp.narrow(*__first, 0);
│ │ │ │ +265
│ │ │ │ +266 for (const auto& __it : __collatenames)
│ │ │ │ +267 if (__s == __it)
│ │ │ │ +268 return string_type(1, __fctyp.widen(
│ │ │ │ +269 static_cast(&__it - __collatenames)));
│ │ │ │ +270
│ │ │ │ +271 // TODO Add digraph support:
│ │ │ │ +272 // http://boost.sourceforge.net/libs/regex/doc/collating_names.html
│ │ │ │ +273
│ │ │ │ +274 return string_type();
│ │ │ │ +275 }
│ │ │ │ +276
│ │ │ │ +277 template
│ │ │ │ +278 template
│ │ │ │ +279 typename regex_traits<_Ch_type>::char_class_type
│ │ │ │ +280 _r_e_g_e_x___t_r_a_i_t_s_<___C_h___t_y_p_e_>_:_:
│ │ │ │ +281_ _l_o_o_k_u_p___c_l_a_s_s_n_a_m_e(_Fwd_iter __first, _Fwd_iter __last, bool __icase) const
│ │ │ │ +282 {
│ │ │ │ +283 typedef std::ctype __ctype_type;
│ │ │ │ +284 const __ctype_type& __fctyp(_u_s_e___f_a_c_e_t_<_____c_t_y_p_e___t_y_p_e_>(_M_locale));
│ │ │ │ +285
│ │ │ │ +286 // Mappings from class name to class mask.
│ │ │ │ +287 static const _p_a_i_r_<_c_o_n_s_t_ _c_h_a_r_*_,_ _c_h_a_r___c_l_a_s_s___t_y_p_e_> __classnames[] =
│ │ │ │ +288 {
│ │ │ │ +289 {"d", ctype_base::digit},
│ │ │ │ +290 {"w", {ctype_base::alnum, _RegexMask::_S_under}},
│ │ │ │ +291 {"s", ctype_base::space},
│ │ │ │ +292 {"alnum", ctype_base::alnum},
│ │ │ │ +293 {"alpha", ctype_base::alpha},
│ │ │ │ +294 {"blank", ctype_base::blank},
│ │ │ │ +295 {"cntrl", ctype_base::cntrl},
│ │ │ │ +296 {"digit", ctype_base::digit},
│ │ │ │ +297 {"graph", ctype_base::graph},
│ │ │ │ +298 {"lower", ctype_base::lower},
│ │ │ │ +299 {"print", ctype_base::print},
│ │ │ │ +300 {"punct", ctype_base::punct},
│ │ │ │ +301 {"space", ctype_base::space},
│ │ │ │ +302 {"upper", ctype_base::upper},
│ │ │ │ +303 {"xdigit", ctype_base::xdigit},
│ │ │ │ +304 };
│ │ │ │ +305
│ │ │ │ +306 string __s;
│ │ │ │ +307 for (; __first != __last; ++__first)
│ │ │ │ +308 __s += __fctyp.narrow(__fctyp.tolower(*__first), 0);
│ │ │ │ +309
│ │ │ │ +310 for (const auto& __it : __classnames)
│ │ │ │ +311 if (__s == __it.first)
│ │ │ │ +312 {
│ │ │ │ +313 if (__icase
│ │ │ │ +314 && ((__it.second
│ │ │ │ +315 & (ctype_base::lower | ctype_base::upper)) != 0))
│ │ │ │ +316 return ctype_base::alpha;
│ │ │ │ +317 return __it.second;
│ │ │ │ +318 }
│ │ │ │ +319 return 0;
│ │ │ │ +320 }
│ │ │ │ +321
│ │ │ │ +322 template
│ │ │ │ +323 bool
│ │ │ │ +324 _r_e_g_e_x___t_r_a_i_t_s_<___C_h___t_y_p_e_>_:_:
│ │ │ │ +325_ _i_s_c_t_y_p_e(_Ch_type __c, char_class_type __f) const
│ │ │ │ +326 {
│ │ │ │ +327 typedef std::ctype __ctype_type;
│ │ │ │ +328 const __ctype_type& __fctyp(_u_s_e___f_a_c_e_t_<_____c_t_y_p_e___t_y_p_e_>(_M_locale));
│ │ │ │ +329
│ │ │ │ +330 return __fctyp.is(__f._M_base, __c)
│ │ │ │ +331 // [[:w:]]
│ │ │ │ +332 || ((__f._M_extended & _RegexMask::_S_under)
│ │ │ │ +333 && __c == __fctyp.widen('_'));
│ │ │ │ +334 }
│ │ │ │ +335
│ │ │ │ +336 template
│ │ │ │ +337 int
│ │ │ │ +338 _r_e_g_e_x___t_r_a_i_t_s_<___C_h___t_y_p_e_>_:_:
│ │ │ │ +339_ _v_a_l_u_e(_Ch_type __ch, int __radix) const
│ │ │ │ +340 {
│ │ │ │ +341 std::basic_istringstream __is(string_type(1, __ch));
│ │ │ │ +342 long __v;
│ │ │ │ +343 if (__radix == 8)
│ │ │ │ +344 __is >> _s_t_d_:_:_o_c_t;
│ │ │ │ +345 else if (__radix == 16)
│ │ │ │ +346 __is >> _s_t_d_:_:_h_e_x;
│ │ │ │ +347 __is >> __v;
│ │ │ │ +348 return __is.fail() ? -1 : __v;
│ │ │ │ +349 }
│ │ │ │ +350
│ │ │ │ +351 template
│ │ │ │ +352 template
│ │ │ │ +353 _Out_iter
│ │ │ │ +354 _m_a_t_c_h___r_e_s_u_l_t_s_<___B_i___i_t_e_r_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ +355_ _f_o_r_m_a_t(_Out_iter __out,
│ │ │ │ +356 const match_results<_Bi_iter, _Alloc>::char_type* __fmt_first,
│ │ │ │ +357 const match_results<_Bi_iter, _Alloc>::char_type* __fmt_last,
│ │ │ │ +358 match_flag_type __flags) const
│ │ │ │ +359 {
│ │ │ │ +360 __glibcxx_assert( ready() );
│ │ │ │ +361 _r_e_g_e_x___t_r_a_i_t_s_<_c_h_a_r___t_y_p_e_> __traits;
│ │ │ │ +362 typedef std::ctype __ctype_type;
│ │ │ │ +363 const __ctype_type&
│ │ │ │ +364 __fctyp(_u_s_e___f_a_c_e_t_<_____c_t_y_p_e___t_y_p_e_>(__traits.getloc()));
│ │ │ │ +365
│ │ │ │ +366 auto __output = [&](size_t __idx)
│ │ │ │ +367 {
│ │ │ │ +368 auto& __sub = (*this)[__idx];
│ │ │ │ +369 if (__sub.matched)
│ │ │ │ +370 __out = std::copy(__sub.first, __sub.second, __out);
│ │ │ │ +371 };
│ │ │ │ +372
│ │ │ │ +373 if (__flags & _r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_f_o_r_m_a_t___s_e_d)
│ │ │ │ +374 {
│ │ │ │ +375 bool __escaping = false;
│ │ │ │ +376 for (; __fmt_first != __fmt_last; __fmt_first++)
│ │ │ │ +377 {
│ │ │ │ +378 if (__escaping)
│ │ │ │ +379 {
│ │ │ │ +380 __escaping = false;
│ │ │ │ +381 if (__fctyp.is(__ctype_type::digit, *__fmt_first))
│ │ │ │ +382 __output(__traits.value(*__fmt_first, 10));
│ │ │ │ +383 else
│ │ │ │ +384 *__out++ = *__fmt_first;
│ │ │ │ +385 continue;
│ │ │ │ +386 }
│ │ │ │ +387 if (*__fmt_first == '\\')
│ │ │ │ +388 {
│ │ │ │ +389 __escaping = true;
│ │ │ │ +390 continue;
│ │ │ │ +391 }
│ │ │ │ +392 if (*__fmt_first == '&')
│ │ │ │ +393 {
│ │ │ │ +394 __output(0);
│ │ │ │ +395 continue;
│ │ │ │ +396 }
│ │ │ │ +397 *__out++ = *__fmt_first;
│ │ │ │ +398 }
│ │ │ │ +399 if (__escaping)
│ │ │ │ +400 *__out++ = '\\';
│ │ │ │ +401 }
│ │ │ │ +402 else
│ │ │ │ +403 {
│ │ │ │ +404 while (1)
│ │ │ │ +405 {
│ │ │ │ +406 auto __next = std::find(__fmt_first, __fmt_last, '$');
│ │ │ │ +407 if (__next == __fmt_last)
│ │ │ │ +408 break;
│ │ │ │ +409
│ │ │ │ +410 __out = std::copy(__fmt_first, __next, __out);
│ │ │ │ +411
│ │ │ │ +412 auto __eat = [&](char __ch) -> bool
│ │ │ │ +413 {
│ │ │ │ +414 if (*__next == __ch)
│ │ │ │ +415 {
│ │ │ │ +416 ++__next;
│ │ │ │ +417 return true;
│ │ │ │ +418 }
│ │ │ │ +419 return false;
│ │ │ │ +420 };
│ │ │ │ +421
│ │ │ │ +422 if (++__next == __fmt_last)
│ │ │ │ +423 *__out++ = '$';
│ │ │ │ +424 else if (__eat('$'))
│ │ │ │ +425 *__out++ = '$';
│ │ │ │ +426 else if (__eat('&'))
│ │ │ │ +427 __output(0);
│ │ │ │ +428 else if (__eat('`'))
│ │ │ │ +429 {
│ │ │ │ +430 auto& __sub = _M_prefix();
│ │ │ │ +431 if (__sub.matched)
│ │ │ │ +432 __out = std::copy(__sub.first, __sub.second, __out);
│ │ │ │ +433 }
│ │ │ │ +434 else if (__eat('\''))
│ │ │ │ +435 {
│ │ │ │ +436 auto& __sub = _M_suffix();
│ │ │ │ +437 if (__sub.matched)
│ │ │ │ +438 __out = std::copy(__sub.first, __sub.second, __out);
│ │ │ │ +439 }
│ │ │ │ +440 else if (__fctyp.is(__ctype_type::digit, *__next))
│ │ │ │ +441 {
│ │ │ │ +442 long __num = __traits.value(*__next, 10);
│ │ │ │ +443 if (++__next != __fmt_last
│ │ │ │ +444 && __fctyp.is(__ctype_type::digit, *__next))
│ │ │ │ +445 {
│ │ │ │ +446 __num *= 10;
│ │ │ │ +447 __num += __traits.value(*__next++, 10);
│ │ │ │ +448 }
│ │ │ │ +449 if (0 <= __num && __num < this->_s_i_z_e())
│ │ │ │ +450 __output(__num);
│ │ │ │ +451 }
│ │ │ │ +452 else
│ │ │ │ +453 *__out++ = '$';
│ │ │ │ +454 __fmt_first = __next;
│ │ │ │ +455 }
│ │ │ │ +456 __out = std::copy(__fmt_first, __fmt_last, __out);
│ │ │ │ +457 }
│ │ │ │ +458 return __out;
│ │ │ │ +459 }
│ │ │ │ +460
│ │ │ │ +461 template
│ │ │ │ +463 _Out_iter
│ │ │ │ +464 _____r_e_g_e_x___r_e_p_l_a_c_e(_Out_iter __out, _Bi_iter __first, _Bi_iter __last,
│ │ │ │ +465 const _b_a_s_i_c___r_e_g_e_x_<___C_h___t_y_p_e_,_ ___R_x___t_r_a_i_t_s_>& __e,
│ │ │ │ +466 const _Ch_type* __fmt, size_t __len,
│ │ │ │ +467 _r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___f_l_a_g___t_y_p_e __flags)
│ │ │ │ +468 {
│ │ │ │ +469 typedef _r_e_g_e_x___i_t_e_r_a_t_o_r_<___B_i___i_t_e_r_,_ ___C_h___t_y_p_e_,_ ___R_x___t_r_a_i_t_s_> _IterT;
│ │ │ │ +470 _IterT __i(__first, __last, __e, __flags);
│ │ │ │ +471 _IterT __end;
│ │ │ │ +472 if (__i == __end)
│ │ │ │ +473 {
│ │ │ │ +474 if (!(__flags & _r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_f_o_r_m_a_t___n_o___c_o_p_y))
│ │ │ │ +475 __out = std::copy(__first, __last, __out);
│ │ │ │ +476 }
│ │ │ │ +477 else
│ │ │ │ +478 {
│ │ │ │ +479 _s_u_b___m_a_t_c_h_<___B_i___i_t_e_r_> __last;
│ │ │ │ +480 for (; __i != __end; ++__i)
│ │ │ │ +481 {
│ │ │ │ +482 if (!(__flags & _r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_f_o_r_m_a_t___n_o___c_o_p_y))
│ │ │ │ +483 __out = std::copy(__i->prefix().first, __i->prefix().second,
│ │ │ │ +484 __out);
│ │ │ │ +485 __out = __i->format(__out, __fmt, __fmt + __len, __flags);
│ │ │ │ +486 __last = __i->suffix();
│ │ │ │ +487 if (__flags & _r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_f_o_r_m_a_t___f_i_r_s_t___o_n_l_y)
│ │ │ │ +488 break;
│ │ │ │ +489 }
│ │ │ │ +490 if (!(__flags & _r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_f_o_r_m_a_t___n_o___c_o_p_y))
│ │ │ │ +491 __out = std::copy(__last.first, __last.second, __out);
│ │ │ │ +492 }
│ │ │ │ +493 return __out;
│ │ │ │ +494 }
│ │ │ │ +495
│ │ │ │ +496 template
│ │ │ │ +499 bool
│ │ │ │ +500 _r_e_g_e_x___i_t_e_r_a_t_o_r_<___B_i___i_t_e_r_,_ ___C_h___t_y_p_e_,_ ___R_x___t_r_a_i_t_s_>_:_:
│ │ │ │ +501_ _o_p_e_r_a_t_o_r_=_=(const _r_e_g_e_x___i_t_e_r_a_t_o_r& __rhs) const noexcept
│ │ │ │ +502 {
│ │ │ │ +503 if (_M_pregex == nullptr && __rhs._M_pregex == nullptr)
│ │ │ │ +504 return true;
│ │ │ │ +505 return _M_pregex == __rhs._M_pregex
│ │ │ │ +506 && _M_begin == __rhs._M_begin
│ │ │ │ +507 && _M_end == __rhs._M_end
│ │ │ │ +508 && _M_flags == __rhs._M_flags
│ │ │ │ +509 && _M_match[0] == __rhs._M_match[0];
│ │ │ │ +510 }
│ │ │ │ +511
│ │ │ │ +512 template
│ │ │ │ +515 _r_e_g_e_x___i_t_e_r_a_t_o_r_<___B_i___i_t_e_r_,_ ___C_h___t_y_p_e_,_ ___R_x___t_r_a_i_t_s_>&
│ │ │ │ +516 _r_e_g_e_x___i_t_e_r_a_t_o_r_<___B_i___i_t_e_r_,_ ___C_h___t_y_p_e_,_ ___R_x___t_r_a_i_t_s_>_:_:
│ │ │ │ +517_ _o_p_e_r_a_t_o_r_+_+()
│ │ │ │ +518 {
│ │ │ │ +519 // In all cases in which the call to regex_search returns true,
│ │ │ │ +520 // match.prefix().first shall be equal to the previous value of
│ │ │ │ +521 // match[0].second, and for each index i in the half-open range
│ │ │ │ +522 // [0, match.size()) for which match[i].matched is true,
│ │ │ │ +523 // match[i].position() shall return distance(begin, match[i].first).
│ │ │ │ +524 // [28.12.1.4.5]
│ │ │ │ +525 if (_M_match[0].matched)
│ │ │ │ +526 {
│ │ │ │ +527 auto __start = _M_match[0].second;
│ │ │ │ +528 auto __prefix_first = _M_match[0].second;
│ │ │ │ +529 if (_M_match[0].first == _M_match[0].second)
│ │ │ │ +530 {
│ │ │ │ +531 if (__start == _M_end)
│ │ │ │ +532 {
│ │ │ │ +533 _M_pregex = nullptr;
│ │ │ │ +534 return *this;
│ │ │ │ +535 }
│ │ │ │ +536 else
│ │ │ │ +537 {
│ │ │ │ +538 if (_r_e_g_e_x___s_e_a_r_c_h(__start, _M_end, _M_match, *_M_pregex,
│ │ │ │ +539 _M_flags
│ │ │ │ +540 | _r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___n_o_t___n_u_l_l
│ │ │ │ +541 | _r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___c_o_n_t_i_n_u_o_u_s))
│ │ │ │ +542 {
│ │ │ │ +543 __glibcxx_assert(_M_match[0].matched);
│ │ │ │ +544 auto& __prefix = _M_match._M_prefix();
│ │ │ │ +545 __prefix.first = __prefix_first;
│ │ │ │ +546 __prefix.matched = __prefix.first != __prefix.second;
│ │ │ │ +547 // [28.12.1.4.5]
│ │ │ │ +548 _M_match._M_begin = _M_begin;
│ │ │ │ +549 return *this;
│ │ │ │ +550 }
│ │ │ │ +551 else
│ │ │ │ +552 ++__start;
│ │ │ │ +553 }
│ │ │ │ +554 }
│ │ │ │ +555 _M_flags |= _r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___p_r_e_v___a_v_a_i_l;
│ │ │ │ +556 if (_r_e_g_e_x___s_e_a_r_c_h(__start, _M_end, _M_match, *_M_pregex, _M_flags))
│ │ │ │ +557 {
│ │ │ │ +558 __glibcxx_assert(_M_match[0].matched);
│ │ │ │ +559 auto& __prefix = _M_match._M_prefix();
│ │ │ │ +560 __prefix.first = __prefix_first;
│ │ │ │ +561 __prefix.matched = __prefix.first != __prefix.second;
│ │ │ │ +562 // [28.12.1.4.5]
│ │ │ │ +563 _M_match._M_begin = _M_begin;
│ │ │ │ +564 }
│ │ │ │ +565 else
│ │ │ │ +566 _M_pregex = nullptr;
│ │ │ │ +567 }
│ │ │ │ +568 return *this;
│ │ │ │ +569 }
│ │ │ │ +570
│ │ │ │ +571 template
│ │ │ │ +574 _r_e_g_e_x___t_o_k_e_n___i_t_e_r_a_t_o_r_<___B_i___i_t_e_r_,_ ___C_h___t_y_p_e_,_ ___R_x___t_r_a_i_t_s_>&
│ │ │ │ +575 _r_e_g_e_x___t_o_k_e_n___i_t_e_r_a_t_o_r_<___B_i___i_t_e_r_,_ ___C_h___t_y_p_e_,_ ___R_x___t_r_a_i_t_s_>_:_:
│ │ │ │ +576_ _o_p_e_r_a_t_o_r_=(const _r_e_g_e_x___t_o_k_e_n___i_t_e_r_a_t_o_r& __rhs)
│ │ │ │ +577 {
│ │ │ │ +578 _M_position = __rhs._M_position;
│ │ │ │ +579 _M_subs = __rhs._M_subs;
│ │ │ │ +580 _M_n = __rhs._M_n;
│ │ │ │ +581 _M_suffix = __rhs._M_suffix;
│ │ │ │ +582 _M_has_m1 = __rhs._M_has_m1;
│ │ │ │ +583 _M_normalize_result();
│ │ │ │ +584 return *this;
│ │ │ │ +585 }
│ │ │ │ +586
│ │ │ │ +587 template
│ │ │ │ +590 bool
│ │ │ │ +591 _r_e_g_e_x___t_o_k_e_n___i_t_e_r_a_t_o_r_<___B_i___i_t_e_r_,_ ___C_h___t_y_p_e_,_ ___R_x___t_r_a_i_t_s_>_:_:
│ │ │ │ +592_ _o_p_e_r_a_t_o_r_=_=(const _r_e_g_e_x___t_o_k_e_n___i_t_e_r_a_t_o_r& __rhs) const
│ │ │ │ +593 {
│ │ │ │ +594 if (_M_end_of_seq() && __rhs._M_end_of_seq())
│ │ │ │ +595 return true;
│ │ │ │ +596 if (_M_suffix.matched && __rhs._M_suffix.matched
│ │ │ │ +597 && _M_suffix == __rhs._M_suffix)
│ │ │ │ +598 return true;
│ │ │ │ +599 if (_M_end_of_seq() || _M_suffix.matched
│ │ │ │ +600 || __rhs._M_end_of_seq() || __rhs._M_suffix.matched)
│ │ │ │ +601 return false;
│ │ │ │ +602 return _M_position == __rhs._M_position
│ │ │ │ +603 && _M_n == __rhs._M_n
│ │ │ │ +604 && _M_subs == __rhs._M_subs;
│ │ │ │ +605 }
│ │ │ │ +606
│ │ │ │ +607 template
│ │ │ │ +610 _r_e_g_e_x___t_o_k_e_n___i_t_e_r_a_t_o_r_<___B_i___i_t_e_r_,_ ___C_h___t_y_p_e_,_ ___R_x___t_r_a_i_t_s_>&
│ │ │ │ +611 _r_e_g_e_x___t_o_k_e_n___i_t_e_r_a_t_o_r_<___B_i___i_t_e_r_,_ ___C_h___t_y_p_e_,_ ___R_x___t_r_a_i_t_s_>_:_:
│ │ │ │ +612_ _o_p_e_r_a_t_o_r_+_+()
│ │ │ │ +613 {
│ │ │ │ +614 _Position __prev = _M_position;
│ │ │ │ +615 if (_M_suffix.matched)
│ │ │ │ +616 *this = _r_e_g_e_x___t_o_k_e_n___i_t_e_r_a_t_o_r();
│ │ │ │ +617 else if (_M_n + 1 < _M_subs.size())
│ │ │ │ +618 {
│ │ │ │ +619 _M_n++;
│ │ │ │ +620 _M_result = &_M_current_match();
│ │ │ │ +621 }
│ │ │ │ +622 else
│ │ │ │ +623 {
│ │ │ │ +624 _M_n = 0;
│ │ │ │ +625 ++_M_position;
│ │ │ │ +626 if (_M_position != _Position())
│ │ │ │ +627 _M_result = &_M_current_match();
│ │ │ │ +628 else if (_M_has_m1 && __prev->suffix().length() != 0)
│ │ │ │ +629 {
│ │ │ │ +630 _M_suffix.matched = true;
│ │ │ │ +631 _M_suffix.first = __prev->suffix().first;
│ │ │ │ +632 _M_suffix.second = __prev->suffix().second;
│ │ │ │ +633 _M_result = &_M_suffix;
│ │ │ │ +634 }
│ │ │ │ +635 else
│ │ │ │ +636 *this = _r_e_g_e_x___t_o_k_e_n___i_t_e_r_a_t_o_r();
│ │ │ │ +637 }
│ │ │ │ +638 return *this;
│ │ │ │ +639 }
│ │ │ │ +640
│ │ │ │ +641 template
│ │ │ │ +644 void
│ │ │ │ +645 _r_e_g_e_x___t_o_k_e_n___i_t_e_r_a_t_o_r_<___B_i___i_t_e_r_,_ ___C_h___t_y_p_e_,_ ___R_x___t_r_a_i_t_s_>_:_:
│ │ │ │ +646_ ___M___i_n_i_t(_Bi_iter __a, _Bi_iter __b)
│ │ │ │ +647 {
│ │ │ │ +648 _M_has_m1 = false;
│ │ │ │ +649 for (auto __it : _M_subs)
│ │ │ │ +650 if (__it == -1)
│ │ │ │ +651 {
│ │ │ │ +652 _M_has_m1 = true;
│ │ │ │ +653 break;
│ │ │ │ +654 }
│ │ │ │ +655 if (_M_position != _Position())
│ │ │ │ +656 _M_result = &_M_current_match();
│ │ │ │ +657 else if (_M_has_m1)
│ │ │ │ +658 {
│ │ │ │ +659 _M_suffix.matched = true;
│ │ │ │ +660 _M_suffix.first = __a;
│ │ │ │ +661 _M_suffix.second = __b;
│ │ │ │ +662 _M_result = &_M_suffix;
│ │ │ │ +663 }
│ │ │ │ +664 else
│ │ │ │ +665 _M_result = nullptr;
│ │ │ │ +666 }
│ │ │ │ +667
│ │ │ │ +668 /// @endcond
│ │ │ │ +669
│ │ │ │ +670_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ +671} // namespace
│ │ │ │ +_s_t_d_:_:_u_s_e___f_a_c_e_t
│ │ │ │ +const _Facet & use_facet(const locale &__loc)
│ │ │ │ +Return a facet.
│ │ │ │ +DDeeffiinniittiioonn _l_o_c_a_l_e___c_l_a_s_s_e_s_._t_c_c_:_1_3_2
│ │ │ │ +_s_t_d_:_:_____r_e_g_e_x___r_e_p_l_a_c_e
│ │ │ │ +_Out_iter __regex_replace(_Out_iter __out, _Bi_iter __first, _Bi_iter __last,
│ │ │ │ +const basic_regex< _Ch_type, _Rx_traits > &__e, const _Ch_type *__fmt, size_t
│ │ │ │ +__len, regex_constants::match_flag_type __flags)
│ │ │ │ +Determines if there is a match between the regular expression e and all of the
│ │ │ │ +character sequence [fi...
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___s_e_a_r_c_h
│ │ │ │ +bool regex_search(_Bi_iter __s, _Bi_iter __e, match_results< _Bi_iter, _Alloc >
│ │ │ │ +&__m, const basic_regex< _Ch_type, _Rx_traits > &__re, regex_constants::
│ │ │ │ +match_flag_type __flags=regex_constants::match_default)
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x_._h_:_2_3_5_3
│ │ │ │ +_s_t_d
│ │ │ │ +ISO C++ entities toplevel namespace is std.
│ │ │ │ +_s_t_d_:_:_h_e_x
│ │ │ │ +ios_base & hex(ios_base &__base)
│ │ │ │ +Calls base.setf(ios_base::hex, ios_base::basefield).
│ │ │ │ +DDeeffiinniittiioonn _i_o_s___b_a_s_e_._h_:_1_0_5_4
│ │ │ │ +_s_t_d_:_:_s_i_z_e
│ │ │ │ +constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size()))
│ │ │ │ +-> decltype(__cont.size())
│ │ │ │ +Return the size of a container.
│ │ │ │ +DDeeffiinniittiioonn _r_a_n_g_e___a_c_c_e_s_s_._h_:_2_4_5
│ │ │ │ +_s_t_d_:_:_o_c_t
│ │ │ │ +ios_base & oct(ios_base &__base)
│ │ │ │ +Calls base.setf(ios_base::oct, ios_base::basefield).
│ │ │ │ +DDeeffiinniittiioonn _i_o_s___b_a_s_e_._h_:_1_0_6_2
│ │ │ │ +_s_t_d_:_:_____d_e_t_a_i_l
│ │ │ │ +Implementation details not part of the namespace std interface.
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_____p_o_l_y_n_o_m_i_a_l
│ │ │ │ +constexpr syntax_option_type __polynomial
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_1_9_7
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_f_o_r_m_a_t___f_i_r_s_t___o_n_l_y
│ │ │ │ +constexpr match_flag_type format_first_only
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_3_8_9
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___c_o_n_t_i_n_u_o_u_s
│ │ │ │ +constexpr match_flag_type match_continuous
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_3_2_7
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___f_l_a_g___t_y_p_e
│ │ │ │ +match_flag_type
│ │ │ │ +This is a bitmask type indicating regex matching rules.
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_2_7_3
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___p_r_e_v___a_v_a_i_l
│ │ │ │ +constexpr match_flag_type match_prev_avail
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_3_3_6
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_f_o_r_m_a_t___s_e_d
│ │ │ │ +constexpr match_flag_type format_sed
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_3_7_4
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___n_o_t___n_u_l_l
│ │ │ │ +constexpr match_flag_type match_not_null
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_3_2_1
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_f_o_r_m_a_t___n_o___c_o_p_y
│ │ │ │ +constexpr match_flag_type format_no_copy
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_3_8_2
│ │ │ │ +_s_t_d_:_:_b_a_s_i_c___r_e_g_e_x
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x_._h_:_4_0_0
│ │ │ │ +_s_t_d_:_:_m_a_t_c_h___r_e_s_u_l_t_s_:_:_f_o_r_m_a_t
│ │ │ │ +_Out_iter format(_Out_iter __out, const char_type *__fmt_first, const char_type
│ │ │ │ +*__fmt_last, match_flag_type __flags=regex_constants::format_default) const
│ │ │ │ +_s_t_d_:_:_____d_e_t_a_i_l_:_:___E_x_e_c_u_t_o_r
│ │ │ │ +Takes a regex and an input string and does the matching.
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___e_x_e_c_u_t_o_r_._h_:_5_3
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___t_r_a_i_t_s
│ │ │ │ +Describes aspects of a regular expression.
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x_._h_:_9_1
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___t_r_a_i_t_s_:_:_l_o_o_k_u_p___c_o_l_l_a_t_e_n_a_m_e
│ │ │ │ +string_type lookup_collatename(_Fwd_iter __first, _Fwd_iter __last) const
│ │ │ │ +Gets a collation element by name.
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___t_r_a_i_t_s_:_:_l_o_o_k_u_p___c_l_a_s_s_n_a_m_e
│ │ │ │ +char_class_type lookup_classname(_Fwd_iter __first, _Fwd_iter __last, bool
│ │ │ │ +__icase=false) const
│ │ │ │ +Maps one or more characters to a named character classification.
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___t_r_a_i_t_s_:_:_v_a_l_u_e
│ │ │ │ +int value(_Ch_type __ch, int __radix) const
│ │ │ │ +Converts a digit to an int.
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___t_r_a_i_t_s_:_:_i_s_c_t_y_p_e
│ │ │ │ +bool isctype(_Ch_type __c, char_class_type __f) const
│ │ │ │ +Determines if c is a member of an identified class.
│ │ │ │ +_s_t_d_:_:_s_u_b___m_a_t_c_h
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x_._h_:_8_9_2
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___i_t_e_r_a_t_o_r
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x_._h_:_2_6_6_6
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___i_t_e_r_a_t_o_r_:_:_o_p_e_r_a_t_o_r_+_+
│ │ │ │ +regex_iterator & operator++()
│ │ │ │ +Increments a regex_iterator.
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___i_t_e_r_a_t_o_r_:_:_o_p_e_r_a_t_o_r_=_=
│ │ │ │ +bool operator==(const regex_iterator &) const noexcept
│ │ │ │ +Tests the equivalence of two regex iterators.
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___t_o_k_e_n___i_t_e_r_a_t_o_r
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x_._h_:_2_7_8_3
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___t_o_k_e_n___i_t_e_r_a_t_o_r_:_:_o_p_e_r_a_t_o_r_=_=
│ │ │ │ +bool operator==(const regex_token_iterator &__rhs) const
│ │ │ │ +Compares a regex_token_iterator to another for equality.
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___t_o_k_e_n___i_t_e_r_a_t_o_r_:_:_o_p_e_r_a_t_o_r_+_+
│ │ │ │ +regex_token_iterator & operator++()
│ │ │ │ +Increments a regex_token_iterator.
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___t_o_k_e_n___i_t_e_r_a_t_o_r_:_:_o_p_e_r_a_t_o_r_=
│ │ │ │ +regex_token_iterator & operator=(const regex_token_iterator &__rhs)
│ │ │ │ +Assigns a regex_token_iterator to another.
│ │ │ │ +_s_t_d_:_:_p_a_i_r
│ │ │ │ +Struct holding two objects of arbitrary type.
│ │ │ │ +DDeeffiinniittiioonn _s_t_l___p_a_i_r_._h_:_2_1_3
│ │ │ │ * bbiittss
│ │ │ │ - * _e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h
│ │ │ │ + * _r_e_g_e_x_._t_c_c
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00332.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: exception.h File Reference
│ │ │ +libstdc++: regex_constants.h File Reference
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,44 +48,125 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
Go to the source code of this file.
│ │ │
│ │ │ +
│ │ │ +constexpr syntax_option_type std::regex_constants::__multiline
│ │ │ +constexpr syntax_option_type std::regex_constants::__polynomial
│ │ │ +enum std::regex_constants::__syntax_option {
│ │ │ + _S_icase
│ │ │ +, _S_nosubs
│ │ │ +, _S_optimize
│ │ │ +, _S_collate
│ │ │ +,
│ │ │ + _S_ECMAScript
│ │ │ +, _S_basic
│ │ │ +, _S_extended
│ │ │ +, _S_awk
│ │ │ +,
│ │ │ + _S_grep
│ │ │ +, _S_egrep
│ │ │ +, _S_polynomial
│ │ │ +, _S_multiline
│ │ │ +
│ │ │ + }
│ │ │ +constexpr syntax_option_type std::regex_constants::awk
│ │ │ +constexpr syntax_option_type std::regex_constants::basic
│ │ │ +constexpr syntax_option_type std::regex_constants::collate
│ │ │ +constexpr syntax_option_type std::regex_constants::ECMAScript
│ │ │ +constexpr syntax_option_type std::regex_constants::egrep
│ │ │ +constexpr syntax_option_type std::regex_constants::extended
│ │ │ +constexpr syntax_option_type std::regex_constants::grep
│ │ │ +constexpr syntax_option_type std::regex_constants::icase
│ │ │ +constexpr syntax_option_type std::regex_constants::multiline
│ │ │ +constexpr syntax_option_type std::regex_constants::nosubs
│ │ │ +constexpr syntax_option_type std::regex_constants::operator& (syntax_option_type __a, syntax_option_type __b)
│ │ │ +syntax_option_type & std::regex_constants::operator&= (syntax_option_type &__a, syntax_option_type __b)
│ │ │ +constexpr syntax_option_type std::regex_constants::operator^ (syntax_option_type __a, syntax_option_type __b)
│ │ │ +syntax_option_type & std::regex_constants::operator^= (syntax_option_type &__a, syntax_option_type __b)
│ │ │ +constexpr syntax_option_type std::regex_constants::operator| (syntax_option_type __a, syntax_option_type __b)
│ │ │ +syntax_option_type & std::regex_constants::operator|= (syntax_option_type &__a, syntax_option_type __b)
│ │ │ +constexpr syntax_option_type std::regex_constants::operator~ (syntax_option_type __a)
│ │ │ +constexpr syntax_option_type std::regex_constants::optimize
│ │ │ +enum std::regex_constants::syntax_option_type : unsigned int
│ │ │ +
│ │ │ +
│ │ │ +Matching a regular expression against a sequence of characters [first, last) proceeds according to the rules of the grammar specified for the regular expression object, modified according to the effects listed below for any bitmask elements set.
│ │ │ +
│ │ │ +enum std::regex_constants::__match_flag {
│ │ │ + _S_not_bol
│ │ │ +, _S_not_eol
│ │ │ +, _S_not_bow
│ │ │ +, _S_not_eow
│ │ │ +,
│ │ │ + _S_any
│ │ │ +, _S_not_null
│ │ │ +, _S_continuous
│ │ │ +, _S_prev_avail
│ │ │ +,
│ │ │ + _S_sed
│ │ │ +, _S_no_copy
│ │ │ +, _S_first_only
│ │ │ +, _S_match_flag_last
│ │ │ +
│ │ │ + }
│ │ │ +constexpr match_flag_type std::regex_constants::format_first_only
│ │ │ +constexpr match_flag_type std::regex_constants::format_no_copy
│ │ │ +constexpr match_flag_type std::regex_constants::format_sed
│ │ │ +constexpr match_flag_type std::regex_constants::match_any
│ │ │ +constexpr match_flag_type std::regex_constants::match_continuous
│ │ │ +constexpr match_flag_type std::regex_constants::match_default
│ │ │ +enum std::regex_constants::match_flag_type : unsigned int
│ │ │ +constexpr match_flag_type std::regex_constants::match_not_bol
│ │ │ +constexpr match_flag_type std::regex_constants::match_not_bow
│ │ │ +constexpr match_flag_type std::regex_constants::match_not_eol
│ │ │ +constexpr match_flag_type std::regex_constants::match_not_eow
│ │ │ +constexpr match_flag_type std::regex_constants::match_not_null
│ │ │ +constexpr match_flag_type std::regex_constants::match_prev_avail
│ │ │ +constexpr match_flag_type std::regex_constants::operator& (match_flag_type __a, match_flag_type __b)
│ │ │ +match_flag_type & std::regex_constants::operator&= (match_flag_type &__a, match_flag_type __b)
│ │ │ +constexpr match_flag_type std::regex_constants::operator^ (match_flag_type __a, match_flag_type __b)
│ │ │ +match_flag_type & std::regex_constants::operator^= (match_flag_type &__a, match_flag_type __b)
│ │ │ +constexpr match_flag_type std::regex_constants::operator| (match_flag_type __a, match_flag_type __b)
│ │ │ +match_flag_type & std::regex_constants::operator|= (match_flag_type &__a, match_flag_type __b)
│ │ │ +constexpr match_flag_type std::regex_constants::operator~ (match_flag_type __a)
│ │ │
│ │ │
│ │ │ -
This is an internal header file, included by other library headers. Do not attempt to use it directly.
│ │ │ +
Constant definitions for the std regex library.
│ │ │ +
This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <regex>.
│ │ │
│ │ │ -
Definition in file exception.h .
│ │ │ +
Definition in file regex_constants.h .
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,14 +1,92 @@
│ │ │ │ libstdc++
│ │ │ │ -exception.h File Reference
│ │ │ │ +regex_constants.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_:_:_e_x_c_e_p_t_i_o_n
│ │ │ │ NNaammeessppaacceess
│ │ │ │ namespace _s_t_d
│ │ │ │ +namespace _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s
│ │ │ │ +55..11 RReegguullaarr EExxpprreessssiioonn SSyynnttaaxx OOppttiioonnss
│ │ │ │ +constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_____m_u_l_t_i_l_i_n_e
│ │ │ │ +constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_____p_o_l_y_n_o_m_i_a_l
│ │ │ │ + enum _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_____s_y_n_t_a_x___o_p_t_i_o_n {
│ │ │ │ + __SS__iiccaassee , __SS__nnoossuubbss , __SS__ooppttiimmiizzee , __SS__ccoollllaattee
│ │ │ │ + ,
│ │ │ │ + __SS__EECCMMAASSccrriipptt , __SS__bbaassiicc , __SS__eexxtteennddeedd , __SS__aawwkk
│ │ │ │ + ,
│ │ │ │ + __SS__ggrreepp , __SS__eeggrreepp , __SS__ppoollyynnoommiiaall ,
│ │ │ │ + __SS__mmuullttiilliinnee
│ │ │ │ + }
│ │ │ │ +constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_a_w_k
│ │ │ │ +constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_b_a_s_i_c
│ │ │ │ +constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_c_o_l_l_a_t_e
│ │ │ │ +constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_E_C_M_A_S_c_r_i_p_t
│ │ │ │ +constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_e_g_r_e_p
│ │ │ │ +constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_e_x_t_e_n_d_e_d
│ │ │ │ +constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_g_r_e_p
│ │ │ │ +constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_i_c_a_s_e
│ │ │ │ +constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_u_l_t_i_l_i_n_e
│ │ │ │ +constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_n_o_s_u_b_s
│ │ │ │ +constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_&
│ │ │ │ + (_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __a, _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __b)
│ │ │ │ + _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e & _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_&_=
│ │ │ │ + (_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e &__a, _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __b)
│ │ │ │ +constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_^
│ │ │ │ + (_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __a, _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __b)
│ │ │ │ + _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e & _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_^_=
│ │ │ │ + (_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e &__a, _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __b)
│ │ │ │ +constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_|
│ │ │ │ + (_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __a, _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __b)
│ │ │ │ + _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e & _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_|_=
│ │ │ │ + (_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e &__a, _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __b)
│ │ │ │ +constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_~
│ │ │ │ + (_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __a)
│ │ │ │ +constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_t_i_m_i_z_e
│ │ │ │ + enum _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e :
│ │ │ │ + unsigned int
│ │ │ │ +55..22 MMaattcchhiinngg RRuulleess
│ │ │ │ +Matching a regular expression against a sequence of characters [first, last)
│ │ │ │ +proceeds according to the rules of the grammar specified for the regular
│ │ │ │ +expression object, modified according to the effects listed below for any
│ │ │ │ +bitmask elements set.
│ │ │ │ + enum _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_____m_a_t_c_h___f_l_a_g {
│ │ │ │ + __SS__nnoott__bbooll , __SS__nnoott__eeooll , __SS__nnoott__bbooww , __SS__nnoott__eeooww
│ │ │ │ + ,
│ │ │ │ + __SS__aannyy , __SS__nnoott__nnuullll , __SS__ccoonnttiinnuuoouuss ,
│ │ │ │ + __SS__pprreevv__aavvaaiill ,
│ │ │ │ + __SS__sseedd , __SS__nnoo__ccooppyy , __SS__ffiirrsstt__oonnllyy ,
│ │ │ │ + __SS__mmaattcchh__ffllaagg__llaasstt
│ │ │ │ + }
│ │ │ │ +constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_f_o_r_m_a_t___f_i_r_s_t___o_n_l_y
│ │ │ │ +constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_f_o_r_m_a_t___n_o___c_o_p_y
│ │ │ │ +constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_f_o_r_m_a_t___s_e_d
│ │ │ │ +constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___a_n_y
│ │ │ │ +constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___c_o_n_t_i_n_u_o_u_s
│ │ │ │ +constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___d_e_f_a_u_l_t
│ │ │ │ + enum _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___f_l_a_g___t_y_p_e : unsigned int
│ │ │ │ +constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___n_o_t___b_o_l
│ │ │ │ +constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___n_o_t___b_o_w
│ │ │ │ +constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___n_o_t___e_o_l
│ │ │ │ +constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___n_o_t___e_o_w
│ │ │ │ +constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___n_o_t___n_u_l_l
│ │ │ │ +constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___p_r_e_v___a_v_a_i_l
│ │ │ │ +constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_& (_m_a_t_c_h___f_l_a_g___t_y_p_e
│ │ │ │ + __a, _m_a_t_c_h___f_l_a_g___t_y_p_e __b)
│ │ │ │ + _m_a_t_c_h___f_l_a_g___t_y_p_e & _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_&_= (_m_a_t_c_h___f_l_a_g___t_y_p_e
│ │ │ │ + &__a, _m_a_t_c_h___f_l_a_g___t_y_p_e __b)
│ │ │ │ +constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_^ (_m_a_t_c_h___f_l_a_g___t_y_p_e
│ │ │ │ + __a, _m_a_t_c_h___f_l_a_g___t_y_p_e __b)
│ │ │ │ + _m_a_t_c_h___f_l_a_g___t_y_p_e & _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_^_= (_m_a_t_c_h___f_l_a_g___t_y_p_e
│ │ │ │ + &__a, _m_a_t_c_h___f_l_a_g___t_y_p_e __b)
│ │ │ │ +constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_| (_m_a_t_c_h___f_l_a_g___t_y_p_e
│ │ │ │ + __a, _m_a_t_c_h___f_l_a_g___t_y_p_e __b)
│ │ │ │ + _m_a_t_c_h___f_l_a_g___t_y_p_e & _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_|_= (_m_a_t_c_h___f_l_a_g___t_y_p_e
│ │ │ │ + &__a, _m_a_t_c_h___f_l_a_g___t_y_p_e __b)
│ │ │ │ +constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_~ (_m_a_t_c_h___f_l_a_g___t_y_p_e
│ │ │ │ + __a)
│ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn **********
│ │ │ │ +Constant definitions for the std regex library.
│ │ │ │ This is an internal header file, included by other library headers. Do not
│ │ │ │ -attempt to use it directly.
│ │ │ │ -Definition in file _e_x_c_e_p_t_i_o_n_._h.
│ │ │ │ +attempt to use it directly. Instead, include
.
│ │ │ │ +Definition in file _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h.
│ │ │ │ * bbiittss
│ │ │ │ - * _e_x_c_e_p_t_i_o_n_._h
│ │ │ │ + * _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00332_source.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: exception.h Source File
│ │ │ +libstdc++: regex_constants.h Source File
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,114 +48,527 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
Go to the documentation of this file.
│ │ │ +
Go to the documentation of this file.
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
32 #define __EXCEPTION_H 1
│ │ │ -
│ │ │ -
34 #pragma GCC system_header
│ │ │ -
│ │ │ -
36 #pragma GCC visibility push(default)
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
64 exception() _GLIBCXX_NOTHROW { }
│ │ │ -
65 virtual ~exception() _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_NOTHROW;
│ │ │ -
66 #if __cplusplus >= 201103L
│ │ │ -
67 exception(
const exception&) =
default ;
│ │ │ -
68 exception& operator=(
const exception&) =
default ;
│ │ │ -
69 exception(exception&&) =
default ;
│ │ │ -
70 exception& operator=(exception&&) =
default ;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
76 what () const _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_NOTHROW;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
85 #pragma GCC visibility pop
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
33 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ +
│ │ │ +
35 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
173 #if __cplusplus >= 201703L || !defined __STRICT_ANSI__
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
204 &
static_cast< unsigned int > (__b));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
207 constexpr inline syntax_option_type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
211 |
static_cast< unsigned int > (__b));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
214 constexpr inline syntax_option_type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
218 ^
static_cast< unsigned int > (__b));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
221 constexpr inline syntax_option_type
│ │ │ +
│ │ │ +
│ │ │ +
225 inline syntax_option_type&
│ │ │ +
│ │ │ +
│ │ │ +
227 {
return __a = __a & __b; }
│ │ │ +
│ │ │ +
│ │ │ +
229 inline syntax_option_type&
│ │ │ +
│ │ │ +
│ │ │ +
231 {
return __a = __a | __b; }
│ │ │ +
│ │ │ +
│ │ │ +
233 inline syntax_option_type&
│ │ │ +
│ │ │ +
│ │ │ +
235 {
return __a = __a ^ __b; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
396 &
static_cast< unsigned int > (__b));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
399 constexpr inline match_flag_type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
403 |
static_cast< unsigned int > (__b));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
406 constexpr inline match_flag_type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
410 ^
static_cast< unsigned int > (__b));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
413 constexpr inline match_flag_type
│ │ │ +
│ │ │ +
│ │ │ +
417 inline match_flag_type&
│ │ │ +
│ │ │ +
│ │ │ +
419 {
return __a = __a & __b; }
│ │ │ +
│ │ │ +
│ │ │ +
421 inline match_flag_type&
│ │ │ +
│ │ │ +
│ │ │ +
423 {
return __a = __a | __b; }
│ │ │ +
│ │ │ +
│ │ │ +
425 inline match_flag_type&
│ │ │ +
│ │ │ +
│ │ │ +
427 {
return __a = __a ^ __b; }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
433 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ -
virtual const char * what() const noexcept
│ │ │ +
ISO C++ 2011 namespace for options and flags used with std::regex.
│ │ │ +
constexpr syntax_option_type __polynomial
│ │ │ +
constexpr syntax_option_type operator&(syntax_option_type __a, syntax_option_type __b)
This is a bitmask type indicating how to interpret the regex.
│ │ │ +
constexpr syntax_option_type collate
│ │ │ +
syntax_option_type & operator&=(syntax_option_type &__a, syntax_option_type __b)
This is a bitmask type indicating how to interpret the regex.
│ │ │ +
__match_flag
This is a bitmask type indicating regex matching rules.
│ │ │ +
constexpr match_flag_type match_not_bow
│ │ │ +
constexpr match_flag_type match_not_bol
│ │ │ +
constexpr syntax_option_type ECMAScript
│ │ │ +
constexpr match_flag_type match_any
│ │ │ +
constexpr syntax_option_type egrep
│ │ │ +
syntax_option_type
This is a bitmask type indicating how to interpret the regex.
│ │ │ +
constexpr syntax_option_type multiline
│ │ │ +
__syntax_option
This is a bitmask type indicating how to interpret the regex.
│ │ │ +
constexpr match_flag_type match_default
│ │ │ +
constexpr match_flag_type format_first_only
│ │ │ +
syntax_option_type & operator^=(syntax_option_type &__a, syntax_option_type __b)
This is a bitmask type indicating how to interpret the regex.
│ │ │ +
constexpr syntax_option_type awk
│ │ │ +
constexpr syntax_option_type __multiline
Extension: Equivalent to regex_constants::multiline for C++11 and C++14.
│ │ │ +
constexpr match_flag_type match_continuous
│ │ │ +
constexpr syntax_option_type extended
│ │ │ +
constexpr syntax_option_type operator^(syntax_option_type __a, syntax_option_type __b)
This is a bitmask type indicating how to interpret the regex.
│ │ │ +
constexpr syntax_option_type basic
│ │ │ +
constexpr match_flag_type match_not_eol
│ │ │ +
match_flag_type
This is a bitmask type indicating regex matching rules.
│ │ │ +
syntax_option_type & operator|=(syntax_option_type &__a, syntax_option_type __b)
This is a bitmask type indicating how to interpret the regex.
│ │ │ +
constexpr syntax_option_type icase
│ │ │ +
constexpr syntax_option_type optimize
│ │ │ +
constexpr syntax_option_type nosubs
│ │ │ +
constexpr syntax_option_type operator~(syntax_option_type __a)
This is a bitmask type indicating how to interpret the regex.
│ │ │ +
constexpr match_flag_type match_prev_avail
│ │ │ +
constexpr match_flag_type format_sed
│ │ │ +
constexpr syntax_option_type operator|(syntax_option_type __a, syntax_option_type __b)
This is a bitmask type indicating how to interpret the regex.
│ │ │ +
constexpr match_flag_type match_not_eow
│ │ │ +
constexpr match_flag_type match_not_null
│ │ │ +
constexpr match_flag_type format_no_copy
│ │ │ +
constexpr syntax_option_type grep
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,98 +1,572 @@
│ │ │ │ libstdc++
│ │ │ │ -exception.h
│ │ │ │ +regex_constants.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// Exception Handling support header for -*- C++ -*-
│ │ │ │ +1// class template regex -*- C++ -*-
│ │ │ │ 2
│ │ │ │ -3// Copyright (C) 2016-2021 Free Software Foundation, Inc.
│ │ │ │ +3// Copyright (C) 2010-2021 Free Software Foundation, Inc.
│ │ │ │ 4//
│ │ │ │ -5// This file is part of GCC.
│ │ │ │ -6//
│ │ │ │ -7// GCC is free software; you can redistribute it and/or modify
│ │ │ │ -8// it under the terms of the GNU General Public License as published by
│ │ │ │ -9// the Free Software Foundation; either version 3, or (at your option)
│ │ │ │ -10// any later version.
│ │ │ │ -11//
│ │ │ │ -12// GCC is distributed in the hope that it will be useful,
│ │ │ │ -13// but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
│ │ │ │ -15// GNU General Public License for more details.
│ │ │ │ -16//
│ │ │ │ -17// Under Section 7 of GPL version 3, you are granted additional
│ │ │ │ -18// permissions described in the GCC Runtime Library Exception, version
│ │ │ │ -19// 3.1, as published by the Free Software Foundation.
│ │ │ │ -20
│ │ │ │ -21// You should have received a copy of the GNU General Public License and
│ │ │ │ -22// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │ -23// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │ -24//
.
│ │ │ │ -25
│ │ │ │ -26/** @file bits/exception.h
│ │ │ │ -27 * This is an internal header file, included by other library headers.
│ │ │ │ -28 * Do not attempt to use it directly.
│ │ │ │ -29 */
│ │ │ │ -30
│ │ │ │ -31#ifndef __EXCEPTION_H
│ │ │ │ -32#define __EXCEPTION_H 1
│ │ │ │ -33
│ │ │ │ -34#pragma GCC system_header
│ │ │ │ -35
│ │ │ │ -36#pragma GCC visibility push(default)
│ │ │ │ -37
│ │ │ │ -38#include <_b_i_t_s_/_c_+_+_c_o_n_f_i_g_._h>
│ │ │ │ -39
│ │ │ │ -40extern "C++" {
│ │ │ │ -41
│ │ │ │ -42namespace _s_t_d
│ │ │ │ -43{
│ │ │ │ -44 /**
│ │ │ │ -45 * @defgroup exceptions Exceptions
│ │ │ │ -46 * @ingroup diagnostics
│ │ │ │ -47 * @since C++98
│ │ │ │ -48 *
│ │ │ │ -49 * Classes and functions for reporting errors via exceptions.
│ │ │ │ -50 * @{
│ │ │ │ -51 */
│ │ │ │ -52
│ │ │ │ -53 /**
│ │ │ │ -54 * @brief Base class for all library exceptions.
│ │ │ │ -55 *
│ │ │ │ -56 * This is the base class for all exceptions thrown by the standard
│ │ │ │ -57 * library, and by certain language expressions. You are free to derive
│ │ │ │ -58 * your own %exception classes, or use a different hierarchy, or to
│ │ │ │ -59 * throw non-class data (e.g., fundamental types).
│ │ │ │ -60 */
│ │ │ │ -_6_1 class exception
│ │ │ │ -62 {
│ │ │ │ -63 public:
│ │ │ │ -64 exception() _GLIBCXX_NOTHROW { }
│ │ │ │ -65 virtual ~exception() _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_NOTHROW;
│ │ │ │ -66#if __cplusplus >= 201103L
│ │ │ │ -67 exception(const exception&) = default;
│ │ │ │ -68 exception& operator=(const exception&) = default;
│ │ │ │ -69 exception(exception&&) = default;
│ │ │ │ -70 exception& operator=(exception&&) = default;
│ │ │ │ -71#endif
│ │ │ │ -72
│ │ │ │ -73 /** Returns a C-style character string describing the general cause
│ │ │ │ -74 * of the current error. */
│ │ │ │ -75 virtual const char*
│ │ │ │ -_7_6 _w_h_a_t() const _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_NOTHROW;
│ │ │ │ -77 };
│ │ │ │ -78
│ │ │ │ -79 /// @}
│ │ │ │ -80
│ │ │ │ -81} // namespace std
│ │ │ │ +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
│ │ │ │ +11// This library is distributed in the hope that it will be useful,
│ │ │ │ +12// but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
│ │ │ │ +14// GNU General Public License for more details.
│ │ │ │ +15
│ │ │ │ +16// Under Section 7 of GPL version 3, you are granted additional
│ │ │ │ +17// permissions described in the GCC Runtime Library Exception, version
│ │ │ │ +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/**
│ │ │ │ +26 * @file bits/regex_constants.h
│ │ │ │ +27 * @brief Constant definitions for the std regex library.
│ │ │ │ +28 *
│ │ │ │ +29 * This is an internal header file, included by other library headers.
│ │ │ │ +30 * Do not attempt to use it directly. @headername{regex}
│ │ │ │ +31 */
│ │ │ │ +32
│ │ │ │ +33namespace _s_t_d _GLIBCXX_VISIBILITY(default)
│ │ │ │ +34{
│ │ │ │ +35_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ +36
│ │ │ │ +37/**
│ │ │ │ +38 * @defgroup regex Regular Expressions
│ │ │ │ +39 *
│ │ │ │ +40 * A facility for performing regular expression pattern matching.
│ │ │ │ +41 * @{
│ │ │ │ +42 */
│ │ │ │ +43
│ │ │ │ +44/**
│ │ │ │ +_4_5 * @namespace std::regex_constants
│ │ │ │ +46 * @brief ISO C++ 2011 namespace for options and flags used with std::regex
│ │ │ │ +47 */
│ │ │ │ +48namespace _r_e_g_e_x___c_o_n_s_t_a_n_t_s
│ │ │ │ +49{
│ │ │ │ +50 /**
│ │ │ │ +51 * @name 5.1 Regular Expression Syntax Options
│ │ │ │ +52 */
│ │ │ │ +53 ///@{
│ │ │ │ +_5_4 enum _____s_y_n_t_a_x___o_p_t_i_o_n
│ │ │ │ +55 {
│ │ │ │ +56 _S_icase,
│ │ │ │ +57 _S_nosubs,
│ │ │ │ +58 _S_optimize,
│ │ │ │ +59 _S_collate,
│ │ │ │ +60 _S_ECMAScript,
│ │ │ │ +61 _S_basic,
│ │ │ │ +62 _S_extended,
│ │ │ │ +63 _S_awk,
│ │ │ │ +64 _S_grep,
│ │ │ │ +65 _S_egrep,
│ │ │ │ +66 _S_polynomial,
│ │ │ │ +67 _S_multiline
│ │ │ │ +68 };
│ │ │ │ +69
│ │ │ │ +70 /**
│ │ │ │ +71 * @brief This is a bitmask type indicating how to interpret the regex.
│ │ │ │ +72 *
│ │ │ │ +73 * The @c syntax_option_type is implementation defined but it is valid to
│ │ │ │ +74 * perform bitwise operations on these values and expect the right thing to
│ │ │ │ +75 * happen.
│ │ │ │ +76 *
│ │ │ │ +77 * A valid value of type syntax_option_type shall have exactly one of the
│ │ │ │ +78 * elements @c ECMAScript, @c basic, @c extended, @c awk, @c grep, @c egrep
│ │ │ │ +79 * %set.
│ │ │ │ +80 */
│ │ │ │ +_8_1 enum _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e : unsigned int { };
│ │ │ │ 82
│ │ │ │ -83}
│ │ │ │ -84
│ │ │ │ -85#pragma GCC visibility pop
│ │ │ │ -86
│ │ │ │ -87#endif
│ │ │ │ -_c_+_+_c_o_n_f_i_g_._h
│ │ │ │ +83 /**
│ │ │ │ +84 * Specifies that the matching of regular expressions against a character
│ │ │ │ +85 * sequence shall be performed without regard to case.
│ │ │ │ +86 */
│ │ │ │ +_8_7 _GLIBCXX17_INLINE constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _i_c_a_s_e =
│ │ │ │ +88 static_cast<_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e>(1 << _S_icase);
│ │ │ │ +89
│ │ │ │ +90 /**
│ │ │ │ +91 * Specifies that when a regular expression is matched against a character
│ │ │ │ +92 * container sequence, no sub-expression matches are to be stored in the
│ │ │ │ +93 * supplied match_results structure.
│ │ │ │ +94 */
│ │ │ │ +_9_5 _GLIBCXX17_INLINE constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _n_o_s_u_b_s =
│ │ │ │ +96 static_cast<_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e>(1 << _S_nosubs);
│ │ │ │ +97
│ │ │ │ +98 /**
│ │ │ │ +99 * Specifies that the regular expression engine should pay more attention to
│ │ │ │ +100 * the speed with which regular expressions are matched, and less to the
│ │ │ │ +101 * speed with which regular expression objects are constructed. Otherwise
│ │ │ │ +102 * it has no detectable effect on the program output.
│ │ │ │ +103 */
│ │ │ │ +_1_0_4 _GLIBCXX17_INLINE constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _o_p_t_i_m_i_z_e =
│ │ │ │ +105 static_cast<_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e>(1 << _S_optimize);
│ │ │ │ +106
│ │ │ │ +107 /**
│ │ │ │ +108 * Specifies that character ranges of the form [a-b] should be locale
│ │ │ │ +109 * sensitive.
│ │ │ │ +110 */
│ │ │ │ +_1_1_1 _GLIBCXX17_INLINE constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _c_o_l_l_a_t_e =
│ │ │ │ +112 static_cast<_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e>(1 << _S_collate);
│ │ │ │ +113
│ │ │ │ +114 /**
│ │ │ │ +115 * Specifies that the grammar recognized by the regular expression engine is
│ │ │ │ +116 * that used by ECMAScript in ECMA-262 [Ecma International, ECMAScript
│ │ │ │ +117 * Language Specification, Standard Ecma-262, third edition, 1999], as
│ │ │ │ +118 * modified in section [28.13]. This grammar is similar to that defined
│ │ │ │ +119 * in the PERL scripting language but extended with elements found in the
│ │ │ │ +120 * POSIX regular expression grammar.
│ │ │ │ +121 */
│ │ │ │ +_1_2_2 _GLIBCXX17_INLINE constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _E_C_M_A_S_c_r_i_p_t =
│ │ │ │ +123 static_cast<_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e>(1 << _S_ECMAScript);
│ │ │ │ +124
│ │ │ │ +125 /**
│ │ │ │ +126 * Specifies that the grammar recognized by the regular expression engine is
│ │ │ │ +127 * that used by POSIX basic regular expressions in IEEE Std 1003.1-2001,
│ │ │ │ +128 * Portable Operating System Interface (POSIX), Base Definitions and
│ │ │ │ +129 * Headers, Section 9, Regular Expressions [IEEE, Information Technology --
│ │ │ │ +130 * Portable Operating System Interface (POSIX), IEEE Standard 1003.1-2001].
│ │ │ │ +131 */
│ │ │ │ +_1_3_2 _GLIBCXX17_INLINE constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _b_a_s_i_c =
│ │ │ │ +133 static_cast<_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e>(1 << _S_basic);
│ │ │ │ +134
│ │ │ │ +135 /**
│ │ │ │ +136 * Specifies that the grammar recognized by the regular expression engine is
│ │ │ │ +137 * that used by POSIX extended regular expressions in IEEE Std 1003.1-2001,
│ │ │ │ +138 * Portable Operating System Interface (POSIX), Base Definitions and
│ │ │ │ +139 * Headers, Section 9, Regular Expressions.
│ │ │ │ +140 */
│ │ │ │ +_1_4_1 _GLIBCXX17_INLINE constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _e_x_t_e_n_d_e_d =
│ │ │ │ +142 static_cast<_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e>(1 << _S_extended);
│ │ │ │ +143
│ │ │ │ +144 /**
│ │ │ │ +145 * Specifies that the grammar recognized by the regular expression engine is
│ │ │ │ +146 * that used by POSIX utility awk in IEEE Std 1003.1-2001. This option is
│ │ │ │ +147 * identical to syntax_option_type extended, except that C-style escape
│ │ │ │ +148 * sequences are supported. These sequences are:
│ │ │ │ +149 * \\\\, \\a, \\b, \\f, \\n, \\r, \\t , \\v, \\&apos,, &apos,,
│ │ │ │ +150 * and \\ddd (where ddd is one, two, or three octal digits).
│ │ │ │ +151 */
│ │ │ │ +_1_5_2 _GLIBCXX17_INLINE constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _a_w_k =
│ │ │ │ +153 static_cast<_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e>(1 << _S_awk);
│ │ │ │ +154
│ │ │ │ +155 /**
│ │ │ │ +156 * Specifies that the grammar recognized by the regular expression engine is
│ │ │ │ +157 * that used by POSIX utility grep in IEEE Std 1003.1-2001. This option is
│ │ │ │ +158 * identical to syntax_option_type basic, except that newlines are treated
│ │ │ │ +159 * as whitespace.
│ │ │ │ +160 */
│ │ │ │ +_1_6_1 _GLIBCXX17_INLINE constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _g_r_e_p =
│ │ │ │ +162 static_cast<_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e>(1 << _S_grep);
│ │ │ │ +163
│ │ │ │ +164 /**
│ │ │ │ +165 * Specifies that the grammar recognized by the regular expression engine is
│ │ │ │ +166 * that used by POSIX utility grep when given the -E option in
│ │ │ │ +167 * IEEE Std 1003.1-2001. This option is identical to syntax_option_type
│ │ │ │ +168 * extended, except that newlines are treated as whitespace.
│ │ │ │ +169 */
│ │ │ │ +_1_7_0 _GLIBCXX17_INLINE constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _e_g_r_e_p =
│ │ │ │ +171 static_cast<_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e>(1 << _S_egrep);
│ │ │ │ +172
│ │ │ │ +173#if __cplusplus >= 201703L || !defined __STRICT_ANSI__
│ │ │ │ +174 // _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ +175 // 2503. multiline option should be added to syntax_option_type
│ │ │ │ +176 /**
│ │ │ │ +177 * Specifies that the `^` anchor matches at the beginning of a line,
│ │ │ │ +178 * and the `$` anchor matches at the end of a line, not only at the
│ │ │ │ +179 * beginning/end of the input.
│ │ │ │ +180 * Valid for the ECMAScript syntax, ignored otherwise.
│ │ │ │ +181 * @since C++17
│ │ │ │ +182 */
│ │ │ │ +_1_8_3 _GLIBCXX17_INLINE constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _m_u_l_t_i_l_i_n_e =
│ │ │ │ +184 static_cast<_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e>(1 << _S_multiline);
│ │ │ │ +185#endif
│ │ │ │ +186
│ │ │ │ +187 /// Extension: Equivalent to regex_constants::multiline for C++11 and
│ │ │ │ +C++14.
│ │ │ │ +_1_8_8 _GLIBCXX17_INLINE constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _____m_u_l_t_i_l_i_n_e =
│ │ │ │ +189 static_cast<_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e>(1 << _S_multiline);
│ │ │ │ +190
│ │ │ │ +191 /**
│ │ │ │ +192 * Extension: Ensure both space complexity of compiled regex and
│ │ │ │ +193 * time complexity execution are not exponential.
│ │ │ │ +194 * If specified in a regex with back-references, the exception
│ │ │ │ +195 * regex_constants::error_complexity will be thrown.
│ │ │ │ +196 */
│ │ │ │ +_1_9_7 _GLIBCXX17_INLINE constexpr _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e _____p_o_l_y_n_o_m_i_a_l =
│ │ │ │ +198 static_cast<_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e>(1 << _S_polynomial);
│ │ │ │ +199
│ │ │ │ +200 constexpr inline _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e
│ │ │ │ +_2_0_1 _o_p_e_r_a_t_o_r_&(_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __a, _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __b)
│ │ │ │ +202 {
│ │ │ │ +203 return (_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e)(static_cast
(__a)
│ │ │ │ +204 & static_cast(__b));
│ │ │ │ +205 }
│ │ │ │ +206
│ │ │ │ +207 constexpr inline syntax_option_type
│ │ │ │ +_2_0_8 _o_p_e_r_a_t_o_r_|(_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __a, _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __b)
│ │ │ │ +209 {
│ │ │ │ +210 return (_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e)(static_cast(__a)
│ │ │ │ +211 | static_cast(__b));
│ │ │ │ +212 }
│ │ │ │ +213
│ │ │ │ +214 constexpr inline syntax_option_type
│ │ │ │ +_2_1_5 _o_p_e_r_a_t_o_r_^(_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __a, _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __b)
│ │ │ │ +216 {
│ │ │ │ +217 return (_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e)(static_cast(__a)
│ │ │ │ +218 ^ static_cast(__b));
│ │ │ │ +219 }
│ │ │ │ +220
│ │ │ │ +221 constexpr inline syntax_option_type
│ │ │ │ +_2_2_2 _o_p_e_r_a_t_o_r_~(_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __a)
│ │ │ │ +223 { return (_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e)(~static_cast(__a)); }
│ │ │ │ +224
│ │ │ │ +225 inline syntax_option_type&
│ │ │ │ +_2_2_6 _o_p_e_r_a_t_o_r_&_=(_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e& __a, _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __b)
│ │ │ │ +227 { return __a = __a & __b; }
│ │ │ │ +228
│ │ │ │ +229 inline syntax_option_type&
│ │ │ │ +_2_3_0 _o_p_e_r_a_t_o_r_|_=(_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e& __a, _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __b)
│ │ │ │ +231 { return __a = __a | __b; }
│ │ │ │ +232
│ │ │ │ +233 inline syntax_option_type&
│ │ │ │ +_2_3_4 _o_p_e_r_a_t_o_r_^_=(_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e& __a, _s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e __b)
│ │ │ │ +235 { return __a = __a ^ __b; }
│ │ │ │ +236
│ │ │ │ +237 ///@}
│ │ │ │ +238
│ │ │ │ +239 /**
│ │ │ │ +240 * @name 5.2 Matching Rules
│ │ │ │ +241 *
│ │ │ │ +242 * Matching a regular expression against a sequence of characters [first,
│ │ │ │ +243 * last) proceeds according to the rules of the grammar specified for the
│ │ │ │ +244 * regular expression object, modified according to the effects listed
│ │ │ │ +245 * below for any bitmask elements set.
│ │ │ │ +246 *
│ │ │ │ +247 */
│ │ │ │ +248 ///@{
│ │ │ │ +249
│ │ │ │ +_2_5_0 enum _____m_a_t_c_h___f_l_a_g
│ │ │ │ +251 {
│ │ │ │ +252 _S_not_bol,
│ │ │ │ +253 _S_not_eol,
│ │ │ │ +254 _S_not_bow,
│ │ │ │ +255 _S_not_eow,
│ │ │ │ +256 _S_any,
│ │ │ │ +257 _S_not_null,
│ │ │ │ +258 _S_continuous,
│ │ │ │ +259 _S_prev_avail,
│ │ │ │ +260 _S_sed,
│ │ │ │ +261 _S_no_copy,
│ │ │ │ +262 _S_first_only,
│ │ │ │ +263 _S_match_flag_last
│ │ │ │ +264 };
│ │ │ │ +265
│ │ │ │ +266 /**
│ │ │ │ +267 * @brief This is a bitmask type indicating regex matching rules.
│ │ │ │ +268 *
│ │ │ │ +269 * The @c match_flag_type is implementation defined but it is valid to
│ │ │ │ +270 * perform bitwise operations on these values and expect the right thing to
│ │ │ │ +271 * happen.
│ │ │ │ +272 */
│ │ │ │ +_2_7_3 enum _m_a_t_c_h___f_l_a_g___t_y_p_e : unsigned int { };
│ │ │ │ +274
│ │ │ │ +275 /**
│ │ │ │ +276 * The default matching rules.
│ │ │ │ +277 */
│ │ │ │ +_2_7_8 _GLIBCXX17_INLINE constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _m_a_t_c_h___d_e_f_a_u_l_t =
│ │ │ │ +279 static_cast<_m_a_t_c_h___f_l_a_g___t_y_p_e>(0);
│ │ │ │ +280
│ │ │ │ +281 /**
│ │ │ │ +282 * The first character in the sequence [first, last) is treated as though it
│ │ │ │ +283 * is not at the beginning of a line, so the character (^) in the regular
│ │ │ │ +284 * expression shall not match [first, first).
│ │ │ │ +285 */
│ │ │ │ +_2_8_6 _GLIBCXX17_INLINE constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _m_a_t_c_h___n_o_t___b_o_l =
│ │ │ │ +287 static_cast<_m_a_t_c_h___f_l_a_g___t_y_p_e>(1 << _S_not_bol);
│ │ │ │ +288
│ │ │ │ +289 /**
│ │ │ │ +290 * The last character in the sequence [first, last) is treated as though it
│ │ │ │ +291 * is not at the end of a line, so the character ($) in the regular
│ │ │ │ +292 * expression shall not match [last, last).
│ │ │ │ +293 */
│ │ │ │ +_2_9_4 _GLIBCXX17_INLINE constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _m_a_t_c_h___n_o_t___e_o_l =
│ │ │ │ +295 static_cast<_m_a_t_c_h___f_l_a_g___t_y_p_e>(1 << _S_not_eol);
│ │ │ │ +296
│ │ │ │ +297 /**
│ │ │ │ +298 * The expression \\b is not matched against the sub-sequence
│ │ │ │ +299 * [first,first).
│ │ │ │ +300 */
│ │ │ │ +_3_0_1 _GLIBCXX17_INLINE constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _m_a_t_c_h___n_o_t___b_o_w =
│ │ │ │ +302 static_cast<_m_a_t_c_h___f_l_a_g___t_y_p_e>(1 << _S_not_bow);
│ │ │ │ +303
│ │ │ │ +304 /**
│ │ │ │ +305 * The expression \\b should not be matched against the sub-sequence
│ │ │ │ +306 * [last,last).
│ │ │ │ +307 */
│ │ │ │ +_3_0_8 _GLIBCXX17_INLINE constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _m_a_t_c_h___n_o_t___e_o_w =
│ │ │ │ +309 static_cast<_m_a_t_c_h___f_l_a_g___t_y_p_e>(1 << _S_not_eow);
│ │ │ │ +310
│ │ │ │ +311 /**
│ │ │ │ +312 * If more than one match is possible then any match is an acceptable
│ │ │ │ +313 * result.
│ │ │ │ +314 */
│ │ │ │ +_3_1_5 _GLIBCXX17_INLINE constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _m_a_t_c_h___a_n_y =
│ │ │ │ +316 static_cast<_m_a_t_c_h___f_l_a_g___t_y_p_e>(1 << _S_any);
│ │ │ │ +317
│ │ │ │ +318 /**
│ │ │ │ +319 * The expression does not match an empty sequence.
│ │ │ │ +320 */
│ │ │ │ +_3_2_1 _GLIBCXX17_INLINE constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _m_a_t_c_h___n_o_t___n_u_l_l =
│ │ │ │ +322 static_cast<_m_a_t_c_h___f_l_a_g___t_y_p_e>(1 << _S_not_null);
│ │ │ │ +323
│ │ │ │ +324 /**
│ │ │ │ +325 * The expression only matches a sub-sequence that begins at first .
│ │ │ │ +326 */
│ │ │ │ +_3_2_7 _GLIBCXX17_INLINE constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _m_a_t_c_h___c_o_n_t_i_n_u_o_u_s =
│ │ │ │ +328 static_cast<_m_a_t_c_h___f_l_a_g___t_y_p_e>(1 << _S_continuous);
│ │ │ │ +329
│ │ │ │ +330 /**
│ │ │ │ +331 * `--first` is a valid iterator position. When this flag is set then the
│ │ │ │ +332 * flags `match_not_bol` and `match_not_bow` are ignored by the algorithms
│ │ │ │ +333 * `regex_match`, `regex_search`, and `regex_replace`, and by the iterators
│ │ │ │ +334 * `regex_iterator` and `regex_token_iterator`.
│ │ │ │ +335 */
│ │ │ │ +_3_3_6 _GLIBCXX17_INLINE constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _m_a_t_c_h___p_r_e_v___a_v_a_i_l =
│ │ │ │ +337 static_cast<_m_a_t_c_h___f_l_a_g___t_y_p_e>(1 << _S_prev_avail);
│ │ │ │ +338
│ │ │ │ +339 /**
│ │ │ │ +340 * When a regular expression match is to be replaced by a new string, the
│ │ │ │ +341 * new string is constructed using the rules used by the ECMAScript replace
│ │ │ │ +342 * function in ECMA- 262 [Ecma International, ECMAScript Language
│ │ │ │ +343 * Specification, Standard Ecma-262, third edition, 1999], part 15.5.4.11
│ │ │ │ +344 * String.prototype.replace. In addition, during search and replace
│ │ │ │ +345 * operations all non-overlapping occurrences of the regular expression
│ │ │ │ +346 * are located and replaced, and sections of the input that did not match
│ │ │ │ +347 * the expression are copied unchanged to the output string.
│ │ │ │ +348 *
│ │ │ │ +349 * Format strings (from ECMA-262 [15.5.4.11]):
│ │ │ │ +350 * @li $$ The dollar-sign itself ($)
│ │ │ │ +351 * @li $& The matched substring.
│ │ │ │ +352 * @li $` The portion of @a string that precedes the matched substring.
│ │ │ │ +353 * This would be match_results::prefix().
│ │ │ │ +354 * @li $' The portion of @a string that follows the matched substring.
│ │ │ │ +355 * This would be match_results::suffix().
│ │ │ │ +356 * @li $n The nth capture, where n is in [1,9] and $n is not followed by a
│ │ │ │ +357 * decimal digit. If n <= match_results::size() and the nth capture
│ │ │ │ +358 * is undefined, use the empty string instead. If n >
│ │ │ │ +359 * match_results::size(), the result is implementation-defined.
│ │ │ │ +360 * @li $nn The nnth capture, where nn is a two-digit decimal number on
│ │ │ │ +361 * [01, 99]. If nn <= match_results::size() and the nth capture is
│ │ │ │ +362 * undefined, use the empty string instead. If
│ │ │ │ +363 * nn > match_results::size(), the result is implementation-defined.
│ │ │ │ +364 */
│ │ │ │ +365 _GLIBCXX17_INLINE constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e format_default =
│ │ │ │ +366 static_cast<_m_a_t_c_h___f_l_a_g___t_y_p_e>(0);
│ │ │ │ +367
│ │ │ │ +368 /**
│ │ │ │ +369 * When a regular expression match is to be replaced by a new string, the
│ │ │ │ +370 * new string is constructed using the rules used by the POSIX sed utility
│ │ │ │ +371 * in IEEE Std 1003.1- 2001 [IEEE, Information Technology -- Portable
│ │ │ │ +372 * Operating System Interface (POSIX), IEEE Standard 1003.1-2001].
│ │ │ │ +373 */
│ │ │ │ +_3_7_4 _GLIBCXX17_INLINE constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _f_o_r_m_a_t___s_e_d =
│ │ │ │ +375 static_cast<_m_a_t_c_h___f_l_a_g___t_y_p_e>(1 << _S_sed);
│ │ │ │ +376
│ │ │ │ +377 /**
│ │ │ │ +378 * During a search and replace operation, sections of the character
│ │ │ │ +379 * container sequence being searched that do not match the regular
│ │ │ │ +380 * expression shall not be copied to the output string.
│ │ │ │ +381 */
│ │ │ │ +_3_8_2 _GLIBCXX17_INLINE constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _f_o_r_m_a_t___n_o___c_o_p_y =
│ │ │ │ +383 static_cast<_m_a_t_c_h___f_l_a_g___t_y_p_e>(1 << _S_no_copy);
│ │ │ │ +384
│ │ │ │ +385 /**
│ │ │ │ +386 * When specified during a search and replace operation, only the first
│ │ │ │ +387 * occurrence of the regular expression shall be replaced.
│ │ │ │ +388 */
│ │ │ │ +_3_8_9 _GLIBCXX17_INLINE constexpr _m_a_t_c_h___f_l_a_g___t_y_p_e _f_o_r_m_a_t___f_i_r_s_t___o_n_l_y =
│ │ │ │ +390 static_cast<_m_a_t_c_h___f_l_a_g___t_y_p_e>(1 << _S_first_only);
│ │ │ │ +391
│ │ │ │ +392 constexpr inline _m_a_t_c_h___f_l_a_g___t_y_p_e
│ │ │ │ +_3_9_3 _o_p_e_r_a_t_o_r_&(_m_a_t_c_h___f_l_a_g___t_y_p_e __a, _m_a_t_c_h___f_l_a_g___t_y_p_e __b)
│ │ │ │ +394 {
│ │ │ │ +395 return (_m_a_t_c_h___f_l_a_g___t_y_p_e)(static_cast(__a)
│ │ │ │ +396 & static_cast(__b));
│ │ │ │ +397 }
│ │ │ │ +398
│ │ │ │ +399 constexpr inline match_flag_type
│ │ │ │ +_4_0_0 _o_p_e_r_a_t_o_r_|(_m_a_t_c_h___f_l_a_g___t_y_p_e __a, _m_a_t_c_h___f_l_a_g___t_y_p_e __b)
│ │ │ │ +401 {
│ │ │ │ +402 return (_m_a_t_c_h___f_l_a_g___t_y_p_e)(static_cast(__a)
│ │ │ │ +403 | static_cast(__b));
│ │ │ │ +404 }
│ │ │ │ +405
│ │ │ │ +406 constexpr inline match_flag_type
│ │ │ │ +_4_0_7 _o_p_e_r_a_t_o_r_^(_m_a_t_c_h___f_l_a_g___t_y_p_e __a, _m_a_t_c_h___f_l_a_g___t_y_p_e __b)
│ │ │ │ +408 {
│ │ │ │ +409 return (_m_a_t_c_h___f_l_a_g___t_y_p_e)(static_cast(__a)
│ │ │ │ +410 ^ static_cast(__b));
│ │ │ │ +411 }
│ │ │ │ +412
│ │ │ │ +413 constexpr inline match_flag_type
│ │ │ │ +_4_1_4 _o_p_e_r_a_t_o_r_~(_m_a_t_c_h___f_l_a_g___t_y_p_e __a)
│ │ │ │ +415 { return (_m_a_t_c_h___f_l_a_g___t_y_p_e)(~static_cast(__a)); }
│ │ │ │ +416
│ │ │ │ +417 inline match_flag_type&
│ │ │ │ +_4_1_8 _o_p_e_r_a_t_o_r_&_=(_m_a_t_c_h___f_l_a_g___t_y_p_e& __a, _m_a_t_c_h___f_l_a_g___t_y_p_e __b)
│ │ │ │ +419 { return __a = __a & __b; }
│ │ │ │ +420
│ │ │ │ +421 inline match_flag_type&
│ │ │ │ +_4_2_2 _o_p_e_r_a_t_o_r_|_=(_m_a_t_c_h___f_l_a_g___t_y_p_e& __a, _m_a_t_c_h___f_l_a_g___t_y_p_e __b)
│ │ │ │ +423 { return __a = __a | __b; }
│ │ │ │ +424
│ │ │ │ +425 inline match_flag_type&
│ │ │ │ +_4_2_6 _o_p_e_r_a_t_o_r_^_=(_m_a_t_c_h___f_l_a_g___t_y_p_e& __a, _m_a_t_c_h___f_l_a_g___t_y_p_e __b)
│ │ │ │ +427 { return __a = __a ^ __b; }
│ │ │ │ +428
│ │ │ │ +429 ///@}
│ │ │ │ +430} // namespace regex_constants
│ │ │ │ +431/// @} group regex
│ │ │ │ +432
│ │ │ │ +433_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ +434} // namespace std
│ │ │ │ +435
│ │ │ │ _s_t_d
│ │ │ │ ISO C++ entities toplevel namespace is std.
│ │ │ │ -_s_t_d_:_:_e_x_c_e_p_t_i_o_n_:_:_w_h_a_t
│ │ │ │ -virtual const char * what() const noexcept
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s
│ │ │ │ +ISO C++ 2011 namespace for options and flags used with std::regex.
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_____p_o_l_y_n_o_m_i_a_l
│ │ │ │ +constexpr syntax_option_type __polynomial
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_1_9_7
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_&
│ │ │ │ +constexpr syntax_option_type operator&(syntax_option_type __a,
│ │ │ │ +syntax_option_type __b)
│ │ │ │ +This is a bitmask type indicating how to interpret the regex.
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_2_0_1
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_c_o_l_l_a_t_e
│ │ │ │ +constexpr syntax_option_type collate
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_1_1_1
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_&_=
│ │ │ │ +syntax_option_type & operator&=(syntax_option_type &__a, syntax_option_type
│ │ │ │ +__b)
│ │ │ │ +This is a bitmask type indicating how to interpret the regex.
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_2_2_6
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_____m_a_t_c_h___f_l_a_g
│ │ │ │ +__match_flag
│ │ │ │ +This is a bitmask type indicating regex matching rules.
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_2_5_1
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___n_o_t___b_o_w
│ │ │ │ +constexpr match_flag_type match_not_bow
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_3_0_1
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___n_o_t___b_o_l
│ │ │ │ +constexpr match_flag_type match_not_bol
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_2_8_6
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_E_C_M_A_S_c_r_i_p_t
│ │ │ │ +constexpr syntax_option_type ECMAScript
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_1_2_2
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___a_n_y
│ │ │ │ +constexpr match_flag_type match_any
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_3_1_5
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_e_g_r_e_p
│ │ │ │ +constexpr syntax_option_type egrep
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_1_7_0
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_s_y_n_t_a_x___o_p_t_i_o_n___t_y_p_e
│ │ │ │ +syntax_option_type
│ │ │ │ +This is a bitmask type indicating how to interpret the regex.
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_8_1
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_u_l_t_i_l_i_n_e
│ │ │ │ +constexpr syntax_option_type multiline
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_1_8_3
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_____s_y_n_t_a_x___o_p_t_i_o_n
│ │ │ │ +__syntax_option
│ │ │ │ +This is a bitmask type indicating how to interpret the regex.
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_5_5
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___d_e_f_a_u_l_t
│ │ │ │ +constexpr match_flag_type match_default
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_2_7_8
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_f_o_r_m_a_t___f_i_r_s_t___o_n_l_y
│ │ │ │ +constexpr match_flag_type format_first_only
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_3_8_9
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_^_=
│ │ │ │ +syntax_option_type & operator^=(syntax_option_type &__a, syntax_option_type
│ │ │ │ +__b)
│ │ │ │ +This is a bitmask type indicating how to interpret the regex.
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_2_3_4
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_a_w_k
│ │ │ │ +constexpr syntax_option_type awk
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_1_5_2
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_____m_u_l_t_i_l_i_n_e
│ │ │ │ +constexpr syntax_option_type __multiline
│ │ │ │ +Extension: Equivalent to regex_constants::multiline for C++11 and C++14.
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_1_8_8
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___c_o_n_t_i_n_u_o_u_s
│ │ │ │ +constexpr match_flag_type match_continuous
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_3_2_7
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_e_x_t_e_n_d_e_d
│ │ │ │ +constexpr syntax_option_type extended
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_1_4_1
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_^
│ │ │ │ +constexpr syntax_option_type operator^(syntax_option_type __a,
│ │ │ │ +syntax_option_type __b)
│ │ │ │ +This is a bitmask type indicating how to interpret the regex.
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_2_1_5
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_b_a_s_i_c
│ │ │ │ +constexpr syntax_option_type basic
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_1_3_2
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___n_o_t___e_o_l
│ │ │ │ +constexpr match_flag_type match_not_eol
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_2_9_4
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___f_l_a_g___t_y_p_e
│ │ │ │ +match_flag_type
│ │ │ │ +This is a bitmask type indicating regex matching rules.
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_2_7_3
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_|_=
│ │ │ │ +syntax_option_type & operator|=(syntax_option_type &__a, syntax_option_type
│ │ │ │ +__b)
│ │ │ │ +This is a bitmask type indicating how to interpret the regex.
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_2_3_0
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_i_c_a_s_e
│ │ │ │ +constexpr syntax_option_type icase
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_8_7
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_t_i_m_i_z_e
│ │ │ │ +constexpr syntax_option_type optimize
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_1_0_4
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_n_o_s_u_b_s
│ │ │ │ +constexpr syntax_option_type nosubs
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_9_5
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_~
│ │ │ │ +constexpr syntax_option_type operator~(syntax_option_type __a)
│ │ │ │ +This is a bitmask type indicating how to interpret the regex.
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_2_2_2
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___p_r_e_v___a_v_a_i_l
│ │ │ │ +constexpr match_flag_type match_prev_avail
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_3_3_6
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_f_o_r_m_a_t___s_e_d
│ │ │ │ +constexpr match_flag_type format_sed
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_3_7_4
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_o_p_e_r_a_t_o_r_|
│ │ │ │ +constexpr syntax_option_type operator|(syntax_option_type __a,
│ │ │ │ +syntax_option_type __b)
│ │ │ │ +This is a bitmask type indicating how to interpret the regex.
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_2_0_8
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___n_o_t___e_o_w
│ │ │ │ +constexpr match_flag_type match_not_eow
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_3_0_8
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_m_a_t_c_h___n_o_t___n_u_l_l
│ │ │ │ +constexpr match_flag_type match_not_null
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_3_2_1
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_f_o_r_m_a_t___n_o___c_o_p_y
│ │ │ │ +constexpr match_flag_type format_no_copy
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_3_8_2
│ │ │ │ +_s_t_d_:_:_r_e_g_e_x___c_o_n_s_t_a_n_t_s_:_:_g_r_e_p
│ │ │ │ +constexpr syntax_option_type grep
│ │ │ │ +DDeeffiinniittiioonn _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h_:_1_6_1
│ │ │ │ * bbiittss
│ │ │ │ - * _e_x_c_e_p_t_i_o_n_._h
│ │ │ │ + * _r_e_g_e_x___c_o_n_s_t_a_n_t_s_._h
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00335.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: cxxabi_init_exception.h File Reference
│ │ │ +libstdc++: boost_concept_check.h File Reference
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,72 +48,253 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
Go to the source code of this file.
│ │ │
│ │ │
│ │ │ -#define _GLIBCXX_CDTOR_CALLABI
│ │ │ -#define _GLIBCXX_HAVE_CDTOR_CALLABI
│ │ │ +#define _GLIBCXX_CLASS_REQUIRES (_type_var, _ns, _concept)
│ │ │ +#define _GLIBCXX_CLASS_REQUIRES2 (_type_var1, _type_var2, _ns, _concept)
│ │ │ +#define _GLIBCXX_CLASS_REQUIRES3 (_type_var1, _type_var2, _type_var3, _ns, _concept)
│ │ │ +#define _GLIBCXX_CLASS_REQUIRES4 (_type_var1, _type_var2, _type_var3, _type_var4, _ns, _concept)
│ │ │ +#define _GLIBCXX_DEFINE_BINARY_OPERATOR_CONSTRAINT (_OP, _NAME)
│ │ │ +#define _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT (_OP, _NAME)
│ │ │ +#define _IsUnused
│ │ │
│ │ │
│ │ │ -
│ │ │ -void * __cxxabiv1::__cxa_allocate_exception (size_t) noexcept
│ │ │ -
│ │ │ -void __cxxabiv1::__cxa_free_exception (void *) noexcept
│ │ │ -
│ │ │ -__cxa_refcounted_exception * __cxxabiv1::__cxa_init_primary_exception (void *object, std::type_info *tinfo, void(*dest)(void *)) noexcept
│ │ │ +template<class _Tp>
│ │ │ +void __gnu_cxx::__aux_require_boolean_expr (const _Tp &__t)
│ │ │ +
│ │ │ +void __gnu_cxx::__error_type_must_be_a_signed_integer_type ()
│ │ │ +
│ │ │ +void __gnu_cxx::__error_type_must_be_an_integer_type ()
│ │ │ +
│ │ │ +void __gnu_cxx::__error_type_must_be_an_unsigned_integer_type ()
│ │ │ +template<class _Concept>
│ │ │ +constexpr void __gnu_cxx::__function_requires ()
│ │ │
│ │ │
│ │ │ -
This is an internal header file, included by other library headers. Do not attempt to use it directly.
│ │ │ +
This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <iterator>.
│ │ │
│ │ │ -
Definition in file cxxabi_init_exception.h .
│ │ │ +
Definition in file boost_concept_check.h .
│ │ │
│ │ │ -
│ │ │ -
◆ _GLIBCXX_CDTOR_CALLABI
│ │ │ +
│ │ │ +
◆ _GLIBCXX_CLASS_REQUIRES
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - #define _GLIBCXX_CDTOR_CALLABI
│ │ │ + #define _GLIBCXX_CLASS_REQUIRES
│ │ │ + (
│ │ │ + _type_var ,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + _ns ,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + _concept )
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
◆ _GLIBCXX_CLASS_REQUIRES2
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + #define _GLIBCXX_CLASS_REQUIRES2
│ │ │ + (
│ │ │ + _type_var1 ,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + _type_var2 ,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + _ns ,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + _concept )
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
◆ _GLIBCXX_CLASS_REQUIRES3
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + #define _GLIBCXX_CLASS_REQUIRES3
│ │ │ + (
│ │ │ + _type_var1 ,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + _type_var2 ,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + _type_var3 ,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + _ns ,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + _concept )
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
◆ _GLIBCXX_CLASS_REQUIRES4
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + #define _GLIBCXX_CLASS_REQUIRES4
│ │ │ + (
│ │ │ + _type_var1 ,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + _type_var2 ,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + _type_var3 ,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + _type_var4 ,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + _ns ,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + _concept )
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
◆ _GLIBCXX_DEFINE_BINARY_OPERATOR_CONSTRAINT
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + #define _GLIBCXX_DEFINE_BINARY_OPERATOR_CONSTRAINT
│ │ │ + (
│ │ │ + _OP ,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + _NAME )
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
◆ _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + #define _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT
│ │ │ + (
│ │ │ + _OP ,
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + _NAME )
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
◆ _GLIBCXX_HAVE_CDTOR_CALLABI
│ │ │ +
│ │ │ +
◆ _IsUnused
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - #define _GLIBCXX_HAVE_CDTOR_CALLABI
│ │ │ + #define _IsUnused
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -122,13 +303,13 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,30 +1,68 @@
│ │ │ │ libstdc++
│ │ │ │ -cxxabi_init_exception.h File Reference
│ │ │ │ +boost_concept_check.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_.
│ │ │ │ NNaammeessppaacceess
│ │ │ │ -namespace _s_t_d
│ │ │ │ +namespace _____g_n_u___c_x_x
│ │ │ │ MMaaccrrooss
│ │ │ │ -#define ___G_L_I_B_C_X_X___C_D_T_O_R___C_A_L_L_A_B_I
│ │ │ │ -#define ___G_L_I_B_C_X_X___H_A_V_E___C_D_T_O_R___C_A_L_L_A_B_I
│ │ │ │ +#define ___G_L_I_B_C_X_X___C_L_A_S_S___R_E_Q_U_I_R_E_S(_type_var, _ns, _concept)
│ │ │ │ +#define ___G_L_I_B_C_X_X___C_L_A_S_S___R_E_Q_U_I_R_E_S_2(_type_var1, _type_var2, _ns, _concept)
│ │ │ │ +#define ___G_L_I_B_C_X_X___C_L_A_S_S___R_E_Q_U_I_R_E_S_3(_type_var1, _type_var2, _type_var3, _ns,
│ │ │ │ + _concept)
│ │ │ │ +#define ___G_L_I_B_C_X_X___C_L_A_S_S___R_E_Q_U_I_R_E_S_4(_type_var1, _type_var2, _type_var3,
│ │ │ │ + _type_var4, _ns, _concept)
│ │ │ │ +#define ___G_L_I_B_C_X_X___D_E_F_I_N_E___B_I_N_A_R_Y___O_P_E_R_A_T_O_R___C_O_N_S_T_R_A_I_N_T(_OP, _NAME)
│ │ │ │ +#define ___G_L_I_B_C_X_X___D_E_F_I_N_E___B_I_N_A_R_Y___P_R_E_D_I_C_A_T_E___O_P___C_O_N_S_T_R_A_I_N_T(_OP, _NAME)
│ │ │ │ +#define ___I_s_U_n_u_s_e_d
│ │ │ │ FFuunnccttiioonnss
│ │ │ │ - void * ____ccxxxxaabbiivv11::::____ccxxaa__aallllooccaattee__eexxcceeppttiioonn (size_t)
│ │ │ │ - noexcept
│ │ │ │ - void ____ccxxxxaabbiivv11::::____ccxxaa__ffrreeee__eexxcceeppttiioonn (void *)
│ │ │ │ - noexcept
│ │ │ │ -__cxa_refcounted_exception * ____ccxxxxaabbiivv11::::____ccxxaa__iinniitt__pprriimmaarryy__eexxcceeppttiioonn (void
│ │ │ │ - *object, _s_t_d_:_:_t_y_p_e___i_n_f_o *tinfo, void(*dest)(void
│ │ │ │ - *)) noexcept
│ │ │ │ +template
│ │ │ │ + void _____g_n_u___c_x_x_:_:_____a_u_x___r_e_q_u_i_r_e___b_o_o_l_e_a_n___e_x_p_r (const _Tp &__t)
│ │ │ │ + void ____ggnnuu__ccxxxx::::____eerrrroorr__ttyyppee__mmuusstt__bbee__aa__ssiiggnneedd__iinntteeggeerr__ttyyppee ()
│ │ │ │ + void ____ggnnuu__ccxxxx::::____eerrrroorr__ttyyppee__mmuusstt__bbee__aann__iinntteeggeerr__ttyyppee ()
│ │ │ │ + void ____ggnnuu__ccxxxx::::____eerrrroorr__ttyyppee__mmuusstt__bbee__aann__uunnssiiggnneedd__iinntteeggeerr__ttyyppee ()
│ │ │ │ +template
│ │ │ │ +constexpr void _____g_n_u___c_x_x_:_:_____f_u_n_c_t_i_o_n___r_e_q_u_i_r_e_s ()
│ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn **********
│ │ │ │ This is an internal header file, included by other library headers. Do not
│ │ │ │ -attempt to use it directly.
│ │ │ │ -Definition in file _c_x_x_a_b_i___i_n_i_t___e_x_c_e_p_t_i_o_n_._h.
│ │ │ │ +attempt to use it directly. Instead, include .
│ │ │ │ +Definition in file _b_o_o_s_t___c_o_n_c_e_p_t___c_h_e_c_k_._h.
│ │ │ │ ********** MMaaccrroo DDeeffiinniittiioonn DDooccuummeennttaattiioonn **********
│ │ │ │ -********** _?◆_? __GGLLIIBBCCXXXX__CCDDTTOORR__CCAALLLLAABBII **********
│ │ │ │ -#define _GLIBCXX_CDTOR_CALLABI
│ │ │ │ -Definition at line _4_2 of file _c_x_x_a_b_i___i_n_i_t___e_x_c_e_p_t_i_o_n_._h.
│ │ │ │ -********** _?◆_? __GGLLIIBBCCXXXX__HHAAVVEE__CCDDTTOORR__CCAALLLLAABBII **********
│ │ │ │ -#define _GLIBCXX_HAVE_CDTOR_CALLABI
│ │ │ │ -Definition at line _4_3 of file _c_x_x_a_b_i___i_n_i_t___e_x_c_e_p_t_i_o_n_._h.
│ │ │ │ +********** _?◆_? __GGLLIIBBCCXXXX__CCLLAASSSS__RREEQQUUIIRREESS **********
│ │ │ │ +#define _GLIBCXX_CLASS_REQUIRES ( __ttyyppee__vvaarr,
│ │ │ │ + __nnss,
│ │ │ │ + __ccoonncceepptt )
│ │ │ │ +Definition at line _7_3 of file _b_o_o_s_t___c_o_n_c_e_p_t___c_h_e_c_k_._h.
│ │ │ │ +********** _?◆_? __GGLLIIBBCCXXXX__CCLLAASSSS__RREEQQUUIIRREESS22 **********
│ │ │ │ +#define _GLIBCXX_CLASS_REQUIRES2 ( __ttyyppee__vvaarr11,
│ │ │ │ + __ttyyppee__vvaarr22,
│ │ │ │ + __nnss,
│ │ │ │ + __ccoonncceepptt )
│ │ │ │ +Definition at line _8_1 of file _b_o_o_s_t___c_o_n_c_e_p_t___c_h_e_c_k_._h.
│ │ │ │ +********** _?◆_? __GGLLIIBBCCXXXX__CCLLAASSSS__RREEQQUUIIRREESS33 **********
│ │ │ │ +#define _GLIBCXX_CLASS_REQUIRES3 ( __ttyyppee__vvaarr11,
│ │ │ │ + __ttyyppee__vvaarr22,
│ │ │ │ + __ttyyppee__vvaarr33,
│ │ │ │ + __nnss,
│ │ │ │ + __ccoonncceepptt )
│ │ │ │ +Definition at line _8_9 of file _b_o_o_s_t___c_o_n_c_e_p_t___c_h_e_c_k_._h.
│ │ │ │ +********** _?◆_? __GGLLIIBBCCXXXX__CCLLAASSSS__RREEQQUUIIRREESS44 **********
│ │ │ │ +#define _GLIBCXX_CLASS_REQUIRES4 ( __ttyyppee__vvaarr11,
│ │ │ │ + __ttyyppee__vvaarr22,
│ │ │ │ + __ttyyppee__vvaarr33,
│ │ │ │ + __ttyyppee__vvaarr44,
│ │ │ │ + __nnss,
│ │ │ │ + __ccoonncceepptt )
│ │ │ │ +Definition at line _9_7 of file _b_o_o_s_t___c_o_n_c_e_p_t___c_h_e_c_k_._h.
│ │ │ │ +********** _?◆_? __GGLLIIBBCCXXXX__DDEEFFIINNEE__BBIINNAARRYY__OOPPEERRAATTOORR__CCOONNSSTTRRAAIINNTT **********
│ │ │ │ +#define _GLIBCXX_DEFINE_BINARY_OPERATOR_CONSTRAINT ( __OOPP,
│ │ │ │ + __NNAAMMEE )
│ │ │ │ +Definition at line _2_8_5 of file _b_o_o_s_t___c_o_n_c_e_p_t___c_h_e_c_k_._h.
│ │ │ │ +********** _?◆_? __GGLLIIBBCCXXXX__DDEEFFIINNEE__BBIINNAARRYY__PPRREEDDIICCAATTEE__OOPP__CCOONNSSTTRRAAIINNTT **********
│ │ │ │ +#define _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT ( __OOPP,
│ │ │ │ + __NNAAMMEE )
│ │ │ │ +Definition at line _2_7_4 of file _b_o_o_s_t___c_o_n_c_e_p_t___c_h_e_c_k_._h.
│ │ │ │ +********** _?◆_? __IIssUUnnuusseedd **********
│ │ │ │ +#define _IsUnused
│ │ │ │ +Definition at line _5_4 of file _b_o_o_s_t___c_o_n_c_e_p_t___c_h_e_c_k_._h.
│ │ │ │ * bbiittss
│ │ │ │ - * _c_x_x_a_b_i___i_n_i_t___e_x_c_e_p_t_i_o_n_._h
│ │ │ │ + * _b_o_o_s_t___c_o_n_c_e_p_t___c_h_e_c_k_._h
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00335_source.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: cxxabi_init_exception.h Source File
│ │ │ +libstdc++: boost_concept_check.h Source File
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,105 +48,819 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
Go to the documentation of this file.
│ │ │ +
Go to the documentation of this file.
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
31 #ifndef _CXXABI_INIT_EXCEPTION_H
│ │ │ -
32 #define _CXXABI_INIT_EXCEPTION_H 1
│ │ │ -
│ │ │ -
34 #pragma GCC system_header
│ │ │ -
│ │ │ -
36 #pragma GCC visibility push(default)
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
41 #ifndef _GLIBCXX_CDTOR_CALLABI
│ │ │ -
42 #define _GLIBCXX_CDTOR_CALLABI
│ │ │ -
43 #define _GLIBCXX_HAVE_CDTOR_CALLABI 0
│ │ │ -
│ │ │ -
45 #define _GLIBCXX_HAVE_CDTOR_CALLABI 1
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
57 struct __cxa_refcounted_exception;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
63 __cxa_allocate_exception(
size_t ) _GLIBCXX_NOTHROW;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
39 #ifndef _BOOST_CONCEPT_CHECK_H
│ │ │ +
40 #define _BOOST_CONCEPT_CHECK_H 1
│ │ │ +
│ │ │ +
42 #pragma GCC system_header
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
47 namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
│ │ │ +
│ │ │ +
49 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
51 #pragma GCC diagnostic push
│ │ │ +
52 #pragma GCC diagnostic ignored "-Wunused-local-typedefs"
│ │ │ +
│ │ │ +
54 #define _IsUnused __attribute__ ((__unused__))
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
59 template <
class _Concept>
│ │ │ +
60 _GLIBCXX14_CONSTEXPR
inline void __function_requires()
│ │ │ +
│ │ │ +
62 void (_Concept::*__x)() _IsUnused = &_Concept::__constraints;
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
66 __cxa_free_exception(
void *) _GLIBCXX_NOTHROW;
│ │ │ -
│ │ │ -
│ │ │ -
69 __cxa_refcounted_exception*
│ │ │ -
70 __cxa_init_primary_exception(
void *
object , std::type_info *tinfo,
│ │ │ -
71 void (_GLIBCXX_CDTOR_CALLABI *dest) (
void *)) _GLIBCXX_NOTHROW;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
78 #pragma GCC visibility pop
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
ISO C++ entities toplevel namespace is std.
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
68 void __error_type_must_be_an_integer_type();
│ │ │ +
69 void __error_type_must_be_an_unsigned_integer_type();
│ │ │ +
70 void __error_type_must_be_a_signed_integer_type();
│ │ │ +
│ │ │ +
│ │ │ +
73 #define _GLIBCXX_CLASS_REQUIRES(_type_var, _ns, _concept) \
│ │ │ +
74 typedef void (_ns::_concept <_type_var>::* _func##_type_var##_concept)(); \
│ │ │ +
75 template <_func##_type_var##_concept _Tp1> \
│ │ │ +
76 struct _concept_checking##_type_var##_concept { }; \
│ │ │ +
77 typedef _concept_checking##_type_var##_concept< \
│ │ │ +
78 &_ns::_concept <_type_var>::__constraints> \
│ │ │ +
79 _concept_checking_typedef##_type_var##_concept
│ │ │ +
│ │ │ +
81 #define _GLIBCXX_CLASS_REQUIRES2(_type_var1, _type_var2, _ns, _concept) \
│ │ │ +
82 typedef void (_ns::_concept <_type_var1,_type_var2>::* _func##_type_var1##_type_var2##_concept)(); \
│ │ │ +
83 template <_func##_type_var1##_type_var2##_concept _Tp1> \
│ │ │ +
84 struct _concept_checking##_type_var1##_type_var2##_concept { }; \
│ │ │ +
85 typedef _concept_checking##_type_var1##_type_var2##_concept< \
│ │ │ +
86 &_ns::_concept <_type_var1,_type_var2>::__constraints> \
│ │ │ +
87 _concept_checking_typedef##_type_var1##_type_var2##_concept
│ │ │ +
│ │ │ +
89 #define _GLIBCXX_CLASS_REQUIRES3(_type_var1, _type_var2, _type_var3, _ns, _concept) \
│ │ │ +
90 typedef void (_ns::_concept <_type_var1,_type_var2,_type_var3>::* _func##_type_var1##_type_var2##_type_var3##_concept)(); \
│ │ │ +
91 template <_func##_type_var1##_type_var2##_type_var3##_concept _Tp1> \
│ │ │ +
92 struct _concept_checking##_type_var1##_type_var2##_type_var3##_concept { }; \
│ │ │ +
93 typedef _concept_checking##_type_var1##_type_var2##_type_var3##_concept< \
│ │ │ +
94 &_ns::_concept <_type_var1,_type_var2,_type_var3>::__constraints> \
│ │ │ +
95 _concept_checking_typedef##_type_var1##_type_var2##_type_var3##_concept
│ │ │ +
│ │ │ +
97 #define _GLIBCXX_CLASS_REQUIRES4(_type_var1, _type_var2, _type_var3, _type_var4, _ns, _concept) \
│ │ │ +
98 typedef void (_ns::_concept <_type_var1,_type_var2,_type_var3,_type_var4>::* _func##_type_var1##_type_var2##_type_var3##_type_var4##_concept)(); \
│ │ │ +
99 template <_func##_type_var1##_type_var2##_type_var3##_type_var4##_concept _Tp1> \
│ │ │ +
100 struct _concept_checking##_type_var1##_type_var2##_type_var3##_type_var4##_concept { }; \
│ │ │ +
101 typedef _concept_checking##_type_var1##_type_var2##_type_var3##_type_var4##_concept< \
│ │ │ +
102 &_ns::_concept <_type_var1,_type_var2,_type_var3,_type_var4>::__constraints> \
│ │ │ +
103 _concept_checking_typedef##_type_var1##_type_var2##_type_var3##_type_var4##_concept
│ │ │ +
│ │ │ +
│ │ │ +
106 template <
class _Tp1,
class _Tp2>
│ │ │ +
107 struct _Aux_require_same { };
│ │ │ +
│ │ │ +
│ │ │ +
110 struct _Aux_require_same<_Tp,_Tp> {
typedef _Tp _Type; };
│ │ │ +
│ │ │ +
112 template <
class _Tp1,
class _Tp2>
│ │ │ +
113 struct _SameTypeConcept
│ │ │ +
│ │ │ +
115 void __constraints() {
│ │ │ +
116 typedef typename _Aux_require_same<_Tp1, _Tp2>::_Type _Required;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
121 struct _IntegerConcept {
│ │ │ +
122 void __constraints() {
│ │ │ +
123 __error_type_must_be_an_integer_type();
│ │ │ +
│ │ │ +
│ │ │ +
126 template <>
struct _IntegerConcept<short> {
void __constraints() {} };
│ │ │ +
127 template <>
struct _IntegerConcept<unsigned short> {
void __constraints(){} };
│ │ │ +
128 template <>
struct _IntegerConcept<int> {
void __constraints() {} };
│ │ │ +
129 template <>
struct _IntegerConcept<unsigned int> {
void __constraints() {} };
│ │ │ +
130 template <>
struct _IntegerConcept<long> {
void __constraints() {} };
│ │ │ +
131 template <>
struct _IntegerConcept<unsigned long> {
void __constraints() {} };
│ │ │ +
132 template <>
struct _IntegerConcept<long long> {
void __constraints() {} };
│ │ │ +
133 template <>
struct _IntegerConcept<unsigned long long>
│ │ │ +
134 {
void __constraints() {} };
│ │ │ +
│ │ │ +
│ │ │ +
137 struct _SignedIntegerConcept {
│ │ │ +
138 void __constraints() {
│ │ │ +
139 __error_type_must_be_a_signed_integer_type();
│ │ │ +
│ │ │ +
│ │ │ +
142 template <>
struct _SignedIntegerConcept<short> {
void __constraints() {} };
│ │ │ +
143 template <>
struct _SignedIntegerConcept<int> {
void __constraints() {} };
│ │ │ +
144 template <>
struct _SignedIntegerConcept<long> {
void __constraints() {} };
│ │ │ +
145 template <>
struct _SignedIntegerConcept<long long> {
void __constraints(){}};
│ │ │ +
│ │ │ +
│ │ │ +
148 struct _UnsignedIntegerConcept {
│ │ │ +
149 void __constraints() {
│ │ │ +
150 __error_type_must_be_an_unsigned_integer_type();
│ │ │ +
│ │ │ +
│ │ │ +
153 template <>
struct _UnsignedIntegerConcept<unsigned short>
│ │ │ +
154 {
void __constraints() {} };
│ │ │ +
155 template <>
struct _UnsignedIntegerConcept<unsigned int>
│ │ │ +
156 {
void __constraints() {} };
│ │ │ +
157 template <>
struct _UnsignedIntegerConcept<unsigned long>
│ │ │ +
158 {
void __constraints() {} };
│ │ │ +
159 template <>
struct _UnsignedIntegerConcept<unsigned long long>
│ │ │ +
160 {
void __constraints() {} };
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
166 struct _DefaultConstructibleConcept
│ │ │ +
│ │ │ +
168 void __constraints() {
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
174 struct _AssignableConcept
│ │ │ +
│ │ │ +
176 void __constraints() {
│ │ │ +
│ │ │ +
178 __const_constraints(__a);
│ │ │ +
│ │ │ +
180 void __const_constraints(
const _Tp& __b) {
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
189 struct _CopyConstructibleConcept
│ │ │ +
│ │ │ +
191 void __constraints() {
│ │ │ +
│ │ │ +
193 _Tp* __ptr _IsUnused = &__a;
│ │ │ +
194 __const_constraints(__a);
│ │ │ +
│ │ │ +
196 void __const_constraints(
const _Tp& __a) {
│ │ │ +
197 _Tp __c _IsUnused(__a);
│ │ │ +
198 const _Tp* __ptr _IsUnused = &__a;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
205 struct _SGIAssignableConcept
│ │ │ +
│ │ │ +
207 void __constraints() {
│ │ │ +
208 _Tp __b _IsUnused(__a);
│ │ │ +
│ │ │ +
210 __const_constraints(__a);
│ │ │ +
│ │ │ +
212 void __const_constraints(
const _Tp& __b) {
│ │ │ +
213 _Tp __c _IsUnused(__b);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
219 template <
class _From,
class _To>
│ │ │ +
220 struct _ConvertibleConcept
│ │ │ +
│ │ │ +
222 void __constraints() {
│ │ │ +
223 _To __y _IsUnused = __x;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
238 void __aux_require_boolean_expr(
const _Tp& __t) {
│ │ │ +
239 bool __x _IsUnused = __t;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
244 struct _EqualityComparableConcept
│ │ │ +
│ │ │ +
246 void __constraints() {
│ │ │ +
247 __aux_require_boolean_expr(__a == __b);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
253 struct _LessThanComparableConcept
│ │ │ +
│ │ │ +
255 void __constraints() {
│ │ │ +
256 __aux_require_boolean_expr(__a < __b);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
263 struct _ComparableConcept
│ │ │ +
│ │ │ +
265 void __constraints() {
│ │ │ +
266 __aux_require_boolean_expr(__a < __b);
│ │ │ +
267 __aux_require_boolean_expr(__a > __b);
│ │ │ +
268 __aux_require_boolean_expr(__a <= __b);
│ │ │ +
269 __aux_require_boolean_expr(__a >= __b);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
274 #define _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(_OP,_NAME) \
│ │ │ +
275 template <class _First, class _Second> \
│ │ │ +
│ │ │ +
277 void __constraints() { (void)__constraints_(); } \
│ │ │ +
278 bool __constraints_() { \
│ │ │ +
279 return __a _OP __b; \
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
285 #define _GLIBCXX_DEFINE_BINARY_OPERATOR_CONSTRAINT(_OP,_NAME) \
│ │ │ +
286 template <class _Ret, class _First, class _Second> \
│ │ │ +
│ │ │ +
288 void __constraints() { (void)__constraints_(); } \
│ │ │ +
289 _Ret __constraints_() { \
│ │ │ +
290 return __a _OP __b; \
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
296 _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(==, _EqualOpConcept);
│ │ │ +
297 _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(!=, _NotEqualOpConcept);
│ │ │ +
298 _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(<, _LessThanOpConcept);
│ │ │ +
299 _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(<=, _LessEqualOpConcept);
│ │ │ +
300 _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(>, _GreaterThanOpConcept);
│ │ │ +
301 _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(>=, _GreaterEqualOpConcept);
│ │ │ +
│ │ │ +
303 _GLIBCXX_DEFINE_BINARY_OPERATOR_CONSTRAINT(+, _PlusOpConcept);
│ │ │ +
304 _GLIBCXX_DEFINE_BINARY_OPERATOR_CONSTRAINT(*, _TimesOpConcept);
│ │ │ +
305 _GLIBCXX_DEFINE_BINARY_OPERATOR_CONSTRAINT(/, _DivideOpConcept);
│ │ │ +
306 _GLIBCXX_DEFINE_BINARY_OPERATOR_CONSTRAINT(-, _SubtractOpConcept);
│ │ │ +
307 _GLIBCXX_DEFINE_BINARY_OPERATOR_CONSTRAINT(%, _ModOpConcept);
│ │ │ +
│ │ │ +
309 #undef _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT
│ │ │ +
310 #undef _GLIBCXX_DEFINE_BINARY_OPERATOR_CONSTRAINT
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
315 template <
class _Func,
class _Return>
│ │ │ +
316 struct _GeneratorConcept
│ │ │ +
│ │ │ +
318 void __constraints() {
│ │ │ +
319 const _Return& __r _IsUnused = __f();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
325 template <
class _Func>
│ │ │ +
326 struct _GeneratorConcept<_Func,void>
│ │ │ +
│ │ │ +
328 void __constraints() {
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
334 template <
class _Func,
class _Return,
class _Arg>
│ │ │ +
335 struct _UnaryFunctionConcept
│ │ │ +
│ │ │ +
337 void __constraints() {
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
345 template <
class _Func,
class _Arg>
│ │ │ +
346 struct _UnaryFunctionConcept<_Func, void, _Arg> {
│ │ │ +
347 void __constraints() {
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
354 template <
class _Func,
class _Return,
class _First,
class _Second>
│ │ │ +
355 struct _BinaryFunctionConcept
│ │ │ +
│ │ │ +
357 void __constraints() {
│ │ │ +
358 __r = __f(__first, __second);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
366 template <
class _Func,
class _First,
class _Second>
│ │ │ +
367 struct _BinaryFunctionConcept<_Func, void, _First, _Second>
│ │ │ +
│ │ │ +
369 void __constraints() {
│ │ │ +
370 __f(__first, __second);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
377 template <
class _Func,
class _Arg>
│ │ │ +
378 struct _UnaryPredicateConcept
│ │ │ +
│ │ │ +
380 void __constraints() {
│ │ │ +
381 __aux_require_boolean_expr(__f(__arg));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
387 template <
class _Func,
class _First,
class _Second>
│ │ │ +
388 struct _BinaryPredicateConcept
│ │ │ +
│ │ │ +
390 void __constraints() {
│ │ │ +
391 __aux_require_boolean_expr(__f(__a, __b));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
399 template <
class _Func,
class _First,
class _Second>
│ │ │ +
400 struct _Const_BinaryPredicateConcept {
│ │ │ +
401 void __constraints() {
│ │ │ +
402 __const_constraints(__f);
│ │ │ +
│ │ │ +
404 void __const_constraints(
const _Func& __fun) {
│ │ │ +
405 __function_requires<_BinaryPredicateConcept<_Func, _First, _Second> >();
│ │ │ +
│ │ │ +
407 __aux_require_boolean_expr(__fun(__a, __b));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
418 struct _TrivialIteratorConcept
│ │ │ +
│ │ │ +
420 void __constraints() {
│ │ │ +
│ │ │ +
422 __function_requires< _AssignableConcept<_Tp> >();
│ │ │ +
423 __function_requires< _EqualityComparableConcept<_Tp> >();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
431 struct _Mutable_TrivialIteratorConcept
│ │ │ +
│ │ │ +
433 void __constraints() {
│ │ │ +
434 __function_requires< _TrivialIteratorConcept<_Tp> >();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
441 struct _InputIteratorConcept
│ │ │ +
│ │ │ +
443 void __constraints() {
│ │ │ +
444 __function_requires< _TrivialIteratorConcept<_Tp> >();
│ │ │ +
│ │ │ +
446 typedef typename std::iterator_traits<_Tp>::difference_type _Diff;
│ │ │ +
│ │ │ +
448 typedef typename std::iterator_traits<_Tp>::reference _Ref;
│ │ │ +
449 typedef typename std::iterator_traits<_Tp>::pointer _Pt;
│ │ │ +
450 typedef typename std::iterator_traits<_Tp>::iterator_category _Cat;
│ │ │ +
451 __function_requires< _ConvertibleConcept<
│ │ │ +
452 typename std::iterator_traits<_Tp>::iterator_category,
│ │ │ +
453 std::input_iterator_tag> >();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
460 template <
class _Tp,
class _ValueT>
│ │ │ +
461 struct _OutputIteratorConcept
│ │ │ +
│ │ │ +
463 void __constraints() {
│ │ │ +
464 __function_requires< _AssignableConcept<_Tp> >();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
474 struct _ForwardIteratorConcept
│ │ │ +
│ │ │ +
476 void __constraints() {
│ │ │ +
477 __function_requires< _InputIteratorConcept<_Tp> >();
│ │ │ +
478 __function_requires< _DefaultConstructibleConcept<_Tp> >();
│ │ │ +
479 __function_requires< _ConvertibleConcept<
│ │ │ +
480 typename std::iterator_traits<_Tp>::iterator_category,
│ │ │ +
481 std::forward_iterator_tag> >();
│ │ │ +
482 typedef typename std::iterator_traits<_Tp>::reference _Ref;
│ │ │ +
483 _Ref __r _IsUnused = *__i;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
489 struct _Mutable_ForwardIteratorConcept
│ │ │ +
│ │ │ +
491 void __constraints() {
│ │ │ +
492 __function_requires< _ForwardIteratorConcept<_Tp> >();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
499 struct _BidirectionalIteratorConcept
│ │ │ +
│ │ │ +
501 void __constraints() {
│ │ │ +
502 __function_requires< _ForwardIteratorConcept<_Tp> >();
│ │ │ +
503 __function_requires< _ConvertibleConcept<
│ │ │ +
504 typename std::iterator_traits<_Tp>::iterator_category,
│ │ │ +
505 std::bidirectional_iterator_tag> >();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
513 struct _Mutable_BidirectionalIteratorConcept
│ │ │ +
│ │ │ +
515 void __constraints() {
│ │ │ +
516 __function_requires< _BidirectionalIteratorConcept<_Tp> >();
│ │ │ +
517 __function_requires< _Mutable_ForwardIteratorConcept<_Tp> >();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
525 struct _RandomAccessIteratorConcept
│ │ │ +
│ │ │ +
527 void __constraints() {
│ │ │ +
528 __function_requires< _BidirectionalIteratorConcept<_Tp> >();
│ │ │ +
529 __function_requires< _ComparableConcept<_Tp> >();
│ │ │ +
530 __function_requires< _ConvertibleConcept<
│ │ │ +
531 typename std::iterator_traits<_Tp>::iterator_category,
│ │ │ +
532 std::random_access_iterator_tag> >();
│ │ │ +
│ │ │ +
534 typedef typename std::iterator_traits<_Tp>::reference _Ref;
│ │ │ +
│ │ │ +
│ │ │ +
537 __i = __i + __n; __i = __n + __i;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
546 typename std::iterator_traits<_Tp>::difference_type __n;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
550 struct _Mutable_RandomAccessIteratorConcept
│ │ │ +
│ │ │ +
552 void __constraints() {
│ │ │ +
553 __function_requires< _RandomAccessIteratorConcept<_Tp> >();
│ │ │ +
554 __function_requires< _Mutable_BidirectionalIteratorConcept<_Tp> >();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
558 typename std::iterator_traits<_Tp>::difference_type __n;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
564 template <
class _Container>
│ │ │ +
565 struct _ContainerConcept
│ │ │ +
│ │ │ +
567 typedef typename _Container::value_type _Value_type;
│ │ │ +
568 typedef typename _Container::difference_type _Difference_type;
│ │ │ +
569 typedef typename _Container::size_type _Size_type;
│ │ │ +
570 typedef typename _Container::const_reference _Const_reference;
│ │ │ +
571 typedef typename _Container::const_pointer _Const_pointer;
│ │ │ +
572 typedef typename _Container::const_iterator _Const_iterator;
│ │ │ +
│ │ │ +
574 void __constraints() {
│ │ │ +
575 __function_requires< _InputIteratorConcept<_Const_iterator> >();
│ │ │ +
576 __function_requires< _AssignableConcept<_Container> >();
│ │ │ +
577 const _Container __c;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
581 __n = __c.max_size();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
589 template <
class _Container>
│ │ │ +
590 struct _Mutable_ContainerConcept
│ │ │ +
│ │ │ +
592 typedef typename _Container::value_type _Value_type;
│ │ │ +
593 typedef typename _Container::reference _Reference;
│ │ │ +
594 typedef typename _Container::iterator _Iterator;
│ │ │ +
595 typedef typename _Container::pointer _Pointer;
│ │ │ +
│ │ │ +
597 void __constraints() {
│ │ │ +
598 __function_requires< _ContainerConcept<_Container> >();
│ │ │ +
599 __function_requires< _AssignableConcept<_Value_type> >();
│ │ │ +
600 __function_requires< _InputIteratorConcept<_Iterator> >();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
607 _Container __c, __c2;
│ │ │ +
│ │ │ +
│ │ │ +
610 template <
class _ForwardContainer>
│ │ │ +
611 struct _ForwardContainerConcept
│ │ │ +
│ │ │ +
613 void __constraints() {
│ │ │ +
614 __function_requires< _ContainerConcept<_ForwardContainer> >();
│ │ │ +
615 typedef typename _ForwardContainer::const_iterator _Const_iterator;
│ │ │ +
616 __function_requires< _ForwardIteratorConcept<_Const_iterator> >();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
620 template <
class _ForwardContainer>
│ │ │ +
621 struct _Mutable_ForwardContainerConcept
│ │ │ +
│ │ │ +
623 void __constraints() {
│ │ │ +
624 __function_requires< _ForwardContainerConcept<_ForwardContainer> >();
│ │ │ +
625 __function_requires< _Mutable_ContainerConcept<_ForwardContainer> >();
│ │ │ +
626 typedef typename _ForwardContainer::iterator _Iterator;
│ │ │ +
627 __function_requires< _Mutable_ForwardIteratorConcept<_Iterator> >();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
631 template <
class _ReversibleContainer>
│ │ │ +
632 struct _ReversibleContainerConcept
│ │ │ +
│ │ │ +
634 typedef typename _ReversibleContainer::const_iterator _Const_iterator;
│ │ │ +
635 typedef typename _ReversibleContainer::const_reverse_iterator
│ │ │ +
636 _Const_reverse_iterator;
│ │ │ +
│ │ │ +
638 void __constraints() {
│ │ │ +
639 __function_requires< _ForwardContainerConcept<_ReversibleContainer> >();
│ │ │ +
640 __function_requires< _BidirectionalIteratorConcept<_Const_iterator> >();
│ │ │ +
│ │ │ +
642 _BidirectionalIteratorConcept<_Const_reverse_iterator> >();
│ │ │ +
│ │ │ +
644 const _ReversibleContainer __c;
│ │ │ +
645 _Const_reverse_iterator __i = __c.rbegin();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
650 template <
class _ReversibleContainer>
│ │ │ +
651 struct _Mutable_ReversibleContainerConcept
│ │ │ +
│ │ │ +
653 typedef typename _ReversibleContainer::iterator _Iterator;
│ │ │ +
654 typedef typename _ReversibleContainer::reverse_iterator _Reverse_iterator;
│ │ │ +
│ │ │ +
656 void __constraints() {
│ │ │ +
657 __function_requires<_ReversibleContainerConcept<_ReversibleContainer> >();
│ │ │ +
│ │ │ +
659 _Mutable_ForwardContainerConcept<_ReversibleContainer> >();
│ │ │ +
660 __function_requires<_Mutable_BidirectionalIteratorConcept<_Iterator> >();
│ │ │ +
│ │ │ +
662 _Mutable_BidirectionalIteratorConcept<_Reverse_iterator> >();
│ │ │ +
│ │ │ +
664 _Reverse_iterator __i = __c.rbegin();
│ │ │ +
│ │ │ +
│ │ │ +
667 _ReversibleContainer __c;
│ │ │ +
│ │ │ +
│ │ │ +
670 template <
class _RandomAccessContainer>
│ │ │ +
671 struct _RandomAccessContainerConcept
│ │ │ +
│ │ │ +
673 typedef typename _RandomAccessContainer::size_type _Size_type;
│ │ │ +
674 typedef typename _RandomAccessContainer::const_reference _Const_reference;
│ │ │ +
675 typedef typename _RandomAccessContainer::const_iterator _Const_iterator;
│ │ │ +
676 typedef typename _RandomAccessContainer::const_reverse_iterator
│ │ │ +
677 _Const_reverse_iterator;
│ │ │ +
│ │ │ +
679 void __constraints() {
│ │ │ +
│ │ │ +
681 _ReversibleContainerConcept<_RandomAccessContainer> >();
│ │ │ +
682 __function_requires< _RandomAccessIteratorConcept<_Const_iterator> >();
│ │ │ +
│ │ │ +
684 _RandomAccessIteratorConcept<_Const_reverse_iterator> >();
│ │ │ +
│ │ │ +
686 const _RandomAccessContainer __c;
│ │ │ +
687 _Const_reference __r _IsUnused = __c[__n];
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
692 template <
class _RandomAccessContainer>
│ │ │ +
693 struct _Mutable_RandomAccessContainerConcept
│ │ │ +
│ │ │ +
695 typedef typename _RandomAccessContainer::size_type _Size_type;
│ │ │ +
696 typedef typename _RandomAccessContainer::reference _Reference;
│ │ │ +
697 typedef typename _RandomAccessContainer::iterator _Iterator;
│ │ │ +
698 typedef typename _RandomAccessContainer::reverse_iterator _Reverse_iterator;
│ │ │ +
│ │ │ +
700 void __constraints() {
│ │ │ +
│ │ │ +
702 _RandomAccessContainerConcept<_RandomAccessContainer> >();
│ │ │ +
│ │ │ +
704 _Mutable_ReversibleContainerConcept<_RandomAccessContainer> >();
│ │ │ +
705 __function_requires< _Mutable_RandomAccessIteratorConcept<_Iterator> >();
│ │ │ +
│ │ │ +
707 _Mutable_RandomAccessIteratorConcept<_Reverse_iterator> >();
│ │ │ +
│ │ │ +
709 _Reference __r _IsUnused = __c[__i];
│ │ │ +
│ │ │ +
│ │ │ +
712 _RandomAccessContainer __c;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
716 template <
class _Sequence>
│ │ │ +
717 struct _SequenceConcept
│ │ │ +
│ │ │ +
719 typedef typename _Sequence::reference _Reference;
│ │ │ +
720 typedef typename _Sequence::const_reference _Const_reference;
│ │ │ +
│ │ │ +
722 void __constraints() {
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
726 __function_requires< _Mutable_ForwardContainerConcept<_Sequence> >();
│ │ │ +
727 __function_requires< _DefaultConstructibleConcept<_Sequence> >();
│ │ │ +
│ │ │ +
│ │ │ +
730 __c _IsUnused(__n, __t),
│ │ │ +
731 __c2 _IsUnused(__first, __last);
│ │ │ +
│ │ │ +
733 __c.insert(__p, __t);
│ │ │ +
734 __c.insert(__p, __n, __t);
│ │ │ +
735 __c.insert(__p, __first, __last);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
740 _Reference __r _IsUnused = __c.front();
│ │ │ +
│ │ │ +
742 __const_constraints(__c);
│ │ │ +
│ │ │ +
744 void __const_constraints(
const _Sequence& __c) {
│ │ │ +
745 _Const_reference __r _IsUnused = __c.front();
│ │ │ +
│ │ │ +
747 typename _Sequence::value_type __t;
│ │ │ +
748 typename _Sequence::size_type __n;
│ │ │ +
749 typename _Sequence::value_type *__first, *__last;
│ │ │ +
750 typename _Sequence::iterator __p, __q;
│ │ │ +
│ │ │ +
│ │ │ +
753 template <
class _FrontInsertionSequence>
│ │ │ +
754 struct _FrontInsertionSequenceConcept
│ │ │ +
│ │ │ +
756 void __constraints() {
│ │ │ +
757 __function_requires< _SequenceConcept<_FrontInsertionSequence> >();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
762 _FrontInsertionSequence __c;
│ │ │ +
763 typename _FrontInsertionSequence::value_type __t;
│ │ │ +
│ │ │ +
│ │ │ +
766 template <
class _BackInsertionSequence>
│ │ │ +
767 struct _BackInsertionSequenceConcept
│ │ │ +
│ │ │ +
769 typedef typename _BackInsertionSequence::reference _Reference;
│ │ │ +
770 typedef typename _BackInsertionSequence::const_reference _Const_reference;
│ │ │ +
│ │ │ +
772 void __constraints() {
│ │ │ +
773 __function_requires< _SequenceConcept<_BackInsertionSequence> >();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
777 _Reference __r _IsUnused = __c.back();
│ │ │ +
│ │ │ +
779 void __const_constraints(
const _BackInsertionSequence& __c) {
│ │ │ +
780 _Const_reference __r _IsUnused = __c.back();
│ │ │ +
│ │ │ +
782 _BackInsertionSequence __c;
│ │ │ +
783 typename _BackInsertionSequence::value_type __t;
│ │ │ +
│ │ │ +
│ │ │ +
786 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │ +
789 #pragma GCC diagnostic pop
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
GNU extensions for public use.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,92 +1,828 @@
│ │ │ │ libstdc++
│ │ │ │ -cxxabi_init_exception.h
│ │ │ │ +boost_concept_check.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// ABI Support -*- C++ -*-
│ │ │ │ +1// -*- C++ -*-
│ │ │ │ 2
│ │ │ │ -3// Copyright (C) 2016-2021 Free Software Foundation, Inc.
│ │ │ │ +3// Copyright (C) 2004-2021 Free Software Foundation, Inc.
│ │ │ │ 4//
│ │ │ │ -5// This file is part of GCC.
│ │ │ │ -6//
│ │ │ │ -7// GCC is free software; you can redistribute it and/or modify
│ │ │ │ -8// it under the terms of the GNU General Public License as published by
│ │ │ │ -9// the Free Software Foundation; either version 3, or (at your option)
│ │ │ │ -10// any later version.
│ │ │ │ -11//
│ │ │ │ -12// GCC is distributed in the hope that it will be useful,
│ │ │ │ -13// but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
│ │ │ │ -15// GNU General Public License for more details.
│ │ │ │ -16//
│ │ │ │ -17// Under Section 7 of GPL version 3, you are granted additional
│ │ │ │ -18// permissions described in the GCC Runtime Library Exception, version
│ │ │ │ -19// 3.1, as published by the Free Software Foundation.
│ │ │ │ -20
│ │ │ │ -21// You should have received a copy of the GNU General Public License and
│ │ │ │ -22// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │ -23// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │ -24//
.
│ │ │ │ -25
│ │ │ │ -26/** @file bits/cxxabi_init_exception.h
│ │ │ │ -27 * This is an internal header file, included by other library headers.
│ │ │ │ -28 * Do not attempt to use it directly.
│ │ │ │ -29 */
│ │ │ │ -30
│ │ │ │ -31#ifndef _CXXABI_INIT_EXCEPTION_H
│ │ │ │ -32#define _CXXABI_INIT_EXCEPTION_H 1
│ │ │ │ -33
│ │ │ │ -34#pragma GCC system_header
│ │ │ │ -35
│ │ │ │ -36#pragma GCC visibility push(default)
│ │ │ │ -37
│ │ │ │ -38#include
│ │ │ │ -39#include <_b_i_t_s_/_c_+_+_c_o_n_f_i_g_._h>
│ │ │ │ -40
│ │ │ │ -41#ifndef _GLIBCXX_CDTOR_CALLABI
│ │ │ │ -42#define _GLIBCXX_CDTOR_CALLABI
│ │ │ │ -43#define _GLIBCXX_HAVE_CDTOR_CALLABI 0
│ │ │ │ -44#else
│ │ │ │ -45#define _GLIBCXX_HAVE_CDTOR_CALLABI 1
│ │ │ │ -46#endif
│ │ │ │ -47
│ │ │ │ -48#ifdef __cplusplus
│ │ │ │ -49
│ │ │ │ -50namespace _s_t_d
│ │ │ │ -51{
│ │ │ │ -52 class _t_y_p_e___i_n_f_o;
│ │ │ │ -53}
│ │ │ │ -54
│ │ │ │ -55namespace __cxxabiv1
│ │ │ │ -56{
│ │ │ │ -57 struct __cxa_refcounted_exception;
│ │ │ │ -58
│ │ │ │ -59 extern "C"
│ │ │ │ -60 {
│ │ │ │ -61 // Allocate memory for the primary exception plus the thrown object.
│ │ │ │ -62 void*
│ │ │ │ -63 __cxa_allocate_exception(size_t) _GLIBCXX_NOTHROW;
│ │ │ │ +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
│ │ │ │ +11// This library is distributed in the hope that it will be useful,
│ │ │ │ +12// but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
│ │ │ │ +14// GNU General Public License for more details.
│ │ │ │ +15
│ │ │ │ +16// Under Section 7 of GPL version 3, you are granted additional
│ │ │ │ +17// permissions described in the GCC Runtime Library Exception, version
│ │ │ │ +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// (C) Copyright Jeremy Siek 2000. Permission to copy, use, modify,
│ │ │ │ +26// sell and distribute this software is granted provided this
│ │ │ │ +27// copyright notice appears in all copies. This software is provided
│ │ │ │ +28// "as is" without express or implied warranty, and with no claim as
│ │ │ │ +29// to its suitability for any purpose.
│ │ │ │ +30//
│ │ │ │ +31
│ │ │ │ +32/** @file bits/boost_concept_check.h
│ │ │ │ +33 * This is an internal header file, included by other library headers.
│ │ │ │ +34 * Do not attempt to use it directly. @headername{iterator}
│ │ │ │ +35 */
│ │ │ │ +36
│ │ │ │ +37// GCC Note: based on version 1.12.0 of the Boost library.
│ │ │ │ +38
│ │ │ │ +39#ifndef _BOOST_CONCEPT_CHECK_H
│ │ │ │ +40#define _BOOST_CONCEPT_CHECK_H 1
│ │ │ │ +41
│ │ │ │ +42#pragma GCC system_header
│ │ │ │ +43
│ │ │ │ +44#include <_b_i_t_s_/_c_+_+_c_o_n_f_i_g_._h>
│ │ │ │ +45#include <_b_i_t_s_/_s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___t_y_p_e_s_._h> // for traits and tags
│ │ │ │ +46
│ │ │ │ +47namespace _____g_n_u___c_x_x _GLIBCXX_VISIBILITY(default)
│ │ │ │ +48{
│ │ │ │ +49_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ +50
│ │ │ │ +51#pragma GCC diagnostic push
│ │ │ │ +52#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
│ │ │ │ +53
│ │ │ │ +54#define _IsUnused __attribute__ ((__unused__))
│ │ │ │ +55
│ │ │ │ +56// When the C-C code is in use, we would like this function to do as little
│ │ │ │ +57// as possible at runtime, use as few resources as possible, and hopefully
│ │ │ │ +58// be elided out of existence... hmmm.
│ │ │ │ +59template
│ │ │ │ +60_GLIBCXX14_CONSTEXPR inline void __function_requires()
│ │ │ │ +61{
│ │ │ │ +62 void (_Concept::*__x)() _IsUnused = &_Concept::__constraints;
│ │ │ │ +63}
│ │ │ │ 64
│ │ │ │ -65 void
│ │ │ │ -66 __cxa_free_exception(void*) _GLIBCXX_NOTHROW;
│ │ │ │ -67
│ │ │ │ -68 // Initialize exception (this is a GNU extension)
│ │ │ │ -69 __cxa_refcounted_exception*
│ │ │ │ -70 __cxa_init_primary_exception(void *object, std::type_info *tinfo,
│ │ │ │ -71 void (_GLIBCXX_CDTOR_CALLABI *dest) (void *)) _GLIBCXX_NOTHROW;
│ │ │ │ -72
│ │ │ │ -73 }
│ │ │ │ -74} // namespace __cxxabiv1
│ │ │ │ -75
│ │ │ │ -76#endif
│ │ │ │ -77
│ │ │ │ -78#pragma GCC visibility pop
│ │ │ │ -79
│ │ │ │ -80#endif // _CXXABI_INIT_EXCEPTION_H
│ │ │ │ +65// No definition: if this is referenced, there's a problem with
│ │ │ │ +66// the instantiating type not being one of the required integer types.
│ │ │ │ +67// Unfortunately, this results in a link-time error, not a compile-time
│ │ │ │ +error.
│ │ │ │ +68void __error_type_must_be_an_integer_type();
│ │ │ │ +69void __error_type_must_be_an_unsigned_integer_type();
│ │ │ │ +70void __error_type_must_be_a_signed_integer_type();
│ │ │ │ +71
│ │ │ │ +72// ??? Should the "concept_checking*" structs begin with more than _ ?
│ │ │ │ +73#define _GLIBCXX_CLASS_REQUIRES(_type_var, _ns, _concept) \
│ │ │ │ +74 typedef void (_ns::_concept <_type_var>::* _func##_type_var##_concept)(); \
│ │ │ │ +75 template <_func##_type_var##_concept _Tp1> \
│ │ │ │ +76 struct _concept_checking##_type_var##_concept { }; \
│ │ │ │ +77 typedef _concept_checking##_type_var##_concept< \
│ │ │ │ +78 &_ns::_concept <_type_var>::__constraints> \
│ │ │ │ +79 _concept_checking_typedef##_type_var##_concept
│ │ │ │ +80
│ │ │ │ +81#define _GLIBCXX_CLASS_REQUIRES2(_type_var1, _type_var2, _ns, _concept) \
│ │ │ │ +82 typedef void (_ns::_concept <_type_var1,_type_var2>::
│ │ │ │ +* _func##_type_var1##_type_var2##_concept)(); \
│ │ │ │ +83 template <_func##_type_var1##_type_var2##_concept _Tp1> \
│ │ │ │ +84 struct _concept_checking##_type_var1##_type_var2##_concept { }; \
│ │ │ │ +85 typedef _concept_checking##_type_var1##_type_var2##_concept< \
│ │ │ │ +86 &_ns::_concept <_type_var1,_type_var2>::__constraints> \
│ │ │ │ +87 _concept_checking_typedef##_type_var1##_type_var2##_concept
│ │ │ │ +88
│ │ │ │ +89#define _GLIBCXX_CLASS_REQUIRES3(_type_var1, _type_var2, _type_var3, _ns,
│ │ │ │ +_concept) \
│ │ │ │ +90 typedef void (_ns::_concept <_type_var1,_type_var2,_type_var3>::
│ │ │ │ +* _func##_type_var1##_type_var2##_type_var3##_concept)(); \
│ │ │ │ +91 template <_func##_type_var1##_type_var2##_type_var3##_concept _Tp1> \
│ │ │ │ +92 struct _concept_checking##_type_var1##_type_var2##_type_var3##_concept { };
│ │ │ │ +\
│ │ │ │ +93 typedef _concept_checking##_type_var1##_type_var2##_type_var3##_concept< \
│ │ │ │ +94 &_ns::_concept <_type_var1,_type_var2,_type_var3>::__constraints> \
│ │ │ │ +95 _concept_checking_typedef##_type_var1##_type_var2##_type_var3##_concept
│ │ │ │ +96
│ │ │ │ +97#define _GLIBCXX_CLASS_REQUIRES4(_type_var1, _type_var2, _type_var3,
│ │ │ │ +_type_var4, _ns, _concept) \
│ │ │ │ +98 typedef void (_ns::_concept <_type_var1,_type_var2,_type_var3,_type_var4>::
│ │ │ │ +* _func##_type_var1##_type_var2##_type_var3##_type_var4##_concept)(); \
│ │ │ │ +99 template <_func##_type_var1##_type_var2##_type_var3##_type_var4##_concept
│ │ │ │ +_Tp1> \
│ │ │ │ +100 struct
│ │ │ │ +_concept_checking##_type_var1##_type_var2##_type_var3##_type_var4##_concept
│ │ │ │ +{ }; \
│ │ │ │ +101 typedef
│ │ │ │ +_concept_checking##_type_var1##_type_var2##_type_var3##_type_var4##_concept< \
│ │ │ │ +102 &_ns::_concept <_type_var1,_type_var2,_type_var3,_type_var4>::
│ │ │ │ +__constraints> \
│ │ │ │ +103
│ │ │ │ +_concept_checking_typedef##_type_var1##_type_var2##_type_var3##_type_var4##_concept
│ │ │ │ +104
│ │ │ │ +105
│ │ │ │ +106template
│ │ │ │ +107struct _Aux_require_same { };
│ │ │ │ +108
│ │ │ │ +109template
│ │ │ │ +110struct _Aux_require_same<_Tp,_Tp> { typedef _Tp _Type; };
│ │ │ │ +111
│ │ │ │ +112 template
│ │ │ │ +113 struct _SameTypeConcept
│ │ │ │ +114 {
│ │ │ │ +115 void __constraints() {
│ │ │ │ +116 typedef typename _Aux_require_same<_Tp1, _Tp2>::_Type _Required;
│ │ │ │ +117 }
│ │ │ │ +118 };
│ │ │ │ +119
│ │ │ │ +120 template
│ │ │ │ +121 struct _IntegerConcept {
│ │ │ │ +122 void __constraints() {
│ │ │ │ +123 __error_type_must_be_an_integer_type();
│ │ │ │ +124 }
│ │ │ │ +125 };
│ │ │ │ +126 template <> struct _IntegerConcept { void __constraints() {} };
│ │ │ │ +127 template <> struct _IntegerConcept { void __constraints(){}
│ │ │ │ +};
│ │ │ │ +128 template <> struct _IntegerConcept { void __constraints() {} };
│ │ │ │ +129 template <> struct _IntegerConcept { void __constraints() {}
│ │ │ │ +};
│ │ │ │ +130 template <> struct _IntegerConcept { void __constraints() {} };
│ │ │ │ +131 template <> struct _IntegerConcept { void __constraints() {}
│ │ │ │ +};
│ │ │ │ +132 template <> struct _IntegerConcept { void __constraints() {} };
│ │ │ │ +133 template <> struct _IntegerConcept
│ │ │ │ +134 { void __constraints() {} };
│ │ │ │ +135
│ │ │ │ +136 template
│ │ │ │ +137 struct _SignedIntegerConcept {
│ │ │ │ +138 void __constraints() {
│ │ │ │ +139 __error_type_must_be_a_signed_integer_type();
│ │ │ │ +140 }
│ │ │ │ +141 };
│ │ │ │ +142 template <> struct _SignedIntegerConcept { void __constraints() {}
│ │ │ │ +};
│ │ │ │ +143 template <> struct _SignedIntegerConcept { void __constraints() {} };
│ │ │ │ +144 template <> struct _SignedIntegerConcept { void __constraints() {} };
│ │ │ │ +145 template <> struct _SignedIntegerConcept { void __constraints()
│ │ │ │ +{}};
│ │ │ │ +146
│ │ │ │ +147 template
│ │ │ │ +148 struct _UnsignedIntegerConcept {
│ │ │ │ +149 void __constraints() {
│ │ │ │ +150 __error_type_must_be_an_unsigned_integer_type();
│ │ │ │ +151 }
│ │ │ │ +152 };
│ │ │ │ +153 template <> struct _UnsignedIntegerConcept
│ │ │ │ +154 { void __constraints() {} };
│ │ │ │ +155 template <> struct _UnsignedIntegerConcept
│ │ │ │ +156 { void __constraints() {} };
│ │ │ │ +157 template <> struct _UnsignedIntegerConcept
│ │ │ │ +158 { void __constraints() {} };
│ │ │ │ +159 template <> struct _UnsignedIntegerConcept
│ │ │ │ +160 { void __constraints() {} };
│ │ │ │ +161
│ │ │ │ +162 //
│ │ │ │ +===========================================================================
│ │ │ │ +163 // Basic Concepts
│ │ │ │ +164
│ │ │ │ +165 template
│ │ │ │ +166 struct _DefaultConstructibleConcept
│ │ │ │ +167 {
│ │ │ │ +168 void __constraints() {
│ │ │ │ +169 _Tp __a _IsUnused; // require default constructor
│ │ │ │ +170 }
│ │ │ │ +171 };
│ │ │ │ +172
│ │ │ │ +173 template
│ │ │ │ +174 struct _AssignableConcept
│ │ │ │ +175 {
│ │ │ │ +176 void __constraints() {
│ │ │ │ +177 __a = __a; // require assignment operator
│ │ │ │ +178 __const_constraints(__a);
│ │ │ │ +179 }
│ │ │ │ +180 void __const_constraints(const _Tp& __b) {
│ │ │ │ +181 __a = __b; // const required for argument to assignment
│ │ │ │ +182 }
│ │ │ │ +183 _Tp __a;
│ │ │ │ +184 // possibly should be "Tp* a;" and then dereference "a" in constraint
│ │ │ │ +185 // functions? present way would require a default ctor, i think...
│ │ │ │ +186 };
│ │ │ │ +187
│ │ │ │ +188 template
│ │ │ │ +189 struct _CopyConstructibleConcept
│ │ │ │ +190 {
│ │ │ │ +191 void __constraints() {
│ │ │ │ +192 _Tp __a(__b); // require copy constructor
│ │ │ │ +193 _Tp* __ptr _IsUnused = &__a; // require address of operator
│ │ │ │ +194 __const_constraints(__a);
│ │ │ │ +195 }
│ │ │ │ +196 void __const_constraints(const _Tp& __a) {
│ │ │ │ +197 _Tp __c _IsUnused(__a); // require const copy constructor
│ │ │ │ +198 const _Tp* __ptr _IsUnused = &__a; // require const address of operator
│ │ │ │ +199 }
│ │ │ │ +200 _Tp __b;
│ │ │ │ +201 };
│ │ │ │ +202
│ │ │ │ +203 // The SGI STL version of Assignable requires copy constructor and
│ │ │ │ +operator=
│ │ │ │ +204 template
│ │ │ │ +205 struct _SGIAssignableConcept
│ │ │ │ +206 {
│ │ │ │ +207 void __constraints() {
│ │ │ │ +208 _Tp __b _IsUnused(__a);
│ │ │ │ +209 __a = __a; // require assignment operator
│ │ │ │ +210 __const_constraints(__a);
│ │ │ │ +211 }
│ │ │ │ +212 void __const_constraints(const _Tp& __b) {
│ │ │ │ +213 _Tp __c _IsUnused(__b);
│ │ │ │ +214 __a = __b; // const required for argument to assignment
│ │ │ │ +215 }
│ │ │ │ +216 _Tp __a;
│ │ │ │ +217 };
│ │ │ │ +218
│ │ │ │ +219 template
│ │ │ │ +220 struct _ConvertibleConcept
│ │ │ │ +221 {
│ │ │ │ +222 void __constraints() {
│ │ │ │ +223 _To __y _IsUnused = __x;
│ │ │ │ +224 }
│ │ │ │ +225 _From __x;
│ │ │ │ +226 };
│ │ │ │ +227
│ │ │ │ +228 // The C++ standard requirements for many concepts talk about return
│ │ │ │ +229 // types that must be "convertible to bool". The problem with this
│ │ │ │ +230 // requirement is that it leaves the door open for evil proxies that
│ │ │ │ +231 // define things like operator|| with strange return types. Two
│ │ │ │ +232 // possible solutions are:
│ │ │ │ +233 // 1) require the return type to be exactly bool
│ │ │ │ +234 // 2) stay with convertible to bool, and also
│ │ │ │ +235 // specify stuff about all the logical operators.
│ │ │ │ +236 // For now we just test for convertible to bool.
│ │ │ │ +237 template
│ │ │ │ +238 void __aux_require_boolean_expr(const _Tp& __t) {
│ │ │ │ +239 bool __x _IsUnused = __t;
│ │ │ │ +240 }
│ │ │ │ +241
│ │ │ │ +242// FIXME
│ │ │ │ +243 template
│ │ │ │ +244 struct _EqualityComparableConcept
│ │ │ │ +245 {
│ │ │ │ +246 void __constraints() {
│ │ │ │ +247 __aux_require_boolean_expr(__a == __b);
│ │ │ │ +248 }
│ │ │ │ +249 _Tp __a, __b;
│ │ │ │ +250 };
│ │ │ │ +251
│ │ │ │ +252 template
│ │ │ │ +253 struct _LessThanComparableConcept
│ │ │ │ +254 {
│ │ │ │ +255 void __constraints() {
│ │ │ │ +256 __aux_require_boolean_expr(__a < __b);
│ │ │ │ +257 }
│ │ │ │ +258 _Tp __a, __b;
│ │ │ │ +259 };
│ │ │ │ +260
│ │ │ │ +261 // This is equivalent to SGI STL's LessThanComparable.
│ │ │ │ +262 template
│ │ │ │ +263 struct _ComparableConcept
│ │ │ │ +264 {
│ │ │ │ +265 void __constraints() {
│ │ │ │ +266 __aux_require_boolean_expr(__a < __b);
│ │ │ │ +267 __aux_require_boolean_expr(__a > __b);
│ │ │ │ +268 __aux_require_boolean_expr(__a <= __b);
│ │ │ │ +269 __aux_require_boolean_expr(__a >= __b);
│ │ │ │ +270 }
│ │ │ │ +271 _Tp __a, __b;
│ │ │ │ +272 };
│ │ │ │ +273
│ │ │ │ +274#define _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(_OP,_NAME) \
│ │ │ │ +275 template \
│ │ │ │ +276 struct _NAME { \
│ │ │ │ +277 void __constraints() { (void)__constraints_(); } \
│ │ │ │ +278 bool __constraints_() { \
│ │ │ │ +279 return __a _OP __b; \
│ │ │ │ +280 } \
│ │ │ │ +281 _First __a; \
│ │ │ │ +282 _Second __b; \
│ │ │ │ +283 }
│ │ │ │ +284
│ │ │ │ +285#define _GLIBCXX_DEFINE_BINARY_OPERATOR_CONSTRAINT(_OP,_NAME) \
│ │ │ │ +286 template \
│ │ │ │ +287 struct _NAME { \
│ │ │ │ +288 void __constraints() { (void)__constraints_(); } \
│ │ │ │ +289 _Ret __constraints_() { \
│ │ │ │ +290 return __a _OP __b; \
│ │ │ │ +291 } \
│ │ │ │ +292 _First __a; \
│ │ │ │ +293 _Second __b; \
│ │ │ │ +294 }
│ │ │ │ +295
│ │ │ │ +296 _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(==, _EqualOpConcept);
│ │ │ │ +297 _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(!=, _NotEqualOpConcept);
│ │ │ │ +298 _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(<, _LessThanOpConcept);
│ │ │ │ +299 _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(<=, _LessEqualOpConcept);
│ │ │ │ +300 _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(>, _GreaterThanOpConcept);
│ │ │ │ +301 _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(>=, _GreaterEqualOpConcept);
│ │ │ │ +302
│ │ │ │ +303 _GLIBCXX_DEFINE_BINARY_OPERATOR_CONSTRAINT(+, _PlusOpConcept);
│ │ │ │ +304 _GLIBCXX_DEFINE_BINARY_OPERATOR_CONSTRAINT(*, _TimesOpConcept);
│ │ │ │ +305 _GLIBCXX_DEFINE_BINARY_OPERATOR_CONSTRAINT(/, _DivideOpConcept);
│ │ │ │ +306 _GLIBCXX_DEFINE_BINARY_OPERATOR_CONSTRAINT(-, _SubtractOpConcept);
│ │ │ │ +307 _GLIBCXX_DEFINE_BINARY_OPERATOR_CONSTRAINT(%, _ModOpConcept);
│ │ │ │ +308
│ │ │ │ +309#undef _GLIBCXX_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT
│ │ │ │ +310#undef _GLIBCXX_DEFINE_BINARY_OPERATOR_CONSTRAINT
│ │ │ │ +311
│ │ │ │ +312 //
│ │ │ │ +===========================================================================
│ │ │ │ +313 // Function Object Concepts
│ │ │ │ +314
│ │ │ │ +315 template
│ │ │ │ +316 struct _GeneratorConcept
│ │ │ │ +317 {
│ │ │ │ +318 void __constraints() {
│ │ │ │ +319 const _Return& __r _IsUnused = __f();// require operator() member function
│ │ │ │ +320 }
│ │ │ │ +321 _Func __f;
│ │ │ │ +322 };
│ │ │ │ +323
│ │ │ │ +324
│ │ │ │ +325 template
│ │ │ │ +326 struct _GeneratorConcept<_Func,void>
│ │ │ │ +327 {
│ │ │ │ +328 void __constraints() {
│ │ │ │ +329 __f(); // require operator() member function
│ │ │ │ +330 }
│ │ │ │ +331 _Func __f;
│ │ │ │ +332 };
│ │ │ │ +333
│ │ │ │ +334 template
│ │ │ │ +335 struct _UnaryFunctionConcept
│ │ │ │ +336 {
│ │ │ │ +337 void __constraints() {
│ │ │ │ +338 __r = __f(__arg); // require operator()
│ │ │ │ +339 }
│ │ │ │ +340 _Func __f;
│ │ │ │ +341 _Arg __arg;
│ │ │ │ +342 _Return __r;
│ │ │ │ +343 };
│ │ │ │ +344
│ │ │ │ +345 template
│ │ │ │ +346 struct _UnaryFunctionConcept<_Func, void, _Arg> {
│ │ │ │ +347 void __constraints() {
│ │ │ │ +348 __f(__arg); // require operator()
│ │ │ │ +349 }
│ │ │ │ +350 _Func __f;
│ │ │ │ +351 _Arg __arg;
│ │ │ │ +352 };
│ │ │ │ +353
│ │ │ │ +354 template
│ │ │ │ +355 struct _BinaryFunctionConcept
│ │ │ │ +356 {
│ │ │ │ +357 void __constraints() {
│ │ │ │ +358 __r = __f(__first, __second); // require operator()
│ │ │ │ +359 }
│ │ │ │ +360 _Func __f;
│ │ │ │ +361 _First __first;
│ │ │ │ +362 _Second __second;
│ │ │ │ +363 _Return __r;
│ │ │ │ +364 };
│ │ │ │ +365
│ │ │ │ +366 template
│ │ │ │ +367 struct _BinaryFunctionConcept<_Func, void, _First, _Second>
│ │ │ │ +368 {
│ │ │ │ +369 void __constraints() {
│ │ │ │ +370 __f(__first, __second); // require operator()
│ │ │ │ +371 }
│ │ │ │ +372 _Func __f;
│ │ │ │ +373 _First __first;
│ │ │ │ +374 _Second __second;
│ │ │ │ +375 };
│ │ │ │ +376
│ │ │ │ +377 template
│ │ │ │ +378 struct _UnaryPredicateConcept
│ │ │ │ +379 {
│ │ │ │ +380 void __constraints() {
│ │ │ │ +381 __aux_require_boolean_expr(__f(__arg)); // require op() returning bool
│ │ │ │ +382 }
│ │ │ │ +383 _Func __f;
│ │ │ │ +384 _Arg __arg;
│ │ │ │ +385 };
│ │ │ │ +386
│ │ │ │ +387 template
│ │ │ │ +388 struct _BinaryPredicateConcept
│ │ │ │ +389 {
│ │ │ │ +390 void __constraints() {
│ │ │ │ +391 __aux_require_boolean_expr(__f(__a, __b)); // require op() returning bool
│ │ │ │ +392 }
│ │ │ │ +393 _Func __f;
│ │ │ │ +394 _First __a;
│ │ │ │ +395 _Second __b;
│ │ │ │ +396 };
│ │ │ │ +397
│ │ │ │ +398 // use this when functor is used inside a container class like std::set
│ │ │ │ +399 template
│ │ │ │ +400 struct _Const_BinaryPredicateConcept {
│ │ │ │ +401 void __constraints() {
│ │ │ │ +402 __const_constraints(__f);
│ │ │ │ +403 }
│ │ │ │ +404 void __const_constraints(const _Func& __fun) {
│ │ │ │ +405 __function_requires<_BinaryPredicateConcept<_Func, _First, _Second> >();
│ │ │ │ +406 // operator() must be a const member function
│ │ │ │ +407 __aux_require_boolean_expr(__fun(__a, __b));
│ │ │ │ +408 }
│ │ │ │ +409 _Func __f;
│ │ │ │ +410 _First __a;
│ │ │ │ +411 _Second __b;
│ │ │ │ +412 };
│ │ │ │ +413
│ │ │ │ +414 //
│ │ │ │ +===========================================================================
│ │ │ │ +415 // Iterator Concepts
│ │ │ │ +416
│ │ │ │ +417 template
│ │ │ │ +418 struct _TrivialIteratorConcept
│ │ │ │ +419 {
│ │ │ │ +420 void __constraints() {
│ │ │ │ +421// __function_requires< _DefaultConstructibleConcept<_Tp> >();
│ │ │ │ +422 __function_requires< _AssignableConcept<_Tp> >();
│ │ │ │ +423 __function_requires< _EqualityComparableConcept<_Tp> >();
│ │ │ │ +424// typedef typename std::iterator_traits<_Tp>::value_type _V;
│ │ │ │ +425 (void)*__i; // require dereference operator
│ │ │ │ +426 }
│ │ │ │ +427 _Tp __i;
│ │ │ │ +428 };
│ │ │ │ +429
│ │ │ │ +430 template
│ │ │ │ +431 struct _Mutable_TrivialIteratorConcept
│ │ │ │ +432 {
│ │ │ │ +433 void __constraints() {
│ │ │ │ +434 __function_requires< _TrivialIteratorConcept<_Tp> >();
│ │ │ │ +435 *__i = *__j; // require dereference and assignment
│ │ │ │ +436 }
│ │ │ │ +437 _Tp __i, __j;
│ │ │ │ +438 };
│ │ │ │ +439
│ │ │ │ +440 template
│ │ │ │ +441 struct _InputIteratorConcept
│ │ │ │ +442 {
│ │ │ │ +443 void __constraints() {
│ │ │ │ +444 __function_requires< _TrivialIteratorConcept<_Tp> >();
│ │ │ │ +445 // require iterator_traits typedef's
│ │ │ │ +446 typedef typename std::iterator_traits<_Tp>::difference_type _Diff;
│ │ │ │ +447// __function_requires< _SignedIntegerConcept<_Diff> >();
│ │ │ │ +448 typedef typename std::iterator_traits<_Tp>::reference _Ref;
│ │ │ │ +449 typedef typename std::iterator_traits<_Tp>::pointer _Pt;
│ │ │ │ +450 typedef typename std::iterator_traits<_Tp>::iterator_category _Cat;
│ │ │ │ +451 __function_requires< _ConvertibleConcept<
│ │ │ │ +452 typename std::iterator_traits<_Tp>::iterator_category,
│ │ │ │ +453 std::input_iterator_tag> >();
│ │ │ │ +454 ++__i; // require preincrement operator
│ │ │ │ +455 __i++; // require postincrement operator
│ │ │ │ +456 }
│ │ │ │ +457 _Tp __i;
│ │ │ │ +458 };
│ │ │ │ +459
│ │ │ │ +460 template
│ │ │ │ +461 struct _OutputIteratorConcept
│ │ │ │ +462 {
│ │ │ │ +463 void __constraints() {
│ │ │ │ +464 __function_requires< _AssignableConcept<_Tp> >();
│ │ │ │ +465 ++__i; // require preincrement operator
│ │ │ │ +466 __i++; // require postincrement operator
│ │ │ │ +467 *__i++ = __t; // require postincrement and assignment
│ │ │ │ +468 }
│ │ │ │ +469 _Tp __i;
│ │ │ │ +470 _ValueT __t;
│ │ │ │ +471 };
│ │ │ │ +472
│ │ │ │ +473 template
│ │ │ │ +474 struct _ForwardIteratorConcept
│ │ │ │ +475 {
│ │ │ │ +476 void __constraints() {
│ │ │ │ +477 __function_requires< _InputIteratorConcept<_Tp> >();
│ │ │ │ +478 __function_requires< _DefaultConstructibleConcept<_Tp> >();
│ │ │ │ +479 __function_requires< _ConvertibleConcept<
│ │ │ │ +480 typename std::iterator_traits<_Tp>::iterator_category,
│ │ │ │ +481 std::forward_iterator_tag> >();
│ │ │ │ +482 typedef typename std::iterator_traits<_Tp>::reference _Ref;
│ │ │ │ +483 _Ref __r _IsUnused = *__i;
│ │ │ │ +484 }
│ │ │ │ +485 _Tp __i;
│ │ │ │ +486 };
│ │ │ │ +487
│ │ │ │ +488 template
│ │ │ │ +489 struct _Mutable_ForwardIteratorConcept
│ │ │ │ +490 {
│ │ │ │ +491 void __constraints() {
│ │ │ │ +492 __function_requires< _ForwardIteratorConcept<_Tp> >();
│ │ │ │ +493 *__i++ = *__i; // require postincrement and assignment
│ │ │ │ +494 }
│ │ │ │ +495 _Tp __i;
│ │ │ │ +496 };
│ │ │ │ +497
│ │ │ │ +498 template
│ │ │ │ +499 struct _BidirectionalIteratorConcept
│ │ │ │ +500 {
│ │ │ │ +501 void __constraints() {
│ │ │ │ +502 __function_requires< _ForwardIteratorConcept<_Tp> >();
│ │ │ │ +503 __function_requires< _ConvertibleConcept<
│ │ │ │ +504 typename std::iterator_traits<_Tp>::iterator_category,
│ │ │ │ +505 std::bidirectional_iterator_tag> >();
│ │ │ │ +506 --__i; // require predecrement operator
│ │ │ │ +507 __i--; // require postdecrement operator
│ │ │ │ +508 }
│ │ │ │ +509 _Tp __i;
│ │ │ │ +510 };
│ │ │ │ +511
│ │ │ │ +512 template
│ │ │ │ +513 struct _Mutable_BidirectionalIteratorConcept
│ │ │ │ +514 {
│ │ │ │ +515 void __constraints() {
│ │ │ │ +516 __function_requires< _BidirectionalIteratorConcept<_Tp> >();
│ │ │ │ +517 __function_requires< _Mutable_ForwardIteratorConcept<_Tp> >();
│ │ │ │ +518 *__i-- = *__i; // require postdecrement and assignment
│ │ │ │ +519 }
│ │ │ │ +520 _Tp __i;
│ │ │ │ +521 };
│ │ │ │ +522
│ │ │ │ +523
│ │ │ │ +524 template
│ │ │ │ +525 struct _RandomAccessIteratorConcept
│ │ │ │ +526 {
│ │ │ │ +527 void __constraints() {
│ │ │ │ +528 __function_requires< _BidirectionalIteratorConcept<_Tp> >();
│ │ │ │ +529 __function_requires< _ComparableConcept<_Tp> >();
│ │ │ │ +530 __function_requires< _ConvertibleConcept<
│ │ │ │ +531 typename std::iterator_traits<_Tp>::iterator_category,
│ │ │ │ +532 std::random_access_iterator_tag> >();
│ │ │ │ +533 // ??? We don't use _Ref, are we just checking for "referenceability"?
│ │ │ │ +534 typedef typename std::iterator_traits<_Tp>::reference _Ref;
│ │ │ │ +535
│ │ │ │ +536 __i += __n; // require assignment addition operator
│ │ │ │ +537 __i = __i + __n; __i = __n + __i; // require addition with difference type
│ │ │ │ +538 __i -= __n; // require assignment subtraction op
│ │ │ │ +539 __i = __i - __n; // require subtraction with
│ │ │ │ +540 // difference type
│ │ │ │ +541 __n = __i - __j; // require difference operator
│ │ │ │ +542 (void)__i[__n]; // require element access operator
│ │ │ │ +543 }
│ │ │ │ +544 _Tp __a, __b;
│ │ │ │ +545 _Tp __i, __j;
│ │ │ │ +546 typename std::iterator_traits<_Tp>::difference_type __n;
│ │ │ │ +547 };
│ │ │ │ +548
│ │ │ │ +549 template
│ │ │ │ +550 struct _Mutable_RandomAccessIteratorConcept
│ │ │ │ +551 {
│ │ │ │ +552 void __constraints() {
│ │ │ │ +553 __function_requires< _RandomAccessIteratorConcept<_Tp> >();
│ │ │ │ +554 __function_requires< _Mutable_BidirectionalIteratorConcept<_Tp> >();
│ │ │ │ +555 __i[__n] = *__i; // require element access and assignment
│ │ │ │ +556 }
│ │ │ │ +557 _Tp __i;
│ │ │ │ +558 typename std::iterator_traits<_Tp>::difference_type __n;
│ │ │ │ +559 };
│ │ │ │ +560
│ │ │ │ +561 //
│ │ │ │ +===========================================================================
│ │ │ │ +562 // Container Concepts
│ │ │ │ +563
│ │ │ │ +564 template
│ │ │ │ +565 struct _ContainerConcept
│ │ │ │ +566 {
│ │ │ │ +567 typedef typename _Container::value_type _Value_type;
│ │ │ │ +568 typedef typename _Container::difference_type _Difference_type;
│ │ │ │ +569 typedef typename _Container::size_type _Size_type;
│ │ │ │ +570 typedef typename _Container::const_reference _Const_reference;
│ │ │ │ +571 typedef typename _Container::const_pointer _Const_pointer;
│ │ │ │ +572 typedef typename _Container::const_iterator _Const_iterator;
│ │ │ │ +573
│ │ │ │ +574 void __constraints() {
│ │ │ │ +575 __function_requires< _InputIteratorConcept<_Const_iterator> >();
│ │ │ │ +576 __function_requires< _AssignableConcept<_Container> >();
│ │ │ │ +577 const _Container __c;
│ │ │ │ +578 __i = __c.begin();
│ │ │ │ +579 __i = __c.end();
│ │ │ │ +580 __n = __c.size();
│ │ │ │ +581 __n = __c.max_size();
│ │ │ │ +582 __b = __c.empty();
│ │ │ │ +583 }
│ │ │ │ +584 bool __b;
│ │ │ │ +585 _Const_iterator __i;
│ │ │ │ +586 _Size_type __n;
│ │ │ │ +587 };
│ │ │ │ +588
│ │ │ │ +589 template
│ │ │ │ +590 struct _Mutable_ContainerConcept
│ │ │ │ +591 {
│ │ │ │ +592 typedef typename _Container::value_type _Value_type;
│ │ │ │ +593 typedef typename _Container::reference _Reference;
│ │ │ │ +594 typedef typename _Container::iterator _Iterator;
│ │ │ │ +595 typedef typename _Container::pointer _Pointer;
│ │ │ │ +596
│ │ │ │ +597 void __constraints() {
│ │ │ │ +598 __function_requires< _ContainerConcept<_Container> >();
│ │ │ │ +599 __function_requires< _AssignableConcept<_Value_type> >();
│ │ │ │ +600 __function_requires< _InputIteratorConcept<_Iterator> >();
│ │ │ │ +601
│ │ │ │ +602 __i = __c.begin();
│ │ │ │ +603 __i = __c.end();
│ │ │ │ +604 __c.swap(__c2);
│ │ │ │ +605 }
│ │ │ │ +606 _Iterator __i;
│ │ │ │ +607 _Container __c, __c2;
│ │ │ │ +608 };
│ │ │ │ +609
│ │ │ │ +610 template
│ │ │ │ +611 struct _ForwardContainerConcept
│ │ │ │ +612 {
│ │ │ │ +613 void __constraints() {
│ │ │ │ +614 __function_requires< _ContainerConcept<_ForwardContainer> >();
│ │ │ │ +615 typedef typename _ForwardContainer::const_iterator _Const_iterator;
│ │ │ │ +616 __function_requires< _ForwardIteratorConcept<_Const_iterator> >();
│ │ │ │ +617 }
│ │ │ │ +618 };
│ │ │ │ +619
│ │ │ │ +620 template
│ │ │ │ +621 struct _Mutable_ForwardContainerConcept
│ │ │ │ +622 {
│ │ │ │ +623 void __constraints() {
│ │ │ │ +624 __function_requires< _ForwardContainerConcept<_ForwardContainer> >();
│ │ │ │ +625 __function_requires< _Mutable_ContainerConcept<_ForwardContainer> >();
│ │ │ │ +626 typedef typename _ForwardContainer::iterator _Iterator;
│ │ │ │ +627 __function_requires< _Mutable_ForwardIteratorConcept<_Iterator> >();
│ │ │ │ +628 }
│ │ │ │ +629 };
│ │ │ │ +630
│ │ │ │ +631 template
│ │ │ │ +632 struct _ReversibleContainerConcept
│ │ │ │ +633 {
│ │ │ │ +634 typedef typename _ReversibleContainer::const_iterator _Const_iterator;
│ │ │ │ +635 typedef typename _ReversibleContainer::const_reverse_iterator
│ │ │ │ +636 _Const_reverse_iterator;
│ │ │ │ +637
│ │ │ │ +638 void __constraints() {
│ │ │ │ +639 __function_requires< _ForwardContainerConcept<_ReversibleContainer> >();
│ │ │ │ +640 __function_requires< _BidirectionalIteratorConcept<_Const_iterator> >();
│ │ │ │ +641 __function_requires<
│ │ │ │ +642 _BidirectionalIteratorConcept<_Const_reverse_iterator> >();
│ │ │ │ +643
│ │ │ │ +644 const _ReversibleContainer __c;
│ │ │ │ +645 _Const_reverse_iterator __i = __c.rbegin();
│ │ │ │ +646 __i = __c.rend();
│ │ │ │ +647 }
│ │ │ │ +648 };
│ │ │ │ +649
│ │ │ │ +650 template
│ │ │ │ +651 struct _Mutable_ReversibleContainerConcept
│ │ │ │ +652 {
│ │ │ │ +653 typedef typename _ReversibleContainer::iterator _Iterator;
│ │ │ │ +654 typedef typename _ReversibleContainer::reverse_iterator _Reverse_iterator;
│ │ │ │ +655
│ │ │ │ +656 void __constraints() {
│ │ │ │ +657 __function_requires<_ReversibleContainerConcept<_ReversibleContainer> >();
│ │ │ │ +658 __function_requires<
│ │ │ │ +659 _Mutable_ForwardContainerConcept<_ReversibleContainer> >();
│ │ │ │ +660 __function_requires<_Mutable_BidirectionalIteratorConcept<_Iterator> >();
│ │ │ │ +661 __function_requires<
│ │ │ │ +662 _Mutable_BidirectionalIteratorConcept<_Reverse_iterator> >();
│ │ │ │ +663
│ │ │ │ +664 _Reverse_iterator __i = __c.rbegin();
│ │ │ │ +665 __i = __c.rend();
│ │ │ │ +666 }
│ │ │ │ +667 _ReversibleContainer __c;
│ │ │ │ +668 };
│ │ │ │ +669
│ │ │ │ +670 template
│ │ │ │ +671 struct _RandomAccessContainerConcept
│ │ │ │ +672 {
│ │ │ │ +673 typedef typename _RandomAccessContainer::size_type _Size_type;
│ │ │ │ +674 typedef typename _RandomAccessContainer::const_reference _Const_reference;
│ │ │ │ +675 typedef typename _RandomAccessContainer::const_iterator _Const_iterator;
│ │ │ │ +676 typedef typename _RandomAccessContainer::const_reverse_iterator
│ │ │ │ +677 _Const_reverse_iterator;
│ │ │ │ +678
│ │ │ │ +679 void __constraints() {
│ │ │ │ +680 __function_requires<
│ │ │ │ +681 _ReversibleContainerConcept<_RandomAccessContainer> >();
│ │ │ │ +682 __function_requires< _RandomAccessIteratorConcept<_Const_iterator> >();
│ │ │ │ +683 __function_requires<
│ │ │ │ +684 _RandomAccessIteratorConcept<_Const_reverse_iterator> >();
│ │ │ │ +685
│ │ │ │ +686 const _RandomAccessContainer __c;
│ │ │ │ +687 _Const_reference __r _IsUnused = __c[__n];
│ │ │ │ +688 }
│ │ │ │ +689 _Size_type __n;
│ │ │ │ +690 };
│ │ │ │ +691
│ │ │ │ +692 template
│ │ │ │ +693 struct _Mutable_RandomAccessContainerConcept
│ │ │ │ +694 {
│ │ │ │ +695 typedef typename _RandomAccessContainer::size_type _Size_type;
│ │ │ │ +696 typedef typename _RandomAccessContainer::reference _Reference;
│ │ │ │ +697 typedef typename _RandomAccessContainer::iterator _Iterator;
│ │ │ │ +698 typedef typename _RandomAccessContainer::reverse_iterator
│ │ │ │ +_Reverse_iterator;
│ │ │ │ +699
│ │ │ │ +700 void __constraints() {
│ │ │ │ +701 __function_requires<
│ │ │ │ +702 _RandomAccessContainerConcept<_RandomAccessContainer> >();
│ │ │ │ +703 __function_requires<
│ │ │ │ +704 _Mutable_ReversibleContainerConcept<_RandomAccessContainer> >();
│ │ │ │ +705 __function_requires< _Mutable_RandomAccessIteratorConcept<_Iterator> >();
│ │ │ │ +706 __function_requires<
│ │ │ │ +707 _Mutable_RandomAccessIteratorConcept<_Reverse_iterator> >();
│ │ │ │ +708
│ │ │ │ +709 _Reference __r _IsUnused = __c[__i];
│ │ │ │ +710 }
│ │ │ │ +711 _Size_type __i;
│ │ │ │ +712 _RandomAccessContainer __c;
│ │ │ │ +713 };
│ │ │ │ +714
│ │ │ │ +715 // A Sequence is inherently mutable
│ │ │ │ +716 template
│ │ │ │ +717 struct _SequenceConcept
│ │ │ │ +718 {
│ │ │ │ +719 typedef typename _Sequence::reference _Reference;
│ │ │ │ +720 typedef typename _Sequence::const_reference _Const_reference;
│ │ │ │ +721
│ │ │ │ +722 void __constraints() {
│ │ │ │ +723 // Matt Austern's book puts DefaultConstructible here, the C++
│ │ │ │ +724 // standard places it in Container
│ │ │ │ +725 // function_requires< DefaultConstructible >();
│ │ │ │ +726 __function_requires< _Mutable_ForwardContainerConcept<_Sequence> >();
│ │ │ │ +727 __function_requires< _DefaultConstructibleConcept<_Sequence> >();
│ │ │ │ +728
│ │ │ │ +729 _Sequence
│ │ │ │ +730 __c _IsUnused(__n, __t),
│ │ │ │ +731 __c2 _IsUnused(__first, __last);
│ │ │ │ +732
│ │ │ │ +733 __c.insert(__p, __t);
│ │ │ │ +734 __c.insert(__p, __n, __t);
│ │ │ │ +735 __c.insert(__p, __first, __last);
│ │ │ │ +736
│ │ │ │ +737 __c.erase(__p);
│ │ │ │ +738 __c.erase(__p, __q);
│ │ │ │ +739
│ │ │ │ +740 _Reference __r _IsUnused = __c.front();
│ │ │ │ +741
│ │ │ │ +742 __const_constraints(__c);
│ │ │ │ +743 }
│ │ │ │ +744 void __const_constraints(const _Sequence& __c) {
│ │ │ │ +745 _Const_reference __r _IsUnused = __c.front();
│ │ │ │ +746 }
│ │ │ │ +747 typename _Sequence::value_type __t;
│ │ │ │ +748 typename _Sequence::size_type __n;
│ │ │ │ +749 typename _Sequence::value_type *__first, *__last;
│ │ │ │ +750 typename _Sequence::iterator __p, __q;
│ │ │ │ +751 };
│ │ │ │ +752
│ │ │ │ +753 template
│ │ │ │ +754 struct _FrontInsertionSequenceConcept
│ │ │ │ +755 {
│ │ │ │ +756 void __constraints() {
│ │ │ │ +757 __function_requires< _SequenceConcept<_FrontInsertionSequence> >();
│ │ │ │ +758
│ │ │ │ +759 __c.push_front(__t);
│ │ │ │ +760 __c.pop_front();
│ │ │ │ +761 }
│ │ │ │ +762 _FrontInsertionSequence __c;
│ │ │ │ +763 typename _FrontInsertionSequence::value_type __t;
│ │ │ │ +764 };
│ │ │ │ +765
│ │ │ │ +766 template
│ │ │ │ +767 struct _BackInsertionSequenceConcept
│ │ │ │ +768 {
│ │ │ │ +769 typedef typename _BackInsertionSequence::reference _Reference;
│ │ │ │ +770 typedef typename _BackInsertionSequence::const_reference _Const_reference;
│ │ │ │ +771
│ │ │ │ +772 void __constraints() {
│ │ │ │ +773 __function_requires< _SequenceConcept<_BackInsertionSequence> >();
│ │ │ │ +774
│ │ │ │ +775 __c.push_back(__t);
│ │ │ │ +776 __c.pop_back();
│ │ │ │ +777 _Reference __r _IsUnused = __c.back();
│ │ │ │ +778 }
│ │ │ │ +779 void __const_constraints(const _BackInsertionSequence& __c) {
│ │ │ │ +780 _Const_reference __r _IsUnused = __c.back();
│ │ │ │ +781 };
│ │ │ │ +782 _BackInsertionSequence __c;
│ │ │ │ +783 typename _BackInsertionSequence::value_type __t;
│ │ │ │ +784 };
│ │ │ │ +785
│ │ │ │ +786_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ +787} // namespace
│ │ │ │ +788
│ │ │ │ +789#pragma GCC diagnostic pop
│ │ │ │ +790#undef _IsUnused
│ │ │ │ +791
│ │ │ │ +792#endif // _GLIBCXX_BOOST_CONCEPT_CHECK
│ │ │ │ +793
│ │ │ │ +794
│ │ │ │ +_s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___t_y_p_e_s_._h
│ │ │ │ _c_+_+_c_o_n_f_i_g_._h
│ │ │ │ -_s_t_d
│ │ │ │ -ISO C++ entities toplevel namespace is std.
│ │ │ │ -_s_t_d_:_:_t_y_p_e___i_n_f_o
│ │ │ │ -Part of RTTI.
│ │ │ │ -DDeeffiinniittiioonn _t_y_p_e_i_n_f_o_:_8_9
│ │ │ │ +_____g_n_u___c_x_x
│ │ │ │ +GNU extensions for public use.
│ │ │ │ * bbiittss
│ │ │ │ - * _c_x_x_a_b_i___i_n_i_t___e_x_c_e_p_t_i_o_n_._h
│ │ │ │ + * _b_o_o_s_t___c_o_n_c_e_p_t___c_h_e_c_k_._h
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00338.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: cxxabi_forced.h File Reference
│ │ │ +libstdc++: valarray_array.tcc File Reference
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,40 +48,86 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
Go to the source code of this file.
│ │ │
│ │ │ +
│ │ │ +template<typename _Tp>
│ │ │ +void std::__valarray_copy (_Array< _Tp > __a, _Array< bool > __m, _Array< _Tp > __b, size_t __n)
│ │ │ +template<typename _Tp>
│ │ │ +void std::__valarray_copy (_Array< _Tp > __a, _Array< bool > __m, size_t __n, _Array< _Tp > __b, _Array< bool > __k)
│ │ │ +template<typename _Tp>
│ │ │ +void std::__valarray_copy (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b, _Array< bool > __m)
│ │ │ +template<typename _Tp>
│ │ │ +void std::__valarray_copy (_Array< _Tp > __e, _Array< size_t > __f, size_t __n, _Array< _Tp > __a, _Array< size_t > __i)
│ │ │ +template<typename _Tp, class _Dom>
│ │ │ +void std::__valarray_copy (const _Expr< _Dom, _Tp > &__e, size_t __n, _Array< _Tp > __a)
│ │ │ +template<typename _Tp, class _Dom>
│ │ │ +void std::__valarray_copy (const _Expr< _Dom, _Tp > &__e, size_t __n, _Array< _Tp > __a, _Array< bool > __m)
│ │ │ +template<typename _Tp, class _Dom>
│ │ │ +void std::__valarray_copy (const _Expr< _Dom, _Tp > &__e, size_t __n, _Array< _Tp > __a, _Array< size_t > __i)
│ │ │ +template<typename _Tp, class _Dom>
│ │ │ +void std::__valarray_copy (const _Expr< _Dom, _Tp > &__e, size_t __n, _Array< _Tp > __a, size_t __s)
│ │ │ +template<typename _Tp>
│ │ │ +void std::__valarray_copy_construct (_Array< _Tp > __a, _Array< bool > __m, _Array< _Tp > __b, size_t __n)
│ │ │ +template<typename _Tp, class _Dom>
│ │ │ +void std::__valarray_copy_construct (const _Expr< _Dom, _Tp > &__e, size_t __n, _Array< _Tp > __a)
│ │ │ +template<typename _Tp>
│ │ │ +void std::__valarray_fill (_Array< _Tp > __a, size_t __n, _Array< bool > __m, const _Tp &__t)
│ │ │
│ │ │
│ │ │ -
This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <cxxabi.h>.
│ │ │ +
This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <valarray>.
│ │ │
│ │ │ -
Definition in file cxxabi_forced.h .
│ │ │ -
│ │ │ +
Definition in file valarray_array.tcc .
│ │ │ +
│ │ │ +
│ │ │ +
◆ _VALARRAY_ARRAY_TCC
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + #define _VALARRAY_ARRAY_TCC
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,12 +1,52 @@
│ │ │ │ libstdc++
│ │ │ │ -cxxabi_forced.h File Reference
│ │ │ │ +valarray_array.tcc 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 _____c_x_x_a_b_i_v_1_:_:_____f_o_r_c_e_d___u_n_w_i_n_d
│ │ │ │ +NNaammeessppaacceess
│ │ │ │ +namespace _s_t_d
│ │ │ │ +MMaaccrrooss
│ │ │ │ +#define ___V_A_L_A_R_R_A_Y___A_R_R_A_Y___T_C_C
│ │ │ │ +FFuunnccttiioonnss
│ │ │ │ +template
│ │ │ │ +void _s_t_d_:_:_____v_a_l_a_r_r_a_y___c_o_p_y (_Array< _Tp > __a, _Array< bool > __m, _Array< _Tp
│ │ │ │ + > __b, size_t __n)
│ │ │ │ +template
│ │ │ │ +void _s_t_d_:_:_____v_a_l_a_r_r_a_y___c_o_p_y (_Array< _Tp > __a, _Array< bool > __m, size_t __n,
│ │ │ │ + _Array< _Tp > __b, _Array< bool > __k)
│ │ │ │ +template
│ │ │ │ +void _s_t_d_:_:_____v_a_l_a_r_r_a_y___c_o_p_y (_Array< _Tp > __a, size_t __n, _Array< _Tp > __b,
│ │ │ │ + _Array< bool > __m)
│ │ │ │ +template
│ │ │ │ +void _s_t_d_:_:_____v_a_l_a_r_r_a_y___c_o_p_y (_Array< _Tp > __e, _Array< size_t > __f, size_t
│ │ │ │ + __n, _Array< _Tp > __a, _Array< size_t > __i)
│ │ │ │ +template
│ │ │ │ +void _s_t_d_:_:_____v_a_l_a_r_r_a_y___c_o_p_y (const _Expr< _Dom, _Tp > &__e, size_t __n, _Array<
│ │ │ │ + _Tp > __a)
│ │ │ │ +template
│ │ │ │ +void _s_t_d_:_:_____v_a_l_a_r_r_a_y___c_o_p_y (const _Expr< _Dom, _Tp > &__e, size_t __n, _Array<
│ │ │ │ + _Tp > __a, _Array< bool > __m)
│ │ │ │ +template
│ │ │ │ +void _s_t_d_:_:_____v_a_l_a_r_r_a_y___c_o_p_y (const _Expr< _Dom, _Tp > &__e, size_t __n, _Array<
│ │ │ │ + _Tp > __a, _Array< size_t > __i)
│ │ │ │ +template
│ │ │ │ +void _s_t_d_:_:_____v_a_l_a_r_r_a_y___c_o_p_y (const _Expr< _Dom, _Tp > &__e, size_t __n, _Array<
│ │ │ │ + _Tp > __a, size_t __s)
│ │ │ │ +template
│ │ │ │ +void _s_t_d_:_:_____v_a_l_a_r_r_a_y___c_o_p_y___c_o_n_s_t_r_u_c_t (_Array< _Tp > __a, _Array< bool > __m,
│ │ │ │ + _Array< _Tp > __b, size_t __n)
│ │ │ │ +template
│ │ │ │ +void _s_t_d_:_:_____v_a_l_a_r_r_a_y___c_o_p_y___c_o_n_s_t_r_u_c_t (const _Expr< _Dom, _Tp > &__e, size_t
│ │ │ │ + __n, _Array< _Tp > __a)
│ │ │ │ +template
│ │ │ │ +void _s_t_d_:_:_____v_a_l_a_r_r_a_y___f_i_l_l (_Array< _Tp > __a, size_t __n, _Array< bool > __m,
│ │ │ │ + const _Tp &__t)
│ │ │ │ ********** 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 _c_x_x_a_b_i___f_o_r_c_e_d_._h.
│ │ │ │ +attempt to use it directly. Instead, include .
│ │ │ │ +Definition in file _v_a_l_a_r_r_a_y___a_r_r_a_y_._t_c_c.
│ │ │ │ +********** MMaaccrroo DDeeffiinniittiioonn DDooccuummeennttaattiioonn **********
│ │ │ │ +********** _?◆_? __VVAALLAARRRRAAYY__AARRRRAAYY__TTCCCC **********
│ │ │ │ +#define _VALARRAY_ARRAY_TCC
│ │ │ │ +Definition at line _3_3 of file _v_a_l_a_r_r_a_y___a_r_r_a_y_._t_c_c.
│ │ │ │ * bbiittss
│ │ │ │ - * _c_x_x_a_b_i___f_o_r_c_e_d_._h
│ │ │ │ + * _v_a_l_a_r_r_a_y___a_r_r_a_y_._t_c_c
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00338_source.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: cxxabi_forced.h Source File
│ │ │ +libstdc++: valarray_array.tcc Source File
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,85 +48,267 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
Go to the documentation of this file.
│ │ │ -
│ │ │ -
│ │ │ +
Go to the documentation of this file.
│ │ │ +
│ │ │ +
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
31 #ifndef _CXXABI_FORCED_H
│ │ │ -
32 #define _CXXABI_FORCED_H 1
│ │ │ -
│ │ │ -
34 #pragma GCC system_header
│ │ │ -
│ │ │ -
36 #pragma GCC visibility push(default)
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
53 virtual void __pure_dummy() = 0;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
58 #pragma GCC visibility pop
│ │ │ -
│ │ │ -
│ │ │ -
Thrown as part of forced unwinding.
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
32 #ifndef _VALARRAY_ARRAY_TCC
│ │ │ +
33 #define _VALARRAY_ARRAY_TCC 1
│ │ │ +
│ │ │ +
35 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ +
│ │ │ +
37 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
39 template <
typename _Tp>
│ │ │ +
│ │ │ +
41 __valarray_fill(_Array<_Tp> __a,
size_t __n, _Array<bool> __m,
│ │ │ +
│ │ │ +
│ │ │ +
44 _Tp* __p = __a._M_data;
│ │ │ +
45 bool * __ok (__m._M_data);
│ │ │ +
46 for (
size_t __i=0; __i < __n; ++__i, ++__ok, ++__p)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
63 template <
typename _Tp>
│ │ │ +
│ │ │ +
65 __valarray_copy(_Array<_Tp> __a, _Array<bool> __m, _Array<_Tp> __b,
│ │ │ +
│ │ │ +
│ │ │ +
68 _Tp* __p (__a._M_data);
│ │ │ +
69 bool * __ok (__m._M_data);
│ │ │ +
70 for (_Tp* __q = __b._M_data; __q < __b._M_data + __n;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
88 template <
typename _Tp>
│ │ │ +
│ │ │ +
90 __valarray_copy(_Array<_Tp> __a,
size_t __n, _Array<_Tp> __b,
│ │ │ +
│ │ │ +
│ │ │ +
93 _Tp* __q (__b._M_data);
│ │ │ +
94 bool * __ok (__m._M_data);
│ │ │ +
95 for (_Tp* __p = __a._M_data; __p < __a._M_data+__n;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
112 template <
typename _Tp>
│ │ │ +
│ │ │ +
114 __valarray_copy(_Array<_Tp> __a, _Array<bool> __m,
size_t __n,
│ │ │ +
115 _Array<_Tp> __b, _Array<bool> __k)
│ │ │ +
│ │ │ +
117 _Tp* __p (__a._M_data);
│ │ │ +
118 _Tp* __q (__b._M_data);
│ │ │ +
119 bool * __srcok (__m._M_data);
│ │ │ +
120 bool * __dstok (__k._M_data);
│ │ │ +
121 for (
size_t __i = 0; __i < __n;
│ │ │ +
122 ++__srcok, ++__p, ++__dstok, ++__q, ++__i)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
140 template <
typename _Tp,
class _Dom>
│ │ │ +
│ │ │ +
142 __valarray_copy(
const _Expr<_Dom, _Tp>& __e,
size_t __n, _Array<_Tp> __a)
│ │ │ +
│ │ │ +
144 _Tp* __p (__a._M_data);
│ │ │ +
145 for (
size_t __i = 0; __i < __n; ++__i, ++__p)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
151 template <
typename _Tp,
class _Dom>
│ │ │ +
│ │ │ +
153 __valarray_copy(
const _Expr<_Dom, _Tp>& __e,
size_t __n,
│ │ │ +
154 _Array<_Tp> __a,
size_t __s)
│ │ │ +
│ │ │ +
156 _Tp* __p (__a._M_data);
│ │ │ +
157 for (
size_t __i = 0; __i < __n; ++__i, __p += __s)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
163 template <
typename _Tp,
class _Dom>
│ │ │ +
│ │ │ +
165 __valarray_copy(
const _Expr<_Dom, _Tp>& __e,
size_t __n,
│ │ │ +
166 _Array<_Tp> __a, _Array<size_t> __i)
│ │ │ +
│ │ │ +
168 size_t * __j (__i._M_data);
│ │ │ +
169 for (
size_t __k = 0; __k < __n; ++__k, ++__j)
│ │ │ +
170 __a._M_data[*__j] = __e[__k];
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
175 template <
typename _Tp>
│ │ │ +
│ │ │ +
177 __valarray_copy(_Array<_Tp> __e, _Array<size_t> __f,
│ │ │ +
│ │ │ +
179 _Array<_Tp> __a, _Array<size_t> __i)
│ │ │ +
│ │ │ +
181 size_t * __g (__f._M_data);
│ │ │ +
182 size_t * __j (__i._M_data);
│ │ │ +
183 for (
size_t __k = 0; __k < __n; ++__k, ++__j, ++__g)
│ │ │ +
184 __a._M_data[*__j] = __e._M_data[*__g];
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
193 template <
typename _Tp,
class _Dom>
│ │ │ +
│ │ │ +
195 __valarray_copy(
const _Expr<_Dom, _Tp>& __e,
size_t __n,
│ │ │ +
196 _Array<_Tp> __a, _Array<bool> __m)
│ │ │ +
│ │ │ +
198 bool * __ok (__m._M_data);
│ │ │ +
199 _Tp* __p (__a._M_data);
│ │ │ +
200 for (
size_t __i = 0; __i < __n; ++__i, ++__ok, ++__p)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
212 template <
typename _Tp,
class _Dom>
│ │ │ +
│ │ │ +
214 __valarray_copy_construct(
const _Expr<_Dom, _Tp>& __e,
size_t __n,
│ │ │ +
│ │ │ +
│ │ │ +
217 _Tp* __p (__a._M_data);
│ │ │ +
218 for (
size_t __i = 0; __i < __n; ++__i, ++__p)
│ │ │ +
219 new (__p) _Tp(__e[__i]);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
223 template <
typename _Tp>
│ │ │ +
│ │ │ +
225 __valarray_copy_construct(_Array<_Tp> __a, _Array<bool> __m,
│ │ │ +
226 _Array<_Tp> __b,
size_t __n)
│ │ │ +
│ │ │ +
228 _Tp* __p (__a._M_data);
│ │ │ +
229 bool * __ok (__m._M_data);
│ │ │ +
230 for (_Tp* __q = __b._M_data; __q < __b._M_data+__n; ++__q, ++__ok, ++__p)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
241 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
ISO C++ entities toplevel namespace is std.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,69 +1,252 @@
│ │ │ │ libstdc++
│ │ │ │ -cxxabi_forced.h
│ │ │ │ +valarray_array.tcc
│ │ │ │ _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// cxxabi.h subset for cancellation -*- C++ -*-
│ │ │ │ +1// The template and inlines for the -*- C++ -*- internal _Array helper class.
│ │ │ │ 2
│ │ │ │ -3// Copyright (C) 2007-2021 Free Software Foundation, Inc.
│ │ │ │ +3// Copyright (C) 1997-2021 Free Software Foundation, Inc.
│ │ │ │ 4//
│ │ │ │ -5// This file is part of GCC.
│ │ │ │ -6//
│ │ │ │ -7// GCC is free software; you can redistribute it and/or modify
│ │ │ │ -8// it under the terms of the GNU General Public License as published by
│ │ │ │ -9// the Free Software Foundation; either version 3, or (at your option)
│ │ │ │ -10// any later version.
│ │ │ │ -11//
│ │ │ │ -12// GCC is distributed in the hope that it will be useful,
│ │ │ │ -13// but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
│ │ │ │ -15// GNU General Public License for more details.
│ │ │ │ -16//
│ │ │ │ -17// Under Section 7 of GPL version 3, you are granted additional
│ │ │ │ -18// permissions described in the GCC Runtime Library Exception, version
│ │ │ │ -19// 3.1, as published by the Free Software Foundation.
│ │ │ │ -20
│ │ │ │ -21// You should have received a copy of the GNU General Public License and
│ │ │ │ -22// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │ -23// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │ -24//
.
│ │ │ │ -25
│ │ │ │ -26/** @file bits/cxxabi_forced.h
│ │ │ │ -27 * This is an internal header file, included by other library headers.
│ │ │ │ -28 * Do not attempt to use it directly. @headername{cxxabi.h}
│ │ │ │ -29 */
│ │ │ │ -30
│ │ │ │ -31#ifndef _CXXABI_FORCED_H
│ │ │ │ -32#define _CXXABI_FORCED_H 1
│ │ │ │ -33
│ │ │ │ -34#pragma GCC system_header
│ │ │ │ -35
│ │ │ │ -36#pragma GCC visibility push(default)
│ │ │ │ -37
│ │ │ │ -38#ifdef __cplusplus
│ │ │ │ -39namespace __cxxabiv1
│ │ │ │ -40{
│ │ │ │ -41 /**
│ │ │ │ -42 * @brief Thrown as part of forced unwinding.
│ │ │ │ -43 * @ingroup exceptions
│ │ │ │ -44 *
│ │ │ │ -45 * A magic placeholder class that can be caught by reference to
│ │ │ │ -46 * recognize forced unwinding.
│ │ │ │ -47 */
│ │ │ │ -_4_8 class _____f_o_r_c_e_d___u_n_w_i_n_d
│ │ │ │ +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
│ │ │ │ +11// This library is distributed in the hope that it will be useful,
│ │ │ │ +12// but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
│ │ │ │ +14// GNU General Public License for more details.
│ │ │ │ +15
│ │ │ │ +16// Under Section 7 of GPL version 3, you are granted additional
│ │ │ │ +17// permissions described in the GCC Runtime Library Exception, version
│ │ │ │ +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/valarray_array.tcc
│ │ │ │ +26 * This is an internal header file, included by other library headers.
│ │ │ │ +27 * Do not attempt to use it directly. @headername{valarray}
│ │ │ │ +28 */
│ │ │ │ +29
│ │ │ │ +30// Written by Gabriel Dos Reis
│ │ │ │ +31
│ │ │ │ +32#ifndef _VALARRAY_ARRAY_TCC
│ │ │ │ +33#define _VALARRAY_ARRAY_TCC 1
│ │ │ │ +34
│ │ │ │ +35namespace _s_t_d _GLIBCXX_VISIBILITY(default)
│ │ │ │ +36{
│ │ │ │ +37_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ +38
│ │ │ │ +39 template
│ │ │ │ +40 void
│ │ │ │ +41 __valarray_fill(_Array<_Tp> __a, size_t __n, _Array __m,
│ │ │ │ +42 const _Tp& __t)
│ │ │ │ +43 {
│ │ │ │ +44 _Tp* __p = __a._M_data;
│ │ │ │ +45 bool* __ok (__m._M_data);
│ │ │ │ +46 for (size_t __i=0; __i < __n; ++__i, ++__ok, ++__p)
│ │ │ │ +47 {
│ │ │ │ +48 while (!*__ok)
│ │ │ │ 49 {
│ │ │ │ -50 virtual _~_____f_o_r_c_e_d___u_n_w_i_n_d() throw();
│ │ │ │ -51
│ │ │ │ -52 // Prevent catch by value.
│ │ │ │ -53 virtual void __pure_dummy() = 0;
│ │ │ │ -54 };
│ │ │ │ -55}
│ │ │ │ -56#endif // __cplusplus
│ │ │ │ -57
│ │ │ │ -58#pragma GCC visibility pop
│ │ │ │ -59
│ │ │ │ -60#endif // __CXXABI_FORCED_H
│ │ │ │ -_____c_x_x_a_b_i_v_1_:_:_____f_o_r_c_e_d___u_n_w_i_n_d
│ │ │ │ -Thrown as part of forced unwinding.
│ │ │ │ -DDeeffiinniittiioonn _c_x_x_a_b_i___f_o_r_c_e_d_._h_:_4_9
│ │ │ │ +50 ++__ok;
│ │ │ │ +51 ++__p;
│ │ │ │ +52 }
│ │ │ │ +53 *__p = __t;
│ │ │ │ +54 }
│ │ │ │ +55 }
│ │ │ │ +56
│ │ │ │ +57 // Copy n elements of a into consecutive elements of b. When m is
│ │ │ │ +58 // false, the corresponding element of a is skipped. m must contain
│ │ │ │ +59 // at least n true elements. a must contain at least n elements and
│ │ │ │ +60 // enough elements to match up with m through the nth true element
│ │ │ │ +61 // of m. I.e. if n is 10, m has 15 elements with 5 false followed
│ │ │ │ +62 // by 10 true, a must have 15 elements.
│ │ │ │ +63 template
│ │ │ │ +64 void
│ │ │ │ +65 __valarray_copy(_Array<_Tp> __a, _Array __m, _Array<_Tp> __b,
│ │ │ │ +66 size_t __n)
│ │ │ │ +67 {
│ │ │ │ +68 _Tp* __p (__a._M_data);
│ │ │ │ +69 bool* __ok (__m._M_data);
│ │ │ │ +70 for (_Tp* __q = __b._M_data; __q < __b._M_data + __n;
│ │ │ │ +71 ++__q, ++__ok, ++__p)
│ │ │ │ +72 {
│ │ │ │ +73 while (! *__ok)
│ │ │ │ +74 {
│ │ │ │ +75 ++__ok;
│ │ │ │ +76 ++__p;
│ │ │ │ +77 }
│ │ │ │ +78 *__q = *__p;
│ │ │ │ +79 }
│ │ │ │ +80 }
│ │ │ │ +81
│ │ │ │ +82 // Copy n consecutive elements from a into elements of b. Elements
│ │ │ │ +83 // of b are skipped if the corresponding element of m is false. m
│ │ │ │ +84 // must contain at least n true elements. b must have at least as
│ │ │ │ +85 // many elements as the index of the nth true element of m. I.e. if
│ │ │ │ +86 // m has 15 elements with 5 false followed by 10 true, b must have
│ │ │ │ +87 // at least 15 elements.
│ │ │ │ +88 template
│ │ │ │ +89 void
│ │ │ │ +90 __valarray_copy(_Array<_Tp> __a, size_t __n, _Array<_Tp> __b,
│ │ │ │ +91 _Array __m)
│ │ │ │ +92 {
│ │ │ │ +93 _Tp* __q (__b._M_data);
│ │ │ │ +94 bool* __ok (__m._M_data);
│ │ │ │ +95 for (_Tp* __p = __a._M_data; __p < __a._M_data+__n;
│ │ │ │ +96 ++__p, ++__ok, ++__q)
│ │ │ │ +97 {
│ │ │ │ +98 while (! *__ok)
│ │ │ │ +99 {
│ │ │ │ +100 ++__ok;
│ │ │ │ +101 ++__q;
│ │ │ │ +102 }
│ │ │ │ +103 *__q = *__p;
│ │ │ │ +104 }
│ │ │ │ +105 }
│ │ │ │ +106
│ │ │ │ +107 // Copy n elements from a into elements of b. Elements of a are
│ │ │ │ +108 // skipped if the corresponding element of m is false. Elements of
│ │ │ │ +109 // b are skipped if the corresponding element of k is false. m and
│ │ │ │ +110 // k must contain at least n true elements. a and b must have at
│ │ │ │ +111 // least as many elements as the index of the nth true element of m.
│ │ │ │ +112 template
│ │ │ │ +113 void
│ │ │ │ +114 __valarray_copy(_Array<_Tp> __a, _Array __m, size_t __n,
│ │ │ │ +115 _Array<_Tp> __b, _Array __k)
│ │ │ │ +116 {
│ │ │ │ +117 _Tp* __p (__a._M_data);
│ │ │ │ +118 _Tp* __q (__b._M_data);
│ │ │ │ +119 bool* __srcok (__m._M_data);
│ │ │ │ +120 bool* __dstok (__k._M_data);
│ │ │ │ +121 for (size_t __i = 0; __i < __n;
│ │ │ │ +122 ++__srcok, ++__p, ++__dstok, ++__q, ++__i)
│ │ │ │ +123 {
│ │ │ │ +124 while (! *__srcok)
│ │ │ │ +125 {
│ │ │ │ +126 ++__srcok;
│ │ │ │ +127 ++__p;
│ │ │ │ +128 }
│ │ │ │ +129 while (! *__dstok)
│ │ │ │ +130 {
│ │ │ │ +131 ++__dstok;
│ │ │ │ +132 ++__q;
│ │ │ │ +133 }
│ │ │ │ +134 *__q = *__p;
│ │ │ │ +135 }
│ │ │ │ +136 }
│ │ │ │ +137
│ │ │ │ +138 // Copy n consecutive elements of e into consecutive elements of a.
│ │ │ │ +139 // I.e. a[i] = e[i].
│ │ │ │ +140 template
│ │ │ │ +141 void
│ │ │ │ +142 __valarray_copy(const _Expr<_Dom, _Tp>& __e, size_t __n, _Array<_Tp> __a)
│ │ │ │ +143 {
│ │ │ │ +144 _Tp* __p (__a._M_data);
│ │ │ │ +145 for (size_t __i = 0; __i < __n; ++__i, ++__p)
│ │ │ │ +146 *__p = __e[__i];
│ │ │ │ +147 }
│ │ │ │ +148
│ │ │ │ +149 // Copy n consecutive elements of e into elements of a using stride
│ │ │ │ +150 // s. I.e., a[0] = e[0], a[s] = e[1], a[2*s] = e[2].
│ │ │ │ +151 template
│ │ │ │ +152 void
│ │ │ │ +153 __valarray_copy(const _Expr<_Dom, _Tp>& __e, size_t __n,
│ │ │ │ +154 _Array<_Tp> __a, size_t __s)
│ │ │ │ +155 {
│ │ │ │ +156 _Tp* __p (__a._M_data);
│ │ │ │ +157 for (size_t __i = 0; __i < __n; ++__i, __p += __s)
│ │ │ │ +158 *__p = __e[__i];
│ │ │ │ +159 }
│ │ │ │ +160
│ │ │ │ +161 // Copy n consecutive elements of e into elements of a indexed by
│ │ │ │ +162 // contents of i. I.e., a[i[0]] = e[0].
│ │ │ │ +163 template
│ │ │ │ +164 void
│ │ │ │ +165 __valarray_copy(const _Expr<_Dom, _Tp>& __e, size_t __n,
│ │ │ │ +166 _Array<_Tp> __a, _Array __i)
│ │ │ │ +167 {
│ │ │ │ +168 size_t* __j (__i._M_data);
│ │ │ │ +169 for (size_t __k = 0; __k < __n; ++__k, ++__j)
│ │ │ │ +170 __a._M_data[*__j] = __e[__k];
│ │ │ │ +171 }
│ │ │ │ +172
│ │ │ │ +173 // Copy n elements of e indexed by contents of f into elements of a
│ │ │ │ +174 // indexed by contents of i. I.e., a[i[0]] = e[f[0]].
│ │ │ │ +175 template
│ │ │ │ +176 void
│ │ │ │ +177 __valarray_copy(_Array<_Tp> __e, _Array __f,
│ │ │ │ +178 size_t __n,
│ │ │ │ +179 _Array<_Tp> __a, _Array __i)
│ │ │ │ +180 {
│ │ │ │ +181 size_t* __g (__f._M_data);
│ │ │ │ +182 size_t* __j (__i._M_data);
│ │ │ │ +183 for (size_t __k = 0; __k < __n; ++__k, ++__j, ++__g)
│ │ │ │ +184 __a._M_data[*__j] = __e._M_data[*__g];
│ │ │ │ +185 }
│ │ │ │ +186
│ │ │ │ +187 // Copy n consecutive elements of e into elements of a. Elements of
│ │ │ │ +188 // a are skipped if the corresponding element of m is false. m must
│ │ │ │ +189 // have at least n true elements and a must have at least as many
│ │ │ │ +190 // elements as the index of the nth true element of m. I.e. if m
│ │ │ │ +191 // has 5 false followed by 10 true elements and n == 10, a must have
│ │ │ │ +192 // at least 15 elements.
│ │ │ │ +193 template
│ │ │ │ +194 void
│ │ │ │ +195 __valarray_copy(const _Expr<_Dom, _Tp>& __e, size_t __n,
│ │ │ │ +196 _Array<_Tp> __a, _Array __m)
│ │ │ │ +197 {
│ │ │ │ +198 bool* __ok (__m._M_data);
│ │ │ │ +199 _Tp* __p (__a._M_data);
│ │ │ │ +200 for (size_t __i = 0; __i < __n; ++__i, ++__ok, ++__p)
│ │ │ │ +201 {
│ │ │ │ +202 while (! *__ok)
│ │ │ │ +203 {
│ │ │ │ +204 ++__ok;
│ │ │ │ +205 ++__p;
│ │ │ │ +206 }
│ │ │ │ +207 *__p = __e[__i];
│ │ │ │ +208 }
│ │ │ │ +209 }
│ │ │ │ +210
│ │ │ │ +211
│ │ │ │ +212 template
│ │ │ │ +213 void
│ │ │ │ +214 __valarray_copy_construct(const _Expr<_Dom, _Tp>& __e, size_t __n,
│ │ │ │ +215 _Array<_Tp> __a)
│ │ │ │ +216 {
│ │ │ │ +217 _Tp* __p (__a._M_data);
│ │ │ │ +218 for (size_t __i = 0; __i < __n; ++__i, ++__p)
│ │ │ │ +219 new (__p) _Tp(__e[__i]);
│ │ │ │ +220 }
│ │ │ │ +221
│ │ │ │ +222
│ │ │ │ +223 template
│ │ │ │ +224 void
│ │ │ │ +225 __valarray_copy_construct(_Array<_Tp> __a, _Array __m,
│ │ │ │ +226 _Array<_Tp> __b, size_t __n)
│ │ │ │ +227 {
│ │ │ │ +228 _Tp* __p (__a._M_data);
│ │ │ │ +229 bool* __ok (__m._M_data);
│ │ │ │ +230 for (_Tp* __q = __b._M_data; __q < __b._M_data+__n; ++__q, ++__ok, ++__p)
│ │ │ │ +231 {
│ │ │ │ +232 while (! *__ok)
│ │ │ │ +233 {
│ │ │ │ +234 ++__ok;
│ │ │ │ +235 ++__p;
│ │ │ │ +236 }
│ │ │ │ +237 new (__q) _Tp(*__p);
│ │ │ │ +238 }
│ │ │ │ +239 }
│ │ │ │ +240
│ │ │ │ +241_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ +242} // namespace
│ │ │ │ +243
│ │ │ │ +244#endif /* _VALARRAY_ARRAY_TCC */
│ │ │ │ +_s_t_d
│ │ │ │ +ISO C++ entities toplevel namespace is std.
│ │ │ │ * bbiittss
│ │ │ │ - * _c_x_x_a_b_i___f_o_r_c_e_d_._h
│ │ │ │ + * _v_a_l_a_r_r_a_y___a_r_r_a_y_._t_c_c
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00341.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: atomic_lockfree_defines.h File Reference
│ │ │ +libstdc++: unique_lock.h File Reference
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,49 +48,44 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
Go to the source code of this file.
│ │ │
│ │ │ +
│ │ │ +namespace std
│ │ │
│ │ │
│ │ │ -
This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <atomic>.
│ │ │ +
This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <mutex>.
│ │ │
│ │ │ -
Definition in file atomic_lockfree_defines.h .
│ │ │ +
Definition in file unique_lock.h .
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,21 +1,14 @@
│ │ │ │ libstdc++
│ │ │ │ -atomic_lockfree_defines.h File Reference
│ │ │ │ +unique_lock.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_.
│ │ │ │ -MMaaccrrooss
│ │ │ │ -#define _A_T_O_M_I_C___B_O_O_L___L_O_C_K___F_R_E_E
│ │ │ │ -#define _A_T_O_M_I_C___C_H_A_R_1_6___T___L_O_C_K___F_R_E_E
│ │ │ │ -#define _A_T_O_M_I_C___C_H_A_R_3_2___T___L_O_C_K___F_R_E_E
│ │ │ │ -#define _A_T_O_M_I_C___C_H_A_R___L_O_C_K___F_R_E_E
│ │ │ │ -#define _A_T_O_M_I_C___I_N_T___L_O_C_K___F_R_E_E
│ │ │ │ -#define _A_T_O_M_I_C___L_L_O_N_G___L_O_C_K___F_R_E_E
│ │ │ │ -#define _A_T_O_M_I_C___L_O_N_G___L_O_C_K___F_R_E_E
│ │ │ │ -#define _A_T_O_M_I_C___P_O_I_N_T_E_R___L_O_C_K___F_R_E_E
│ │ │ │ -#define _A_T_O_M_I_C___S_H_O_R_T___L_O_C_K___F_R_E_E
│ │ │ │ -#define _A_T_O_M_I_C___W_C_H_A_R___T___L_O_C_K___F_R_E_E
│ │ │ │ +CCllaasssseess
│ │ │ │ +class _s_t_d_:_:_u_n_i_q_u_e___l_o_c_k_<_ ___M_u_t_e_x_ _>
│ │ │ │ +NNaammeessppaacceess
│ │ │ │ +namespace _s_t_d
│ │ │ │ ********** 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 _a_t_o_m_i_c___l_o_c_k_f_r_e_e___d_e_f_i_n_e_s_._h.
│ │ │ │ +attempt to use it directly. Instead, include .
│ │ │ │ +Definition in file _u_n_i_q_u_e___l_o_c_k_._h.
│ │ │ │ * bbiittss
│ │ │ │ - * _a_t_o_m_i_c___l_o_c_k_f_r_e_e___d_e_f_i_n_e_s_._h
│ │ │ │ + * _u_n_i_q_u_e___l_o_c_k_._h
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00341_source.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: atomic_lockfree_defines.h Source File
│ │ │ +libstdc++: unique_lock.h Source File
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,18 +48,18 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
Go to the documentation of this file.
│ │ │ +
Go to the documentation of this file.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -75,61 +75,256 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │ -
30 #ifndef _GLIBCXX_ATOMIC_LOCK_FREE_H
│ │ │ -
31 #define _GLIBCXX_ATOMIC_LOCK_FREE_H 1
│ │ │ +
30 #ifndef _GLIBCXX_UNIQUE_LOCK_H
│ │ │ +
31 #define _GLIBCXX_UNIQUE_LOCK_H 1
│ │ │
│ │ │
33 #pragma GCC system_header
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
48 #if __cplusplus >= 201103L
│ │ │ -
49 #define ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE
│ │ │ -
50 #define ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE
│ │ │ -
51 #define ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE
│ │ │ -
52 #ifdef _GLIBCXX_USE_CHAR8_T
│ │ │ -
53 #define ATOMIC_CHAR8_T_LOCK_FREE __GCC_ATOMIC_CHAR8_T_LOCK_FREE
│ │ │ -
│ │ │ -
55 #define ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE
│ │ │ -
56 #define ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE
│ │ │ -
57 #define ATOMIC_SHORT_LOCK_FREE __GCC_ATOMIC_SHORT_LOCK_FREE
│ │ │ -
58 #define ATOMIC_INT_LOCK_FREE __GCC_ATOMIC_INT_LOCK_FREE
│ │ │ -
59 #define ATOMIC_LONG_LOCK_FREE __GCC_ATOMIC_LONG_LOCK_FREE
│ │ │ -
60 #define ATOMIC_LLONG_LOCK_FREE __GCC_ATOMIC_LLONG_LOCK_FREE
│ │ │ -
61 #define ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ +
│ │ │ +
35 #if __cplusplus < 201103L
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
43 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ +
│ │ │ +
45 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
56 template <
typename _Mutex>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
60 typedef _Mutex mutex_type;
│ │ │ +
│ │ │ +
62 unique_lock() noexcept
│ │ │ +
63 : _M_device(0), _M_owns(
false )
│ │ │ +
│ │ │
│ │ │ -
│ │ │ +
66 explicit unique_lock(mutex_type& __m)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
87 template <
typename _Clock,
typename _Duration>
│ │ │ +
88 unique_lock(mutex_type& __m,
│ │ │ +
│ │ │ +
│ │ │ +
91 _M_owns(_M_device->try_lock_until(__atime))
│ │ │ +
│ │ │ +
│ │ │ +
94 template <
typename _Rep,
typename _Period>
│ │ │ +
95 unique_lock(mutex_type& __m,
│ │ │ +
│ │ │ +
│ │ │ +
98 _M_owns(_M_device->try_lock_for(__rtime))
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
107 unique_lock(
const unique_lock&) =
delete ;
│ │ │ +
108 unique_lock& operator=(
const unique_lock&) =
delete ;
│ │ │ +
│ │ │ +
110 unique_lock(unique_lock&& __u) noexcept
│ │ │ +
111 : _M_device(__u._M_device), _M_owns(__u._M_owns)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
117 unique_lock& operator=(unique_lock&& __u)
noexcept
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
134 __throw_system_error(
int (errc::operation_not_permitted));
│ │ │ +
│ │ │ +
136 __throw_system_error(
int (errc::resource_deadlock_would_occur));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
148 __throw_system_error(
int (errc::operation_not_permitted));
│ │ │ +
│ │ │ +
150 __throw_system_error(
int (errc::resource_deadlock_would_occur));
│ │ │ +
│ │ │ +
│ │ │ +
153 _M_owns = _M_device->try_lock();
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
158 template <
typename _Clock,
typename _Duration>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
163 __throw_system_error(
int (errc::operation_not_permitted));
│ │ │ +
│ │ │ +
165 __throw_system_error(
int (errc::resource_deadlock_would_occur));
│ │ │ +
│ │ │ +
│ │ │ +
168 _M_owns = _M_device->try_lock_until(__atime);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
173 template <
typename _Rep,
typename _Period>
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
178 __throw_system_error(
int (errc::operation_not_permitted));
│ │ │ +
│ │ │ +
180 __throw_system_error(
int (errc::resource_deadlock_would_occur));
│ │ │ +
│ │ │ +
│ │ │ +
183 _M_owns = _M_device->try_lock_for(__rtime);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
192 __throw_system_error(
int (errc::operation_not_permitted));
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
201 swap(unique_lock& __u)
noexcept
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
210 mutex_type* __ret = _M_device;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
217 owns_lock()
const noexcept
│ │ │ +
│ │ │ +
│ │ │ +
220 explicit operator bool()
const noexcept
│ │ │ +
221 {
return owns_lock(); }
│ │ │ +
│ │ │ +
│ │ │ +
224 mutex()
const noexcept
│ │ │ +
225 {
return _M_device; }
│ │ │ +
│ │ │ +
│ │ │ +
228 mutex_type* _M_device;
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
234 template <
typename _Mutex>
│ │ │ +
│ │ │ +
│ │ │ +
236 swap (unique_lock<_Mutex>& __x, unique_lock<_Mutex>& __y)
noexcept
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
239 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
│ │ │ +
void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
│ │ │ +
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
│ │ │ +
ISO C++ entities toplevel namespace is std.
│ │ │ +
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.
│ │ │ +
void swap(unique_lock< _Mutex > &__x, unique_lock< _Mutex > &__y) noexcept
Swap overload for unique_lock objects.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,11 +1,11 @@
│ │ │ │ libstdc++
│ │ │ │ -atomic_lockfree_defines.h
│ │ │ │ +unique_lock.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// -*- C++ -*- header.
│ │ │ │ +1// std::unique_lock implementation -*- C++ -*-
│ │ │ │ 2
│ │ │ │ 3// Copyright (C) 2008-2021 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)
│ │ │ │ @@ -21,52 +21,266 @@
│ │ │ │ 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/atomic_lockfree_defines.h
│ │ │ │ +25/** @file bits/unique_lock.h
│ │ │ │ 26 * This is an internal header file, included by other library headers.
│ │ │ │ -27 * Do not attempt to use it directly. @headername{atomic}
│ │ │ │ +27 * Do not attempt to use it directly. @headername{mutex}
│ │ │ │ 28 */
│ │ │ │ 29
│ │ │ │ -30#ifndef _GLIBCXX_ATOMIC_LOCK_FREE_H
│ │ │ │ -31#define _GLIBCXX_ATOMIC_LOCK_FREE_H 1
│ │ │ │ +30#ifndef _GLIBCXX_UNIQUE_LOCK_H
│ │ │ │ +31#define _GLIBCXX_UNIQUE_LOCK_H 1
│ │ │ │ 32
│ │ │ │ 33#pragma GCC system_header
│ │ │ │ 34
│ │ │ │ -35/**
│ │ │ │ -36 * @addtogroup atomics
│ │ │ │ -37 * @{
│ │ │ │ -38 */
│ │ │ │ -39
│ │ │ │ -40/**
│ │ │ │ -41 * Lock-free property.
│ │ │ │ -42 *
│ │ │ │ -43 * 0 indicates that the types are never lock-free.
│ │ │ │ -44 * 1 indicates that the types are sometimes lock-free.
│ │ │ │ -45 * 2 indicates that the types are always lock-free.
│ │ │ │ -46 */
│ │ │ │ -47
│ │ │ │ -48#if __cplusplus >= 201103L
│ │ │ │ -_4_9#define ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE
│ │ │ │ -50#define ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE
│ │ │ │ -51#define ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE
│ │ │ │ -52#ifdef _GLIBCXX_USE_CHAR8_T
│ │ │ │ -53#define ATOMIC_CHAR8_T_LOCK_FREE __GCC_ATOMIC_CHAR8_T_LOCK_FREE
│ │ │ │ -54#endif
│ │ │ │ -55#define ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE
│ │ │ │ -56#define ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE
│ │ │ │ -57#define ATOMIC_SHORT_LOCK_FREE __GCC_ATOMIC_SHORT_LOCK_FREE
│ │ │ │ -58#define ATOMIC_INT_LOCK_FREE __GCC_ATOMIC_INT_LOCK_FREE
│ │ │ │ -59#define ATOMIC_LONG_LOCK_FREE __GCC_ATOMIC_LONG_LOCK_FREE
│ │ │ │ -60#define ATOMIC_LLONG_LOCK_FREE __GCC_ATOMIC_LLONG_LOCK_FREE
│ │ │ │ -61#define ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE
│ │ │ │ -62#endif
│ │ │ │ -63
│ │ │ │ -64/// @} group atomics
│ │ │ │ +35#if __cplusplus < 201103L
│ │ │ │ +36# include <_b_i_t_s_/_c_+_+_0_x___w_a_r_n_i_n_g_._h>
│ │ │ │ +37#else
│ │ │ │ +38
│ │ │ │ +39#include <_c_h_r_o_n_o>
│ │ │ │ +40#include <_b_i_t_s_/_m_o_v_e_._h> // for std::swap
│ │ │ │ +41#include <_b_i_t_s_/_s_t_d___m_u_t_e_x_._h> // for std::defer_lock_t
│ │ │ │ +42
│ │ │ │ +43namespace _s_t_d _GLIBCXX_VISIBILITY(default)
│ │ │ │ +44{
│ │ │ │ +45_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ +46
│ │ │ │ +47 /** @brief A movable scoped lock type.
│ │ │ │ +48 *
│ │ │ │ +49 * A unique_lock controls mutex ownership within a scope. Ownership of the
│ │ │ │ +50 * mutex can be delayed until after construction and can be transferred
│ │ │ │ +51 * to another unique_lock by move construction or move assignment. If a
│ │ │ │ +52 * mutex lock is owned when the destructor runs ownership will be released.
│ │ │ │ +53 *
│ │ │ │ +54 * @ingroup mutexes
│ │ │ │ +55 */
│ │ │ │ +56 template
│ │ │ │ +_5_7 class unique_lock
│ │ │ │ +58 {
│ │ │ │ +59 public:
│ │ │ │ +60 typedef _Mutex mutex_type;
│ │ │ │ +61
│ │ │ │ +62 unique_lock() noexcept
│ │ │ │ +63 : _M_device(0), _M_owns(false)
│ │ │ │ +64 { }
│ │ │ │ 65
│ │ │ │ -66#endif
│ │ │ │ +66 explicit unique_lock(mutex_type& __m)
│ │ │ │ +67 : _M_device(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(__m)), _M_owns(false)
│ │ │ │ +68 {
│ │ │ │ +69 lock();
│ │ │ │ +70 _M_owns = true;
│ │ │ │ +71 }
│ │ │ │ +72
│ │ │ │ +73 unique_lock(mutex_type& __m, _d_e_f_e_r___l_o_c_k___t) noexcept
│ │ │ │ +74 : _M_device(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(__m)), _M_owns(false)
│ │ │ │ +75 { }
│ │ │ │ +76
│ │ │ │ +77 unique_lock(mutex_type& __m, _t_r_y___t_o___l_o_c_k___t)
│ │ │ │ +78 : _M_device(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(__m)), _M_owns(_M_device->try_lock())
│ │ │ │ +79 { }
│ │ │ │ +80
│ │ │ │ +81 unique_lock(mutex_type& __m, _a_d_o_p_t___l_o_c_k___t) noexcept
│ │ │ │ +82 : _M_device(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(__m)), _M_owns(true)
│ │ │ │ +83 {
│ │ │ │ +84 // XXX calling thread owns mutex
│ │ │ │ +85 }
│ │ │ │ +86
│ │ │ │ +87 template
│ │ │ │ +88 unique_lock(mutex_type& __m,
│ │ │ │ +89 const _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_>& __atime)
│ │ │ │ +90 : _M_device(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(__m)),
│ │ │ │ +91 _M_owns(_M_device->try_lock_until(__atime))
│ │ │ │ +92 { }
│ │ │ │ +93
│ │ │ │ +94 template
│ │ │ │ +95 unique_lock(mutex_type& __m,
│ │ │ │ +96 const _c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n_<___R_e_p_,_ ___P_e_r_i_o_d_>& __rtime)
│ │ │ │ +97 : _M_device(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(__m)),
│ │ │ │ +98 _M_owns(_M_device->try_lock_for(__rtime))
│ │ │ │ +99 { }
│ │ │ │ +100
│ │ │ │ +101 ~unique_lock()
│ │ │ │ +102 {
│ │ │ │ +103 if (_M_owns)
│ │ │ │ +104 unlock();
│ │ │ │ +105 }
│ │ │ │ +106
│ │ │ │ +107 unique_lock(const unique_lock&) = delete;
│ │ │ │ +108 unique_lock& operator=(const unique_lock&) = delete;
│ │ │ │ +109
│ │ │ │ +110 unique_lock(unique_lock&& __u) noexcept
│ │ │ │ +111 : _M_device(__u._M_device), _M_owns(__u._M_owns)
│ │ │ │ +112 {
│ │ │ │ +113 __u._M_device = 0;
│ │ │ │ +114 __u._M_owns = false;
│ │ │ │ +115 }
│ │ │ │ +116
│ │ │ │ +117 unique_lock& operator=(unique_lock&& __u) noexcept
│ │ │ │ +118 {
│ │ │ │ +119 if(_M_owns)
│ │ │ │ +120 unlock();
│ │ │ │ +121
│ │ │ │ +122 unique_lock(_s_t_d_:_:_m_o_v_e(__u)).swap(*this);
│ │ │ │ +123
│ │ │ │ +124 __u._M_device = 0;
│ │ │ │ +125 __u._M_owns = false;
│ │ │ │ +126
│ │ │ │ +127 return *this;
│ │ │ │ +128 }
│ │ │ │ +129
│ │ │ │ +130 void
│ │ │ │ +131 lock()
│ │ │ │ +132 {
│ │ │ │ +133 if (!_M_device)
│ │ │ │ +134 __throw_system_error(int(errc::operation_not_permitted));
│ │ │ │ +135 else if (_M_owns)
│ │ │ │ +136 __throw_system_error(int(errc::resource_deadlock_would_occur));
│ │ │ │ +137 else
│ │ │ │ +138 {
│ │ │ │ +139 _M_device->lock();
│ │ │ │ +140 _M_owns = true;
│ │ │ │ +141 }
│ │ │ │ +142 }
│ │ │ │ +143
│ │ │ │ +144 bool
│ │ │ │ +145 try_lock()
│ │ │ │ +146 {
│ │ │ │ +147 if (!_M_device)
│ │ │ │ +148 __throw_system_error(int(errc::operation_not_permitted));
│ │ │ │ +149 else if (_M_owns)
│ │ │ │ +150 __throw_system_error(int(errc::resource_deadlock_would_occur));
│ │ │ │ +151 else
│ │ │ │ +152 {
│ │ │ │ +153 _M_owns = _M_device->try_lock();
│ │ │ │ +154 return _M_owns;
│ │ │ │ +155 }
│ │ │ │ +156 }
│ │ │ │ +157
│ │ │ │ +158 template
│ │ │ │ +159 bool
│ │ │ │ +160 try_lock_until(const _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_>& __atime)
│ │ │ │ +161 {
│ │ │ │ +162 if (!_M_device)
│ │ │ │ +163 __throw_system_error(int(errc::operation_not_permitted));
│ │ │ │ +164 else if (_M_owns)
│ │ │ │ +165 __throw_system_error(int(errc::resource_deadlock_would_occur));
│ │ │ │ +166 else
│ │ │ │ +167 {
│ │ │ │ +168 _M_owns = _M_device->try_lock_until(__atime);
│ │ │ │ +169 return _M_owns;
│ │ │ │ +170 }
│ │ │ │ +171 }
│ │ │ │ +172
│ │ │ │ +173 template
│ │ │ │ +174 bool
│ │ │ │ +175 try_lock_for(const _c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n_<___R_e_p_,_ ___P_e_r_i_o_d_>& __rtime)
│ │ │ │ +176 {
│ │ │ │ +177 if (!_M_device)
│ │ │ │ +178 __throw_system_error(int(errc::operation_not_permitted));
│ │ │ │ +179 else if (_M_owns)
│ │ │ │ +180 __throw_system_error(int(errc::resource_deadlock_would_occur));
│ │ │ │ +181 else
│ │ │ │ +182 {
│ │ │ │ +183 _M_owns = _M_device->try_lock_for(__rtime);
│ │ │ │ +184 return _M_owns;
│ │ │ │ +185 }
│ │ │ │ +186 }
│ │ │ │ +187
│ │ │ │ +188 void
│ │ │ │ +189 unlock()
│ │ │ │ +190 {
│ │ │ │ +191 if (!_M_owns)
│ │ │ │ +192 __throw_system_error(int(errc::operation_not_permitted));
│ │ │ │ +193 else if (_M_device)
│ │ │ │ +194 {
│ │ │ │ +195 _M_device->unlock();
│ │ │ │ +196 _M_owns = false;
│ │ │ │ +197 }
│ │ │ │ +198 }
│ │ │ │ +199
│ │ │ │ +200 void
│ │ │ │ +201 swap(unique_lock& __u) noexcept
│ │ │ │ +202 {
│ │ │ │ +203 _s_t_d_:_:_s_w_a_p(_M_device, __u._M_device);
│ │ │ │ +204 _s_t_d_:_:_s_w_a_p(_M_owns, __u._M_owns);
│ │ │ │ +205 }
│ │ │ │ +206
│ │ │ │ +207 mutex_type*
│ │ │ │ +208 release() noexcept
│ │ │ │ +209 {
│ │ │ │ +210 mutex_type* __ret = _M_device;
│ │ │ │ +211 _M_device = 0;
│ │ │ │ +212 _M_owns = false;
│ │ │ │ +213 return __ret;
│ │ │ │ +214 }
│ │ │ │ +215
│ │ │ │ +216 bool
│ │ │ │ +217 owns_lock() const noexcept
│ │ │ │ +218 { return _M_owns; }
│ │ │ │ +219
│ │ │ │ +220 explicit operator bool() const noexcept
│ │ │ │ +221 { return owns_lock(); }
│ │ │ │ +222
│ │ │ │ +223 mutex_type*
│ │ │ │ +224 mutex() const noexcept
│ │ │ │ +225 { return _M_device; }
│ │ │ │ +226
│ │ │ │ +227 private:
│ │ │ │ +228 mutex_type* _M_device;
│ │ │ │ +229 bool _M_owns;
│ │ │ │ +230 };
│ │ │ │ +231
│ │ │ │ +232 /// Swap overload for unique_lock objects.
│ │ │ │ +233 /// @relates unique_lock
│ │ │ │ +234 template
│ │ │ │ +235 inline void
│ │ │ │ +_2_3_6 _s_w_a_p(unique_lock<_Mutex>& __x, unique_lock<_Mutex>& __y) noexcept
│ │ │ │ +237 { __x.swap(__y); }
│ │ │ │ +238
│ │ │ │ +239_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ +240} // namespace
│ │ │ │ +241
│ │ │ │ +242#endif // C++11
│ │ │ │ +243#endif // _GLIBCXX_UNIQUE_LOCK_H
│ │ │ │ +_c_h_r_o_n_o
│ │ │ │ +_s_t_d___m_u_t_e_x_._h
│ │ │ │ +_m_o_v_e_._h
│ │ │ │ +_c_+_+_0_x___w_a_r_n_i_n_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_0_4
│ │ │ │ +_s_t_d_:_:_s_w_a_p
│ │ │ │ +void swap(any &__x, any &__y) noexcept
│ │ │ │ +Exchange the states of two any objects.
│ │ │ │ +DDeeffiinniittiioonn _a_n_y_:_4_2_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.
│ │ │ │ +DDeeffiinniittiioonn _m_o_v_e_._h_:_4_9
│ │ │ │ +_s_t_d
│ │ │ │ +ISO C++ entities toplevel namespace is std.
│ │ │ │ +_s_t_d_:_:_c_h_r_o_n_o_:_:_d_u_r_a_t_i_o_n
│ │ │ │ +chrono::duration represents a distance between two points in time
│ │ │ │ +DDeeffiinniittiioonn _c_h_r_o_n_o_:_4_6_0
│ │ │ │ +_s_t_d_:_:_c_h_r_o_n_o_:_:_t_i_m_e___p_o_i_n_t
│ │ │ │ +chrono::time_point represents a point in time as measured by a clock
│ │ │ │ +DDeeffiinniittiioonn _c_h_r_o_n_o_:_8_7_3
│ │ │ │ +_s_t_d_:_:_d_e_f_e_r___l_o_c_k___t
│ │ │ │ +Do not acquire ownership of the mutex.
│ │ │ │ +DDeeffiinniittiioonn _s_t_d___m_u_t_e_x_._h_:_1_9_9
│ │ │ │ +_s_t_d_:_:_t_r_y___t_o___l_o_c_k___t
│ │ │ │ +Try to acquire ownership of the mutex without blocking.
│ │ │ │ +DDeeffiinniittiioonn _s_t_d___m_u_t_e_x_._h_:_2_0_2
│ │ │ │ +_s_t_d_:_:_a_d_o_p_t___l_o_c_k___t
│ │ │ │ +Assume the calling thread has already obtained mutex ownership and manage it.
│ │ │ │ +DDeeffiinniittiioonn _s_t_d___m_u_t_e_x_._h_:_2_0_6
│ │ │ │ +_s_t_d_:_:_u_n_i_q_u_e___l_o_c_k_:_:_s_w_a_p
│ │ │ │ +void swap(unique_lock< _Mutex > &__x, unique_lock< _Mutex > &__y) noexcept
│ │ │ │ +Swap overload for unique_lock objects.
│ │ │ │ +DDeeffiinniittiioonn _u_n_i_q_u_e___l_o_c_k_._h_:_2_3_6
│ │ │ │ * bbiittss
│ │ │ │ - * _a_t_o_m_i_c___l_o_c_k_f_r_e_e___d_e_f_i_n_e_s_._h
│ │ │ │ + * _u_n_i_q_u_e___l_o_c_k_._h
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00344.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: vector.tcc File Reference
│ │ │ +libstdc++: specfun.h File Reference
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,46 +48,167 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
Go to the source code of this file.
│ │ │
│ │ │ +
│ │ │ +template<typename _Tp>
│ │ │ +__gnu_cxx::__promote< _Tp >::__type __gnu_cxx::airy_ai (_Tp __x)
│ │ │ +float __gnu_cxx::airy_aif (float __x)
│ │ │ +long double __gnu_cxx::airy_ail (long double __x)
│ │ │ +template<typename _Tp>
│ │ │ +__gnu_cxx::__promote< _Tp >::__type __gnu_cxx::airy_bi (_Tp __x)
│ │ │ +float __gnu_cxx::airy_bif (float __x)
│ │ │ +long double __gnu_cxx::airy_bil (long double __x)
│ │ │ +template<typename _Tp>
│ │ │ +__gnu_cxx::__promote< _Tp >::__type std::assoc_laguerre (unsigned int __n, unsigned int __m, _Tp __x)
│ │ │ +float std::assoc_laguerref (unsigned int __n, unsigned int __m, float __x)
│ │ │ +long double std::assoc_laguerrel (unsigned int __n, unsigned int __m, long double __x)
│ │ │ +template<typename _Tp>
│ │ │ +__gnu_cxx::__promote< _Tp >::__type std::assoc_legendre (unsigned int __l, unsigned int __m, _Tp __x)
│ │ │ +float std::assoc_legendref (unsigned int __l, unsigned int __m, float __x)
│ │ │ +long double std::assoc_legendrel (unsigned int __l, unsigned int __m, long double __x)
│ │ │ +template<typename _Tpa, typename _Tpb>
│ │ │ +__gnu_cxx::__promote_2< _Tpa, _Tpb >::__type std::beta (_Tpa __a, _Tpb __b)
│ │ │ +float std::betaf (float __a, float __b)
│ │ │ +long double std::betal (long double __a, long double __b)
│ │ │ +template<typename _Tp>
│ │ │ +__gnu_cxx::__promote< _Tp >::__type std::comp_ellint_1 (_Tp __k)
│ │ │ +float std::comp_ellint_1f (float __k)
│ │ │ +long double std::comp_ellint_1l (long double __k)
│ │ │ +template<typename _Tp>
│ │ │ +__gnu_cxx::__promote< _Tp >::__type std::comp_ellint_2 (_Tp __k)
│ │ │ +float std::comp_ellint_2f (float __k)
│ │ │ +long double std::comp_ellint_2l (long double __k)
│ │ │ +template<typename _Tp, typename _Tpn>
│ │ │ +__gnu_cxx::__promote_2< _Tp, _Tpn >::__type std::comp_ellint_3 (_Tp __k, _Tpn __nu)
│ │ │ +float std::comp_ellint_3f (float __k, float __nu)
│ │ │ +long double std::comp_ellint_3l (long double __k, long double __nu)
│ │ │ +template<typename _Tpa, typename _Tpc, typename _Tp>
│ │ │ +__gnu_cxx::__promote_3< _Tpa, _Tpc, _Tp >::__type __gnu_cxx::conf_hyperg (_Tpa __a, _Tpc __c, _Tp __x)
│ │ │ +float __gnu_cxx::conf_hypergf (float __a, float __c, float __x)
│ │ │ +long double __gnu_cxx::conf_hypergl (long double __a, long double __c, long double __x)
│ │ │ +template<typename _Tpnu, typename _Tp>
│ │ │ +__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::cyl_bessel_i (_Tpnu __nu, _Tp __x)
│ │ │ +float std::cyl_bessel_if (float __nu, float __x)
│ │ │ +long double std::cyl_bessel_il (long double __nu, long double __x)
│ │ │ +template<typename _Tpnu, typename _Tp>
│ │ │ +__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::cyl_bessel_j (_Tpnu __nu, _Tp __x)
│ │ │ +float std::cyl_bessel_jf (float __nu, float __x)
│ │ │ +long double std::cyl_bessel_jl (long double __nu, long double __x)
│ │ │ +template<typename _Tpnu, typename _Tp>
│ │ │ +__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::cyl_bessel_k (_Tpnu __nu, _Tp __x)
│ │ │ +float std::cyl_bessel_kf (float __nu, float __x)
│ │ │ +long double std::cyl_bessel_kl (long double __nu, long double __x)
│ │ │ +template<typename _Tpnu, typename _Tp>
│ │ │ +__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type std::cyl_neumann (_Tpnu __nu, _Tp __x)
│ │ │ +float std::cyl_neumannf (float __nu, float __x)
│ │ │ +long double std::cyl_neumannl (long double __nu, long double __x)
│ │ │ +template<typename _Tp, typename _Tpp>
│ │ │ +__gnu_cxx::__promote_2< _Tp, _Tpp >::__type std::ellint_1 (_Tp __k, _Tpp __phi)
│ │ │ +float std::ellint_1f (float __k, float __phi)
│ │ │ +long double std::ellint_1l (long double __k, long double __phi)
│ │ │ +template<typename _Tp, typename _Tpp>
│ │ │ +__gnu_cxx::__promote_2< _Tp, _Tpp >::__type std::ellint_2 (_Tp __k, _Tpp __phi)
│ │ │ +float std::ellint_2f (float __k, float __phi)
│ │ │ +long double std::ellint_2l (long double __k, long double __phi)
│ │ │ +template<typename _Tp, typename _Tpn, typename _Tpp>
│ │ │ +__gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp >::__type std::ellint_3 (_Tp __k, _Tpn __nu, _Tpp __phi)
│ │ │ +float std::ellint_3f (float __k, float __nu, float __phi)
│ │ │ +long double std::ellint_3l (long double __k, long double __nu, long double __phi)
│ │ │ +template<typename _Tp>
│ │ │ +__gnu_cxx::__promote< _Tp >::__type std::expint (_Tp __x)
│ │ │ +float std::expintf (float __x)
│ │ │ +long double std::expintl (long double __x)
│ │ │ +template<typename _Tp>
│ │ │ +__gnu_cxx::__promote< _Tp >::__type std::hermite (unsigned int __n, _Tp __x)
│ │ │ +float std::hermitef (unsigned int __n, float __x)
│ │ │ +long double std::hermitel (unsigned int __n, long double __x)
│ │ │ +template<typename _Tpa, typename _Tpb, typename _Tpc, typename _Tp>
│ │ │ +__gnu_cxx::__promote_4< _Tpa, _Tpb, _Tpc, _Tp >::__type __gnu_cxx::hyperg (_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x)
│ │ │ +float __gnu_cxx::hypergf (float __a, float __b, float __c, float __x)
│ │ │ +long double __gnu_cxx::hypergl (long double __a, long double __b, long double __c, long double __x)
│ │ │ +template<typename _Tp>
│ │ │ +__gnu_cxx::__promote< _Tp >::__type std::laguerre (unsigned int __n, _Tp __x)
│ │ │ +float std::laguerref (unsigned int __n, float __x)
│ │ │ +long double std::laguerrel (unsigned int __n, long double __x)
│ │ │ +template<typename _Tp>
│ │ │ +__gnu_cxx::__promote< _Tp >::__type std::legendre (unsigned int __l, _Tp __x)
│ │ │ +float std::legendref (unsigned int __l, float __x)
│ │ │ +long double std::legendrel (unsigned int __l, long double __x)
│ │ │ +template<typename _Tp>
│ │ │ +__gnu_cxx::__promote< _Tp >::__type std::riemann_zeta (_Tp __s)
│ │ │ +float std::riemann_zetaf (float __s)
│ │ │ +long double std::riemann_zetal (long double __s)
│ │ │ +template<typename _Tp>
│ │ │ +__gnu_cxx::__promote< _Tp >::__type std::sph_bessel (unsigned int __n, _Tp __x)
│ │ │ +float std::sph_besself (unsigned int __n, float __x)
│ │ │ +long double std::sph_bessell (unsigned int __n, long double __x)
│ │ │ +template<typename _Tp>
│ │ │ +__gnu_cxx::__promote< _Tp >::__type std::sph_legendre (unsigned int __l, unsigned int __m, _Tp __theta)
│ │ │ +float std::sph_legendref (unsigned int __l, unsigned int __m, float __theta)
│ │ │ +long double std::sph_legendrel (unsigned int __l, unsigned int __m, long double __theta)
│ │ │ +template<typename _Tp>
│ │ │ +__gnu_cxx::__promote< _Tp >::__type std::sph_neumann (unsigned int __n, _Tp __x)
│ │ │ +float std::sph_neumannf (unsigned int __n, float __x)
│ │ │ +long double std::sph_neumannl (unsigned int __n, long double __x)
│ │ │
│ │ │
│ │ │ -
This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <vector>.
│ │ │ +
This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <cmath>.
│ │ │
│ │ │ -
Definition in file vector.tcc .
│ │ │ +
Definition in file specfun.h .
│ │ │
│ │ │ -
│ │ │ -
◆ _VECTOR_TCC
│ │ │ +
│ │ │ +
◆ __cpp_lib_math_special_functions
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ + #define __cpp_lib_math_special_functions
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
Definition at line 39 of file specfun.h .
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
◆ __STDCPP_MATH_SPEC_FUNCS__
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ - #define _VECTOR_TCC
│ │ │ + #define __STDCPP_MATH_SPEC_FUNCS__
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -96,13 +217,13 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,18 +1,179 @@
│ │ │ │ libstdc++
│ │ │ │ -vector.tcc File Reference
│ │ │ │ +specfun.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_.
│ │ │ │ NNaammeessppaacceess
│ │ │ │ +namespace _____g_n_u___c_x_x
│ │ │ │ namespace _s_t_d
│ │ │ │ MMaaccrrooss
│ │ │ │ -#define ___V_E_C_T_O_R___T_C_C
│ │ │ │ +#define _____c_p_p___l_i_b___m_a_t_h___s_p_e_c_i_a_l___f_u_n_c_t_i_o_n_s
│ │ │ │ +#define _____S_T_D_C_P_P___M_A_T_H___S_P_E_C___F_U_N_C_S____
│ │ │ │ +FFuunnccttiioonnss
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote< _Tp >::__type _____g_n_u___c_x_x_:_:_a_i_r_y___a_i (_Tp __x)
│ │ │ │ + float _____g_n_u___c_x_x_:_:_a_i_r_y___a_i_f (float __x)
│ │ │ │ + long double _____g_n_u___c_x_x_:_:_a_i_r_y___a_i_l (long double __x)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote< _Tp >::__type _____g_n_u___c_x_x_:_:_a_i_r_y___b_i (_Tp __x)
│ │ │ │ + float _____g_n_u___c_x_x_:_:_a_i_r_y___b_i_f (float __x)
│ │ │ │ + long double _____g_n_u___c_x_x_:_:_a_i_r_y___b_i_l (long double __x)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote< _Tp >::__type _s_t_d_:_:_a_s_s_o_c___l_a_g_u_e_r_r_e (unsigned int __n,
│ │ │ │ + unsigned int __m, _Tp __x)
│ │ │ │ + float _s_t_d_:_:_a_s_s_o_c___l_a_g_u_e_r_r_e_f (unsigned int __n,
│ │ │ │ + unsigned int __m, float __x)
│ │ │ │ + long double _s_t_d_:_:_a_s_s_o_c___l_a_g_u_e_r_r_e_l (unsigned int __n,
│ │ │ │ + unsigned int __m, long double __x)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote< _Tp >::__type _s_t_d_:_:_a_s_s_o_c___l_e_g_e_n_d_r_e (unsigned int __l,
│ │ │ │ + unsigned int __m, _Tp __x)
│ │ │ │ + float _s_t_d_:_:_a_s_s_o_c___l_e_g_e_n_d_r_e_f (unsigned int __l,
│ │ │ │ + unsigned int __m, float __x)
│ │ │ │ + long double _s_t_d_:_:_a_s_s_o_c___l_e_g_e_n_d_r_e_l (unsigned int __l,
│ │ │ │ + unsigned int __m, long double __x)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote_2< _Tpa, _Tpb >::
│ │ │ │ + __type _s_t_d_:_:_b_e_t_a (_Tpa __a, _Tpb __b)
│ │ │ │ + float _s_t_d_:_:_b_e_t_a_f (float __a, float __b)
│ │ │ │ + long double _s_t_d_:_:_b_e_t_a_l (long double __a, long
│ │ │ │ + double __b)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote< _Tp >::__type _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___1 (_Tp __k)
│ │ │ │ + float _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___1_f (float __k)
│ │ │ │ + long double _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___1_l (long double __k)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote< _Tp >::__type _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___2 (_Tp __k)
│ │ │ │ + float _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___2_f (float __k)
│ │ │ │ + long double _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___2_l (long double __k)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote_2< _Tp, _Tpn >::
│ │ │ │ + __type _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___3 (_Tp __k, _Tpn __nu)
│ │ │ │ + float _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___3_f (float __k, float
│ │ │ │ + __nu)
│ │ │ │ + long double _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___3_l (long double __k,
│ │ │ │ + long double __nu)
│ │ │ │ +template
│ │ │ │ +__gnu_cxx::__promote_3< _Tpa, _Tpc, _Tp _____g_n_u___c_x_x_:_:_c_o_n_f___h_y_p_e_r_g (_Tpa __a, _Tpc
│ │ │ │ + >::__type __c, _Tp __x)
│ │ │ │ + float _____g_n_u___c_x_x_:_:_c_o_n_f___h_y_p_e_r_g_f (float __a,
│ │ │ │ + float __c, float __x)
│ │ │ │ + long double _____g_n_u___c_x_x_:_:_c_o_n_f___h_y_p_e_r_g_l (long double
│ │ │ │ + __a, long double __c, long double __x)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote_2< _Tpnu, _Tp >::
│ │ │ │ + __type _s_t_d_:_:_c_y_l___b_e_s_s_e_l___i (_Tpnu __nu, _Tp __x)
│ │ │ │ + float _s_t_d_:_:_c_y_l___b_e_s_s_e_l___i_f (float __nu, float
│ │ │ │ + __x)
│ │ │ │ + long double _s_t_d_:_:_c_y_l___b_e_s_s_e_l___i_l (long double __nu,
│ │ │ │ + long double __x)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote_2< _Tpnu, _Tp >::
│ │ │ │ + __type _s_t_d_:_:_c_y_l___b_e_s_s_e_l___j (_Tpnu __nu, _Tp __x)
│ │ │ │ + float _s_t_d_:_:_c_y_l___b_e_s_s_e_l___j_f (float __nu, float
│ │ │ │ + __x)
│ │ │ │ + long double _s_t_d_:_:_c_y_l___b_e_s_s_e_l___j_l (long double __nu,
│ │ │ │ + long double __x)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote_2< _Tpnu, _Tp >::
│ │ │ │ + __type _s_t_d_:_:_c_y_l___b_e_s_s_e_l___k (_Tpnu __nu, _Tp __x)
│ │ │ │ + float _s_t_d_:_:_c_y_l___b_e_s_s_e_l___k_f (float __nu, float
│ │ │ │ + __x)
│ │ │ │ + long double _s_t_d_:_:_c_y_l___b_e_s_s_e_l___k_l (long double __nu,
│ │ │ │ + long double __x)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote_2< _Tpnu, _Tp >::
│ │ │ │ + __type _s_t_d_:_:_c_y_l___n_e_u_m_a_n_n (_Tpnu __nu, _Tp __x)
│ │ │ │ + float _s_t_d_:_:_c_y_l___n_e_u_m_a_n_n_f (float __nu, float
│ │ │ │ + __x)
│ │ │ │ + long double _s_t_d_:_:_c_y_l___n_e_u_m_a_n_n_l (long double __nu,
│ │ │ │ + long double __x)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote_2< _Tp, _Tpp >::
│ │ │ │ + __type _s_t_d_:_:_e_l_l_i_n_t___1 (_Tp __k, _Tpp __phi)
│ │ │ │ + float _s_t_d_:_:_e_l_l_i_n_t___1_f (float __k, float __phi)
│ │ │ │ + long double _s_t_d_:_:_e_l_l_i_n_t___1_l (long double __k, long
│ │ │ │ + double __phi)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote_2< _Tp, _Tpp >::
│ │ │ │ + __type _s_t_d_:_:_e_l_l_i_n_t___2 (_Tp __k, _Tpp __phi)
│ │ │ │ + float _s_t_d_:_:_e_l_l_i_n_t___2_f (float __k, float __phi)
│ │ │ │ + long double _s_t_d_:_:_e_l_l_i_n_t___2_l (long double __k, long
│ │ │ │ + double __phi)
│ │ │ │ +template
│ │ │ │ +__gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp _s_t_d_:_:_e_l_l_i_n_t___3 (_Tp __k, _Tpn __nu, _Tpp
│ │ │ │ + >::__type __phi)
│ │ │ │ + float _s_t_d_:_:_e_l_l_i_n_t___3_f (float __k, float __nu,
│ │ │ │ + float __phi)
│ │ │ │ + long double _s_t_d_:_:_e_l_l_i_n_t___3_l (long double __k, long
│ │ │ │ + double __nu, long double __phi)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote< _Tp >::__type _s_t_d_:_:_e_x_p_i_n_t (_Tp __x)
│ │ │ │ + float _s_t_d_:_:_e_x_p_i_n_t_f (float __x)
│ │ │ │ + long double _s_t_d_:_:_e_x_p_i_n_t_l (long double __x)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote< _Tp >::__type _s_t_d_:_:_h_e_r_m_i_t_e (unsigned int __n, _Tp
│ │ │ │ + __x)
│ │ │ │ + float _s_t_d_:_:_h_e_r_m_i_t_e_f (unsigned int __n, float
│ │ │ │ + __x)
│ │ │ │ + long double _s_t_d_:_:_h_e_r_m_i_t_e_l (unsigned int __n, long
│ │ │ │ + double __x)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote_4< _Tpa, _Tpb, _____g_n_u___c_x_x_:_:_h_y_p_e_r_g (_Tpa __a, _Tpb __b,
│ │ │ │ + _Tpc, _Tp >::__type _Tpc __c, _Tp __x)
│ │ │ │ + float _____g_n_u___c_x_x_:_:_h_y_p_e_r_g_f (float __a, float
│ │ │ │ + __b, float __c, float __x)
│ │ │ │ + long double _____g_n_u___c_x_x_:_:_h_y_p_e_r_g_l (long double __a,
│ │ │ │ + long double __b, long double __c, long
│ │ │ │ + double __x)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote< _Tp >::__type _s_t_d_:_:_l_a_g_u_e_r_r_e (unsigned int __n, _Tp
│ │ │ │ + __x)
│ │ │ │ + float _s_t_d_:_:_l_a_g_u_e_r_r_e_f (unsigned int __n, float
│ │ │ │ + __x)
│ │ │ │ + long double _s_t_d_:_:_l_a_g_u_e_r_r_e_l (unsigned int __n, long
│ │ │ │ + double __x)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote< _Tp >::__type _s_t_d_:_:_l_e_g_e_n_d_r_e (unsigned int __l, _Tp
│ │ │ │ + __x)
│ │ │ │ + float _s_t_d_:_:_l_e_g_e_n_d_r_e_f (unsigned int __l, float
│ │ │ │ + __x)
│ │ │ │ + long double _s_t_d_:_:_l_e_g_e_n_d_r_e_l (unsigned int __l, long
│ │ │ │ + double __x)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote< _Tp >::__type _s_t_d_:_:_r_i_e_m_a_n_n___z_e_t_a (_Tp __s)
│ │ │ │ + float _s_t_d_:_:_r_i_e_m_a_n_n___z_e_t_a_f (float __s)
│ │ │ │ + long double _s_t_d_:_:_r_i_e_m_a_n_n___z_e_t_a_l (long double __s)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote< _Tp >::__type _s_t_d_:_:_s_p_h___b_e_s_s_e_l (unsigned int __n, _Tp
│ │ │ │ + __x)
│ │ │ │ + float _s_t_d_:_:_s_p_h___b_e_s_s_e_l_f (unsigned int __n,
│ │ │ │ + float __x)
│ │ │ │ + long double _s_t_d_:_:_s_p_h___b_e_s_s_e_l_l (unsigned int __n,
│ │ │ │ + long double __x)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote< _Tp >::__type _s_t_d_:_:_s_p_h___l_e_g_e_n_d_r_e (unsigned int __l,
│ │ │ │ + unsigned int __m, _Tp __theta)
│ │ │ │ + float _s_t_d_:_:_s_p_h___l_e_g_e_n_d_r_e_f (unsigned int __l,
│ │ │ │ + unsigned int __m, float __theta)
│ │ │ │ + long double _s_t_d_:_:_s_p_h___l_e_g_e_n_d_r_e_l (unsigned int __l,
│ │ │ │ + unsigned int __m, long double __theta)
│ │ │ │ +template
│ │ │ │ + __gnu_cxx::__promote< _Tp >::__type _s_t_d_:_:_s_p_h___n_e_u_m_a_n_n (unsigned int __n, _Tp
│ │ │ │ + __x)
│ │ │ │ + float _s_t_d_:_:_s_p_h___n_e_u_m_a_n_n_f (unsigned int __n,
│ │ │ │ + float __x)
│ │ │ │ + long double _s_t_d_:_:_s_p_h___n_e_u_m_a_n_n_l (unsigned int __n,
│ │ │ │ + long double __x)
│ │ │ │ ********** 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 _v_e_c_t_o_r_._t_c_c.
│ │ │ │ +attempt to use it directly. Instead, include .
│ │ │ │ +Definition in file _s_p_e_c_f_u_n_._h.
│ │ │ │ ********** MMaaccrroo DDeeffiinniittiioonn DDooccuummeennttaattiioonn **********
│ │ │ │ -********** _?◆_? __VVEECCTTOORR__TTCCCC **********
│ │ │ │ -#define _VECTOR_TCC
│ │ │ │ -Definition at line _5_7 of file _v_e_c_t_o_r_._t_c_c.
│ │ │ │ +********** _?◆_? ____ccpppp__lliibb__mmaatthh__ssppeecciiaall__ffuunnccttiioonnss **********
│ │ │ │ +#define __cpp_lib_math_special_functions
│ │ │ │ +Definition at line _3_9 of file _s_p_e_c_f_u_n_._h.
│ │ │ │ +********** _?◆_? ____SSTTDDCCPPPP__MMAATTHH__SSPPEECC__FFUUNNCCSS____ **********
│ │ │ │ +#define __STDCPP_MATH_SPEC_FUNCS__
│ │ │ │ +Definition at line _3_7 of file _s_p_e_c_f_u_n_._h.
│ │ │ │ * bbiittss
│ │ │ │ - * _v_e_c_t_o_r_._t_c_c
│ │ │ │ + * _s_p_e_c_f_u_n_._h
│ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.15.0
│ │ ├── ./usr/share/doc/gcc-11-base/libstdc++/user/a00344_source.html
│ │ │ @@ -1,15 +1,15 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -libstdc++: vector.tcc Source File
│ │ │ +libstdc++: specfun.h Source File
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -48,20 +48,20 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
Go to the documentation of this file.
│ │ │ +
Go to the documentation of this file.
│ │ │
│ │ │ -
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ @@ -74,1049 +74,1617 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
59 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ -
│ │ │ -
61 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ -
62 _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
│ │ │ -
│ │ │ -
64 template <
typename _Tp,
typename _Alloc>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
70 __throw_length_error(__N(
"vector::reserve" ));
│ │ │ -
│ │ │ -
│ │ │ -
73 const size_type __old_size =
size ();
│ │ │ -
│ │ │ -
75 #if __cplusplus >= 201103L
│ │ │ -
76 if _GLIBCXX17_CONSTEXPR (_S_use_relocate())
│ │ │ -
│ │ │ -
78 __tmp = this->_M_allocate(__n);
│ │ │ -
79 _S_relocate(this->_M_impl._M_start, this->_M_impl._M_finish,
│ │ │ -
80 __tmp, _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
86 _GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(this->_M_impl._M_start),
│ │ │ -
87 _GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(this->_M_impl._M_finish));
│ │ │ -
88 std::_Destroy (this->_M_impl._M_start, this->_M_impl._M_finish,
│ │ │ -
89 _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
91 _GLIBCXX_ASAN_ANNOTATE_REINIT;
│ │ │ -
92 _M_deallocate(this->_M_impl._M_start,
│ │ │ -
93 this->_M_impl._M_end_of_storage
│ │ │ -
94 - this->_M_impl._M_start);
│ │ │ -
95 this->_M_impl._M_start = __tmp;
│ │ │ -
96 this->_M_impl._M_finish = __tmp + __old_size;
│ │ │ -
97 this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
101 #if __cplusplus >= 201103L
│ │ │ -
102 template <
typename _Tp,
typename _Alloc>
│ │ │ -
103 template <
typename ... _Args>
│ │ │ -
104 #if __cplusplus > 201402L
│ │ │ -
105 typename vector<_Tp, _Alloc>::reference
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
112 if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
│ │ │ -
│ │ │ -
114 _GLIBCXX_ASAN_ANNOTATE_GROW(1);
│ │ │ -
115 _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
│ │ │ -
│ │ │ -
117 ++this->_M_impl._M_finish;
│ │ │ -
118 _GLIBCXX_ASAN_ANNOTATE_GREW(1);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
122 #if __cplusplus > 201402L
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
128 template <
typename _Tp,
typename _Alloc>
│ │ │ -
129 typename vector<_Tp, _Alloc>::iterator
│ │ │ -
│ │ │ -
│ │ │ -
131 #if __cplusplus >= 201103L
│ │ │ -
132 insert (const_iterator __position,
const value_type& __x)
│ │ │ -
│ │ │ -
134 insert (iterator __position,
const value_type& __x)
│ │ │ -
│ │ │ -
│ │ │ -
137 const size_type __n = __position -
begin ();
│ │ │ -
138 if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
│ │ │ -
139 if (__position ==
end ())
│ │ │ -
│ │ │ -
141 _GLIBCXX_ASAN_ANNOTATE_GROW(1);
│ │ │ -
142 _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
│ │ │ -
│ │ │ -
144 ++this->_M_impl._M_finish;
│ │ │ -
145 _GLIBCXX_ASAN_ANNOTATE_GREW(1);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
149 #if __cplusplus >= 201103L
│ │ │ -
150 const auto __pos =
begin () + (__position -
cbegin ());
│ │ │ -
│ │ │ -
│ │ │ -
153 _Temporary_value __x_copy(
this , __x);
│ │ │ -
154 _M_insert_aux(__pos,
std::move (__x_copy._M_val()));
│ │ │ -
│ │ │ -
156 _M_insert_aux(__position, __x);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
160 #if __cplusplus >= 201103L
│ │ │ -
161 _M_realloc_insert(
begin () + (__position -
cbegin ()), __x);
│ │ │ -
│ │ │ -
163 _M_realloc_insert(__position, __x);
│ │ │ -
│ │ │ -
│ │ │ -
166 return iterator(this->_M_impl._M_start + __n);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
169 template <
typename _Tp,
typename _Alloc>
│ │ │ -
170 typename vector<_Tp, _Alloc>::iterator
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
174 if (__position + 1 !=
end ())
│ │ │ -
175 _GLIBCXX_MOVE3(__position + 1,
end (), __position);
│ │ │ -
176 --this->_M_impl._M_finish;
│ │ │ -
177 _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish);
│ │ │ -
178 _GLIBCXX_ASAN_ANNOTATE_SHRINK(1);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
182 template <
typename _Tp,
typename _Alloc>
│ │ │ -
183 typename vector<_Tp, _Alloc>::iterator
│ │ │ -
184 vector<_Tp, _Alloc>::
│ │ │ -
185 _M_erase(iterator __first, iterator __last)
│ │ │ -
│ │ │ -
187 if (__first != __last)
│ │ │ -
│ │ │ -
│ │ │ -
190 _GLIBCXX_MOVE3(__last,
end (), __first);
│ │ │ -
191 _M_erase_at_end(__first.base() + (
end () - __last));
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
196 template <
typename _Tp,
typename _Alloc>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
203 _GLIBCXX_ASAN_ANNOTATE_REINIT;
│ │ │ -
204 #if __cplusplus >= 201103L
│ │ │ -
205 if (_Alloc_traits::_S_propagate_on_copy_assign())
│ │ │ -
│ │ │ -
207 if (!_Alloc_traits::_S_always_equal()
│ │ │ -
208 && _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
212 _M_deallocate(this->_M_impl._M_start,
│ │ │ -
213 this->_M_impl._M_end_of_storage
│ │ │ -
214 - this->_M_impl._M_start);
│ │ │ -
215 this->_M_impl._M_start =
nullptr ;
│ │ │ -
216 this->_M_impl._M_finish =
nullptr ;
│ │ │ -
217 this->_M_impl._M_end_of_storage =
nullptr ;
│ │ │ -
│ │ │ -
219 std::__alloc_on_copy(_M_get_Tp_allocator(),
│ │ │ -
220 __x._M_get_Tp_allocator());
│ │ │ -
│ │ │ -
│ │ │ -
223 const size_type __xlen = __x.
size ();
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
228 std::_Destroy (this->_M_impl._M_start, this->_M_impl._M_finish,
│ │ │ -
229 _M_get_Tp_allocator());
│ │ │ -
230 _M_deallocate(this->_M_impl._M_start,
│ │ │ -
231 this->_M_impl._M_end_of_storage
│ │ │ -
232 - this->_M_impl._M_start);
│ │ │ -
233 this->_M_impl._M_start = __tmp;
│ │ │ -
234 this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen;
│ │ │ -
│ │ │ -
236 else if (
size () >= __xlen)
│ │ │ -
│ │ │ -
│ │ │ -
239 end (), _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
243 std::copy(__x._M_impl._M_start, __x._M_impl._M_start +
size (),
│ │ │ -
244 this->_M_impl._M_start);
│ │ │ -
245 std::__uninitialized_copy_a(__x._M_impl._M_start +
size (),
│ │ │ -
246 __x._M_impl._M_finish,
│ │ │ -
247 this->_M_impl._M_finish,
│ │ │ -
248 _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
250 this->_M_impl._M_finish = this->_M_impl._M_start + __xlen;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
255 template <
typename _Tp,
typename _Alloc>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
260 if (__n > capacity())
│ │ │ -
│ │ │ -
262 vector __tmp(__n, __val, _M_get_Tp_allocator());
│ │ │ -
263 __tmp._M_impl._M_swap_data(this->_M_impl);
│ │ │ -
│ │ │ -
265 else if (__n >
size ())
│ │ │ -
│ │ │ -
│ │ │ -
268 const size_type __add = __n -
size ();
│ │ │ -
269 _GLIBCXX_ASAN_ANNOTATE_GROW(__add);
│ │ │ -
270 this->_M_impl._M_finish =
│ │ │ -
271 std::__uninitialized_fill_n_a(this->_M_impl._M_finish,
│ │ │ -
272 __add, __val, _M_get_Tp_allocator());
│ │ │ -
273 _GLIBCXX_ASAN_ANNOTATE_GREW(__add);
│ │ │ -
│ │ │ -
│ │ │ -
276 _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val));
│ │ │ -
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
30 #ifndef _GLIBCXX_BITS_SPECFUN_H
│ │ │ +
31 #define _GLIBCXX_BITS_SPECFUN_H 1
│ │ │ +
│ │ │ +
33 #pragma GCC visibility push(default)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
37 #define __STDCPP_MATH_SPEC_FUNCS__ 201003L
│ │ │ +
│ │ │ +
39 #define __cpp_lib_math_special_functions 201603L
│ │ │ +
│ │ │ +
41 #if __cplusplus <= 201403L && __STDCPP_WANT_MATH_SPEC_FUNCS__ == 0
│ │ │ +
42 # error include <cmath> and define __STDCPP_WANT_MATH_SPEC_FUNCS__
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
49 #include <tr1/gamma.tcc>
│ │ │ +
50 #include <tr1/bessel_function.tcc>
│ │ │ +
51 #include <tr1/beta_function.tcc>
│ │ │ +
52 #include <tr1/ell_integral.tcc>
│ │ │ +
53 #include <tr1/exp_integral.tcc>
│ │ │ +
54 #include <tr1/hypergeometric.tcc>
│ │ │ +
55 #include <tr1/legendre_function.tcc>
│ │ │ +
56 #include <tr1/modified_bessel_func.tcc>
│ │ │ +
57 #include <tr1/poly_hermite.tcc>
│ │ │ +
58 #include <tr1/poly_laguerre.tcc>
│ │ │ +
59 #include <tr1/riemann_zeta.tcc>
│ │ │ +
│ │ │ +
61 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ +
│ │ │ +
63 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
207 {
return __detail::__assoc_laguerre<float>(__n, __m, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
217 {
return __detail::__assoc_laguerre<long double>(__n, __m, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
250 template <
typename _Tp>
│ │ │ +
251 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
254 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ +
255 return __detail::__assoc_laguerre<__type>(__n, __m, __x);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
268 {
return __detail::__assoc_legendre_p<float>(__l, __m, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
277 {
return __detail::__assoc_legendre_p<long double>(__l, __m, __x); }
│ │ │ +
│ │ │
│ │ │ -
279 template <
typename _Tp,
typename _Alloc>
│ │ │ -
280 template <
typename _InputIterator>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
284 std::input_iterator_tag)
│ │ │ -
│ │ │ -
286 pointer __cur(this->_M_impl._M_start);
│ │ │ -
287 for (; __first != __last && __cur != this->_M_impl._M_finish;
│ │ │ -
288 ++__cur, (void)++__first)
│ │ │ -
│ │ │ -
290 if (__first == __last)
│ │ │ -
291 _M_erase_at_end(__cur);
│ │ │ -
│ │ │ -
293 _M_range_insert(
end (), __first, __last,
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
297 template <
typename _Tp,
typename _Alloc>
│ │ │ -
298 template <
typename _ForwardIterator>
│ │ │ -
│ │ │ -
│ │ │ -
301 _M_assign_aux (_ForwardIterator __first, _ForwardIterator __last,
│ │ │ -
302 std::forward_iterator_tag)
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
306 if (__len > capacity())
│ │ │ -
│ │ │ -
308 _S_check_init_len(__len, _M_get_Tp_allocator());
│ │ │ -
309 pointer __tmp(_M_allocate_and_copy(__len, __first, __last));
│ │ │ -
310 std::_Destroy (this->_M_impl._M_start, this->_M_impl._M_finish,
│ │ │ -
311 _M_get_Tp_allocator());
│ │ │ -
312 _GLIBCXX_ASAN_ANNOTATE_REINIT;
│ │ │ -
313 _M_deallocate(this->_M_impl._M_start,
│ │ │ -
314 this->_M_impl._M_end_of_storage
│ │ │ -
315 - this->_M_impl._M_start);
│ │ │ -
316 this->_M_impl._M_start = __tmp;
│ │ │ -
317 this->_M_impl._M_finish = this->_M_impl._M_start + __len;
│ │ │ -
318 this->_M_impl._M_end_of_storage = this->_M_impl._M_finish;
│ │ │ -
│ │ │ -
320 else if (
size () >= __len)
│ │ │ -
321 _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start));
│ │ │ -
│ │ │ -
│ │ │ -
324 _ForwardIterator __mid = __first;
│ │ │ -
│ │ │ -
326 std::copy(__first, __mid, this->_M_impl._M_start);
│ │ │ -
327 const size_type __attribute__((__unused__)) __n = __len -
size ();
│ │ │ -
328 _GLIBCXX_ASAN_ANNOTATE_GROW(__n);
│ │ │ -
329 this->_M_impl._M_finish =
│ │ │ -
330 std::__uninitialized_copy_a(__mid, __last,
│ │ │ -
331 this->_M_impl._M_finish,
│ │ │ -
332 _M_get_Tp_allocator());
│ │ │ -
333 _GLIBCXX_ASAN_ANNOTATE_GREW(__n);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
337 #if __cplusplus >= 201103L
│ │ │ -
338 template <
typename _Tp,
typename _Alloc>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
343 const auto __n = __position -
cbegin ();
│ │ │ -
344 if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
│ │ │ -
345 if (__position ==
cend ())
│ │ │ -
│ │ │ -
347 _GLIBCXX_ASAN_ANNOTATE_GROW(1);
│ │ │ -
348 _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
│ │ │ -
│ │ │ -
350 ++this->_M_impl._M_finish;
│ │ │ -
351 _GLIBCXX_ASAN_ANNOTATE_GREW(1);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
358 return iterator (this->_M_impl._M_start + __n);
│ │ │ -
│ │ │ -
│ │ │ -
361 template <
typename _Tp,
typename _Alloc>
│ │ │ -
362 template <
typename ... _Args>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
368 const auto __n = __position -
cbegin ();
│ │ │ -
369 if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
│ │ │ -
370 if (__position ==
cend ())
│ │ │ -
│ │ │ -
372 _GLIBCXX_ASAN_ANNOTATE_GROW(1);
│ │ │ -
373 _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
│ │ │ -
│ │ │ -
375 ++this->_M_impl._M_finish;
│ │ │ -
376 _GLIBCXX_ASAN_ANNOTATE_GREW(1);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
389 return iterator (this->_M_impl._M_start + __n);
│ │ │ -
│ │ │ -
│ │ │ -
392 template <
typename _Tp,
typename _Alloc>
│ │ │ -
393 template <
typename _Arg>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
398 template <
typename _Tp,
typename _Alloc>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
404 _GLIBCXX_ASAN_ANNOTATE_GROW(1);
│ │ │ -
405 _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
│ │ │ -
406 _GLIBCXX_MOVE(*(this->_M_impl._M_finish - 1)));
│ │ │ -
407 ++this->_M_impl._M_finish;
│ │ │ -
408 _GLIBCXX_ASAN_ANNOTATE_GREW(1);
│ │ │ -
409 #if __cplusplus < 201103L
│ │ │ -
│ │ │ -
│ │ │ -
412 _GLIBCXX_MOVE_BACKWARD3(__position.base(),
│ │ │ -
413 this->_M_impl._M_finish - 2,
│ │ │ -
414 this->_M_impl._M_finish - 1);
│ │ │ -
415 #if __cplusplus < 201103L
│ │ │ -
416 *__position = __x_copy;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
422 #if __cplusplus >= 201103L
│ │ │ -
423 template <
typename _Tp,
typename _Alloc>
│ │ │ -
424 template <
typename ... _Args>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
429 template <
typename _Tp,
typename _Alloc>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
436 _M_check_len(
size_type (1),
"vector::_M_realloc_insert" );
│ │ │ -
437 pointer __old_start = this->_M_impl._M_start;
│ │ │ -
438 pointer __old_finish = this->_M_impl._M_finish;
│ │ │ -
│ │ │ -
440 pointer __new_start(this->_M_allocate(__len));
│ │ │ -
441 pointer __new_finish(__new_start);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
449 _Alloc_traits::construct(this->_M_impl,
│ │ │ -
450 __new_start + __elems_before,
│ │ │ -
451 #
if __cplusplus >= 201103L
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
456 __new_finish = pointer();
│ │ │ -
│ │ │ -
458 #if __cplusplus >= 201103L
│ │ │ -
459 if _GLIBCXX17_CONSTEXPR (_S_use_relocate())
│ │ │ -
│ │ │ -
461 __new_finish = _S_relocate(__old_start, __position.base(),
│ │ │ -
462 __new_start, _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
466 __new_finish = _S_relocate(__position.base(), __old_finish,
│ │ │ -
467 __new_finish, _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
473 = std::__uninitialized_move_if_noexcept_a
│ │ │ -
474 (__old_start, __position.base(),
│ │ │ -
475 __new_start, _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
480 = std::__uninitialized_move_if_noexcept_a
│ │ │ -
481 (__position.base(), __old_finish,
│ │ │ -
482 __new_finish, _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
488 _Alloc_traits::destroy(this->_M_impl,
│ │ │ -
489 __new_start + __elems_before);
│ │ │ -
│ │ │ -
491 std::_Destroy (__new_start, __new_finish, _M_get_Tp_allocator());
│ │ │ -
492 _M_deallocate(__new_start, __len);
│ │ │ -
493 __throw_exception_again;
│ │ │ -
│ │ │ -
495 #if __cplusplus >= 201103L
│ │ │ -
496 if _GLIBCXX17_CONSTEXPR (!_S_use_relocate())
│ │ │ -
│ │ │ -
498 std::_Destroy (__old_start, __old_finish, _M_get_Tp_allocator());
│ │ │ -
499 _GLIBCXX_ASAN_ANNOTATE_REINIT;
│ │ │ -
500 _M_deallocate(__old_start,
│ │ │ -
501 this->_M_impl._M_end_of_storage - __old_start);
│ │ │ -
502 this->_M_impl._M_start = __new_start;
│ │ │ -
503 this->_M_impl._M_finish = __new_finish;
│ │ │ -
504 this->_M_impl._M_end_of_storage = __new_start + __len;
│ │ │ -
│ │ │ -
│ │ │ -
507 template <
typename _Tp,
typename _Alloc>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
514 if (
size_type (this->_M_impl._M_end_of_storage
│ │ │ -
515 - this->_M_impl._M_finish) >= __n)
│ │ │ -
│ │ │ -
517 #if __cplusplus < 201103L
│ │ │ -
│ │ │ -
│ │ │ -
520 _Temporary_value __tmp(
this , __x);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
524 pointer __old_finish(this->_M_impl._M_finish);
│ │ │ -
525 if (__elems_after > __n)
│ │ │ -
│ │ │ -
527 _GLIBCXX_ASAN_ANNOTATE_GROW(__n);
│ │ │ -
528 std::__uninitialized_move_a(this->_M_impl._M_finish - __n,
│ │ │ -
529 this->_M_impl._M_finish,
│ │ │ -
530 this->_M_impl._M_finish,
│ │ │ -
531 _M_get_Tp_allocator());
│ │ │ -
532 this->_M_impl._M_finish += __n;
│ │ │ -
533 _GLIBCXX_ASAN_ANNOTATE_GREW(__n);
│ │ │ -
534 _GLIBCXX_MOVE_BACKWARD3(__position.base(),
│ │ │ -
535 __old_finish - __n, __old_finish);
│ │ │ -
536 std::fill(__position.base(), __position.base() + __n,
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
541 _GLIBCXX_ASAN_ANNOTATE_GROW(__n);
│ │ │ -
542 this->_M_impl._M_finish =
│ │ │ -
543 std::__uninitialized_fill_n_a(this->_M_impl._M_finish,
│ │ │ -
│ │ │ -
│ │ │ -
546 _M_get_Tp_allocator());
│ │ │ -
547 _GLIBCXX_ASAN_ANNOTATE_GREW(__n - __elems_after);
│ │ │ -
548 std::__uninitialized_move_a(__position.base(), __old_finish,
│ │ │ -
549 this->_M_impl._M_finish,
│ │ │ -
550 _M_get_Tp_allocator());
│ │ │ -
551 this->_M_impl._M_finish += __elems_after;
│ │ │ -
552 _GLIBCXX_ASAN_ANNOTATE_GREW(__elems_after);
│ │ │ -
553 std::fill(__position.base(), __old_finish, __x_copy);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
559 _M_check_len(__n,
"vector::_M_fill_insert" );
│ │ │ -
│ │ │ -
561 pointer __new_start(this->_M_allocate(__len));
│ │ │ -
562 pointer __new_finish(__new_start);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
566 std::__uninitialized_fill_n_a(__new_start + __elems_before,
│ │ │ -
│ │ │ -
568 _M_get_Tp_allocator());
│ │ │ -
569 __new_finish = pointer();
│ │ │ -
│ │ │ -
│ │ │ -
572 = std::__uninitialized_move_if_noexcept_a
│ │ │ -
573 (this->_M_impl._M_start, __position.base(),
│ │ │ -
574 __new_start, _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
579 = std::__uninitialized_move_if_noexcept_a
│ │ │ -
580 (__position.base(), this->_M_impl._M_finish,
│ │ │ -
581 __new_finish, _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
587 __new_start + __elems_before + __n,
│ │ │ -
588 _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
│ │ │ -
591 _M_get_Tp_allocator());
│ │ │ -
592 _M_deallocate(__new_start, __len);
│ │ │ -
593 __throw_exception_again;
│ │ │ -
│ │ │ -
595 std::_Destroy (this->_M_impl._M_start, this->_M_impl._M_finish,
│ │ │ -
596 _M_get_Tp_allocator());
│ │ │ -
597 _GLIBCXX_ASAN_ANNOTATE_REINIT;
│ │ │ -
598 _M_deallocate(this->_M_impl._M_start,
│ │ │ -
599 this->_M_impl._M_end_of_storage
│ │ │ -
600 - this->_M_impl._M_start);
│ │ │ -
601 this->_M_impl._M_start = __new_start;
│ │ │ -
602 this->_M_impl._M_finish = __new_finish;
│ │ │ -
603 this->_M_impl._M_end_of_storage = __new_start + __len;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
608 #if __cplusplus >= 201103L
│ │ │ -
609 template <
typename _Tp,
typename _Alloc>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
618 - this->_M_impl._M_finish);
│ │ │ -
│ │ │ -
620 if (__size > max_size() || __navail > max_size() - __size)
│ │ │ -
621 __builtin_unreachable();
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
625 _GLIBCXX_ASAN_ANNOTATE_GROW(__n);
│ │ │ -
626 this->_M_impl._M_finish =
│ │ │ -
627 std::__uninitialized_default_n_a(this->_M_impl._M_finish,
│ │ │ -
628 __n, _M_get_Tp_allocator());
│ │ │ -
629 _GLIBCXX_ASAN_ANNOTATE_GREW(__n);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
634 _M_check_len(__n,
"vector::_M_default_append" );
│ │ │ -
635 pointer __new_start(this->_M_allocate(__len));
│ │ │ -
636 if _GLIBCXX17_CONSTEXPR (_S_use_relocate())
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
640 std::__uninitialized_default_n_a(__new_start + __size,
│ │ │ -
641 __n, _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
645 _M_deallocate(__new_start, __len);
│ │ │ -
646 __throw_exception_again;
│ │ │ -
│ │ │ -
648 _S_relocate(this->_M_impl._M_start, this->_M_impl._M_finish,
│ │ │ -
649 __new_start, _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
653 pointer __destroy_from = pointer();
│ │ │ -
│ │ │ -
│ │ │ -
656 std::__uninitialized_default_n_a(__new_start + __size,
│ │ │ -
657 __n, _M_get_Tp_allocator());
│ │ │ -
658 __destroy_from = __new_start + __size;
│ │ │ -
659 std::__uninitialized_move_if_noexcept_a(
│ │ │ -
660 this->_M_impl._M_start, this->_M_impl._M_finish,
│ │ │ -
661 __new_start, _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
667 _M_get_Tp_allocator());
│ │ │ -
668 _M_deallocate(__new_start, __len);
│ │ │ -
669 __throw_exception_again;
│ │ │ -
│ │ │ -
671 std::_Destroy (this->_M_impl._M_start, this->_M_impl._M_finish,
│ │ │ -
672 _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
674 _GLIBCXX_ASAN_ANNOTATE_REINIT;
│ │ │ -
675 _M_deallocate(this->_M_impl._M_start,
│ │ │ -
676 this->_M_impl._M_end_of_storage
│ │ │ -
677 - this->_M_impl._M_start);
│ │ │ -
678 this->_M_impl._M_start = __new_start;
│ │ │ -
679 this->_M_impl._M_finish = __new_start + __size + __n;
│ │ │ -
680 this->_M_impl._M_end_of_storage = __new_start + __len;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
685 template <
typename _Tp,
typename _Alloc>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
690 if (capacity() ==
size ())
│ │ │ -
│ │ │ -
692 _GLIBCXX_ASAN_ANNOTATE_REINIT;
│ │ │ -
693 return std::__shrink_to_fit_aux<vector>::_S_do_it(*
this );
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
697 template <
typename _Tp,
typename _Alloc>
│ │ │ -
698 template <
typename _InputIterator>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
706 for (; __first != __last; ++__first)
│ │ │ -
│ │ │ -
│ │ │ -
709 else if (__first != __last)
│ │ │ -
│ │ │ -
711 vector __tmp(__first, __last, _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
713 _GLIBCXX_MAKE_MOVE_ITERATOR(__tmp.
begin ()),
│ │ │ -
714 _GLIBCXX_MAKE_MOVE_ITERATOR(__tmp.
end ()));
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
718 template <
typename _Tp,
typename _Alloc>
│ │ │ -
719 template <
typename _ForwardIterator>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
725 if (__first != __last)
│ │ │ -
│ │ │ -
│ │ │ -
728 if (
size_type (this->_M_impl._M_end_of_storage
│ │ │ -
729 - this->_M_impl._M_finish) >= __n)
│ │ │ -
│ │ │ -
│ │ │ -
732 pointer __old_finish(this->_M_impl._M_finish);
│ │ │ -
733 if (__elems_after > __n)
│ │ │ -
│ │ │ -
735 _GLIBCXX_ASAN_ANNOTATE_GROW(__n);
│ │ │ -
736 std::__uninitialized_move_a(this->_M_impl._M_finish - __n,
│ │ │ -
737 this->_M_impl._M_finish,
│ │ │ -
738 this->_M_impl._M_finish,
│ │ │ -
739 _M_get_Tp_allocator());
│ │ │ -
740 this->_M_impl._M_finish += __n;
│ │ │ -
741 _GLIBCXX_ASAN_ANNOTATE_GREW(__n);
│ │ │ -
742 _GLIBCXX_MOVE_BACKWARD3(__position.base(),
│ │ │ -
743 __old_finish - __n, __old_finish);
│ │ │ -
744 std::copy(__first, __last, __position);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
748 _ForwardIterator __mid = __first;
│ │ │ -
│ │ │ -
750 _GLIBCXX_ASAN_ANNOTATE_GROW(__n);
│ │ │ -
751 std::__uninitialized_copy_a(__mid, __last,
│ │ │ -
752 this->_M_impl._M_finish,
│ │ │ -
753 _M_get_Tp_allocator());
│ │ │ -
754 this->_M_impl._M_finish += __n - __elems_after;
│ │ │ -
755 _GLIBCXX_ASAN_ANNOTATE_GREW(__n - __elems_after);
│ │ │ -
756 std::__uninitialized_move_a(__position.base(),
│ │ │ -
│ │ │ -
758 this->_M_impl._M_finish,
│ │ │ -
759 _M_get_Tp_allocator());
│ │ │ -
760 this->_M_impl._M_finish += __elems_after;
│ │ │ -
761 _GLIBCXX_ASAN_ANNOTATE_GREW(__elems_after);
│ │ │ -
762 std::copy(__first, __mid, __position);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
768 _M_check_len(__n,
"vector::_M_range_insert" );
│ │ │ -
769 pointer __new_start(this->_M_allocate(__len));
│ │ │ -
770 pointer __new_finish(__new_start);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
774 = std::__uninitialized_move_if_noexcept_a
│ │ │ -
775 (this->_M_impl._M_start, __position.base(),
│ │ │ -
776 __new_start, _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
778 = std::__uninitialized_copy_a(__first, __last,
│ │ │ -
│ │ │ -
780 _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
782 = std::__uninitialized_move_if_noexcept_a
│ │ │ -
783 (__position.base(), this->_M_impl._M_finish,
│ │ │ -
784 __new_finish, _M_get_Tp_allocator());
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
789 _M_get_Tp_allocator());
│ │ │ -
790 _M_deallocate(__new_start, __len);
│ │ │ -
791 __throw_exception_again;
│ │ │ -
│ │ │ -
793 std::_Destroy (this->_M_impl._M_start, this->_M_impl._M_finish,
│ │ │ -
794 _M_get_Tp_allocator());
│ │ │ -
795 _GLIBCXX_ASAN_ANNOTATE_REINIT;
│ │ │ -
796 _M_deallocate(this->_M_impl._M_start,
│ │ │ -
797 this->_M_impl._M_end_of_storage
│ │ │ -
798 - this->_M_impl._M_start);
│ │ │ -
799 this->_M_impl._M_start = __new_start;
│ │ │ -
800 this->_M_impl._M_finish = __new_finish;
│ │ │ -
801 this->_M_impl._M_end_of_storage = __new_start + __len;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
808 template <
typename _Alloc>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
813 _Bit_pointer __q = this->_M_allocate(__n);
│ │ │ -
│ │ │ -
│ │ │ -
816 this->_M_deallocate();
│ │ │ -
817 this->_M_impl._M_start = __start;
│ │ │ -
818 this->_M_impl._M_finish = __finish;
│ │ │ -
819 this->_M_impl._M_end_of_storage = __q + _S_nword(__n);
│ │ │ -
│ │ │ -
│ │ │ -
822 template <
typename _Alloc>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
829 if (capacity() -
size () >= __n)
│ │ │ -
│ │ │ -
831 std::copy_backward(__position,
end (),
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
839 _M_check_len(__n,
"vector<bool>::_M_fill_insert" );
│ │ │ -
840 _Bit_pointer __q = this->_M_allocate(__len);
│ │ │ -
│ │ │ -
842 iterator __i = _M_copy_aligned(
begin (), __position, __start);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
846 this->_M_deallocate();
│ │ │ -
847 this->_M_impl._M_end_of_storage = __q + _S_nword(__len);
│ │ │ -
848 this->_M_impl._M_start = __start;
│ │ │ -
849 this->_M_impl._M_finish = __finish;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
853 template <
typename _Alloc>
│ │ │ -
854 template <
typename _ForwardIterator>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
858 _ForwardIterator __last, std::forward_iterator_tag)
│ │ │ -
│ │ │ -
860 if (__first != __last)
│ │ │ -
│ │ │ -
│ │ │ -
863 if (capacity() -
size () >= __n)
│ │ │ -
│ │ │ -
865 std::copy_backward(__position,
end (),
│ │ │ -
866 this->_M_impl._M_finish
│ │ │ -
│ │ │ -
868 std::copy(__first, __last, __position);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
874 _M_check_len(__n,
"vector<bool>::_M_insert_range" );
│ │ │ -
875 _Bit_pointer __q = this->_M_allocate(__len);
│ │ │ -
│ │ │ -
877 iterator __i = _M_copy_aligned(
begin (), __position, __start);
│ │ │ -
878 __i = std::copy(__first, __last, __i);
│ │ │ -
879 iterator __finish = std::copy(__position,
end (), __i);
│ │ │ -
880 this->_M_deallocate();
│ │ │ -
881 this->_M_impl._M_end_of_storage = __q + _S_nword(__len);
│ │ │ -
882 this->_M_impl._M_start = __start;
│ │ │ -
883 this->_M_impl._M_finish = __finish;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
888 template <
typename _Alloc>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
893 if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr())
│ │ │ -
│ │ │ -
895 std::copy_backward(__position, this->_M_impl._M_finish,
│ │ │ -
896 this->_M_impl._M_finish + 1);
│ │ │ -
│ │ │ -
898 ++this->_M_impl._M_finish;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
903 _M_check_len(
size_type (1),
"vector<bool>::_M_insert_aux" );
│ │ │ -
904 _Bit_pointer __q = this->_M_allocate(__len);
│ │ │ -
│ │ │ -
906 iterator __i = _M_copy_aligned(
begin (), __position, __start);
│ │ │ -
│ │ │ -
908 iterator __finish = std::copy(__position,
end (), __i);
│ │ │ -
909 this->_M_deallocate();
│ │ │ -
910 this->_M_impl._M_end_of_storage = __q + _S_nword(__len);
│ │ │ -
911 this->_M_impl._M_start = __start;
│ │ │ -
912 this->_M_impl._M_finish = __finish;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
916 template <
typename _Alloc>
│ │ │ -
917 typename vector<bool, _Alloc>::iterator
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
921 if (__position + 1 !=
end ())
│ │ │ -
922 std::copy(__position + 1,
end (), __position);
│ │ │ -
923 --this->_M_impl._M_finish;
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
927 template <
typename _Alloc>
│ │ │ -
928 typename vector<bool, _Alloc>::iterator
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
932 if (__first != __last)
│ │ │ -
933 _M_erase_at_end(std::copy(__last,
end (), __first));
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
937 #if __cplusplus >= 201103L
│ │ │ -
938 template <
typename _Alloc>
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
943 if (capacity() -
size () <
int (_S_word_bit))
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
951 this->_M_deallocate();
│ │ │ -
952 this->_M_impl._M_reset();
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
961 _GLIBCXX_END_NAMESPACE_CONTAINER
│ │ │ -
962 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │ -
│ │ │ -
│ │ │ -
965 #if __cplusplus >= 201103L
│ │ │ -
│ │ │ -
967 namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ -
│ │ │ -
969 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ -
│ │ │ -
971 template <
typename _Alloc>
│ │ │ -
│ │ │ -
│ │ │ -
974 operator()(
const _GLIBCXX_STD_C::vector<bool, _Alloc>& __b)
const noexcept
│ │ │ -
│ │ │ -
│ │ │ -
977 using _GLIBCXX_STD_C::_S_word_bit;
│ │ │ -
978 using _GLIBCXX_STD_C::_Bit_type;
│ │ │ -
│ │ │ -
980 const size_t __words = __b.size() / _S_word_bit;
│ │ │ -
│ │ │ -
│ │ │ -
983 const size_t __clength = __words *
sizeof (_Bit_type);
│ │ │ -
984 __hash = std::_Hash_impl::hash(__b._M_impl._M_start._M_p, __clength);
│ │ │ -
│ │ │ -
│ │ │ -
987 const size_t __extrabits = __b.size() % _S_word_bit;
│ │ │ -
│ │ │ -
│ │ │ -
990 _Bit_type __hiword = *__b._M_impl._M_finish._M_p;
│ │ │ -
991 __hiword &= ~((~static_cast<_Bit_type>(0)) << __extrabits);
│ │ │ -
│ │ │ -
993 const size_t __clength
│ │ │ -
994 = (__extrabits + __CHAR_BIT__ - 1) / __CHAR_BIT__;
│ │ │ -
│ │ │ -
996 __hash = std::_Hash_impl::hash(&__hiword, __clength, __hash);
│ │ │ -
│ │ │ -
998 __hash = std::_Hash_impl::hash(&__hiword, __clength);
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
1004 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
1009 #undef _GLIBCXX_ASAN_ANNOTATE_REINIT
│ │ │ -
1010 #undef _GLIBCXX_ASAN_ANNOTATE_GROW
│ │ │ -
1011 #undef _GLIBCXX_ASAN_ANNOTATE_GREW
│ │ │ -
1012 #undef _GLIBCXX_ASAN_ANNOTATE_SHRINK
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
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 _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 iterator_traits< _Iter >::iterator_category __iterator_category(const _Iter &)
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
296 template <
typename _Tp>
│ │ │ +
297 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
300 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ +
301 return __detail::__assoc_legendre_p<__type>(__l, __m, __x);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
313 {
return __detail::__beta<float>(__a, __b); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
322 betal (
long double __a,
long double __b)
│ │ │ +
323 {
return __detail::__beta<long double>(__a, __b); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
341 template <
typename _Tpa,
typename _Tpb>
│ │ │ +
342 inline typename __gnu_cxx::__promote_2<_Tpa, _Tpb>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
345 typedef typename __gnu_cxx::__promote_2<_Tpa, _Tpb>::__type __type;
│ │ │ +
346 return __detail::__beta<__type>(__a, __b);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
359 {
return __detail::__comp_ellint_1<float>(__k); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
369 {
return __detail::__comp_ellint_1<long double>(__k); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
389 template <
typename _Tp>
│ │ │ +
390 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
393 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ +
394 return __detail::__comp_ellint_1<__type>(__k);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
407 {
return __detail::__comp_ellint_2<float>(__k); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
417 {
return __detail::__comp_ellint_2<long double>(__k); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
436 template <
typename _Tp>
│ │ │ +
437 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
440 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ +
441 return __detail::__comp_ellint_2<__type>(__k);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
454 {
return __detail::__comp_ellint_3<float>(__k, __nu); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
464 {
return __detail::__comp_ellint_3<long double>(__k, __nu); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
487 template <
typename _Tp,
typename _Tpn>
│ │ │ +
488 inline typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
491 typedef typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type __type;
│ │ │ +
492 return __detail::__comp_ellint_3<__type>(__k, __nu);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
505 {
return __detail::__cyl_bessel_i<float>(__nu, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
515 {
return __detail::__cyl_bessel_i<long double>(__nu, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
533 template <
typename _Tpnu,
typename _Tp>
│ │ │ +
534 inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
537 typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
│ │ │ +
538 return __detail::__cyl_bessel_i<__type>(__nu, __x);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
551 {
return __detail::__cyl_bessel_j<float>(__nu, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
561 {
return __detail::__cyl_bessel_j<long double>(__nu, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
579 template <
typename _Tpnu,
typename _Tp>
│ │ │ +
580 inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
583 typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
│ │ │ +
584 return __detail::__cyl_bessel_j<__type>(__nu, __x);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
597 {
return __detail::__cyl_bessel_k<float>(__nu, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
607 {
return __detail::__cyl_bessel_k<long double>(__nu, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
631 template <
typename _Tpnu,
typename _Tp>
│ │ │ +
632 inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
635 typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
│ │ │ +
636 return __detail::__cyl_bessel_k<__type>(__nu, __x);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
649 {
return __detail::__cyl_neumann_n<float>(__nu, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
659 {
return __detail::__cyl_neumann_n<long double>(__nu, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
679 template <
typename _Tpnu,
typename _Tp>
│ │ │ +
680 inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
683 typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
│ │ │ +
684 return __detail::__cyl_neumann_n<__type>(__nu, __x);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
697 {
return __detail::__ellint_1<float>(__k, __phi); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
707 {
return __detail::__ellint_1<long double>(__k, __phi); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
727 template <
typename _Tp,
typename _Tpp>
│ │ │ +
728 inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
731 typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type;
│ │ │ +
732 return __detail::__ellint_1<__type>(__k, __phi);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
745 {
return __detail::__ellint_2<float>(__k, __phi); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
755 {
return __detail::__ellint_2<long double>(__k, __phi); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
775 template <
typename _Tp,
typename _Tpp>
│ │ │ +
776 inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
779 typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type;
│ │ │ +
780 return __detail::__ellint_2<__type>(__k, __phi);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
793 {
return __detail::__ellint_3<float>(__k, __nu, __phi); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
802 ellint_3l (
long double __k,
long double __nu,
long double __phi)
│ │ │ +
803 {
return __detail::__ellint_3<long double>(__k, __nu, __phi); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
828 template <
typename _Tp,
typename _Tpn,
typename _Tpp>
│ │ │ +
829 inline typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
832 typedef typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type __type;
│ │ │ +
833 return __detail::__ellint_3<__type>(__k, __nu, __phi);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
845 {
return __detail::__expint<float>(__x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
855 {
return __detail::__expint<long double>(__x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
868 template <
typename _Tp>
│ │ │ +
869 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
872 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ +
873 return __detail::__expint<__type>(__x);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
886 {
return __detail::__poly_hermite<float>(__n, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
896 {
return __detail::__poly_hermite<long double>(__n, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
916 template <
typename _Tp>
│ │ │ +
917 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
920 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ +
921 return __detail::__poly_hermite<__type>(__n, __x);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
934 {
return __detail::__laguerre<float>(__n, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
944 {
return __detail::__laguerre<long double>(__n, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
960 template <
typename _Tp>
│ │ │ +
961 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
964 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ +
965 return __detail::__laguerre<__type>(__n, __x);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
978 {
return __detail::__poly_legendre_p<float>(__l, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
988 {
return __detail::__poly_legendre_p<long double>(__l, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1005 template <
typename _Tp>
│ │ │ +
1006 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1009 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ +
1010 return __detail::__poly_legendre_p<__type>(__l, __x);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1023 {
return __detail::__riemann_zeta<float>(__s); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1033 {
return __detail::__riemann_zeta<long double>(__s); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1056 template <
typename _Tp>
│ │ │ +
1057 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1060 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ +
1061 return __detail::__riemann_zeta<__type>(__s);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1074 {
return __detail::__sph_bessel<float>(__n, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1084 {
return __detail::__sph_bessel<long double>(__n, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1100 template <
typename _Tp>
│ │ │ +
1101 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1104 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ +
1105 return __detail::__sph_bessel<__type>(__n, __x);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1118 {
return __detail::__sph_legendre<float>(__l, __m, __theta); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1129 {
return __detail::__sph_legendre<long double>(__l, __m, __theta); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1147 template <
typename _Tp>
│ │ │ +
1148 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1151 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ +
1152 return __detail::__sph_legendre<__type>(__l, __m, __theta);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1165 {
return __detail::__sph_neumann<float>(__n, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1175 {
return __detail::__sph_neumann<long double>(__n, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1191 template <
typename _Tp>
│ │ │ +
1192 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1195 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ +
1196 return __detail::__sph_neumann<__type>(__n, __x);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1201 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │ +
1204 #ifndef __STRICT_ANSI__
│ │ │ +
1205 namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
│ │ │ +
│ │ │ +
1207 _GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1221 float __Ai, __Bi, __Aip, __Bip;
│ │ │ +
1222 std::__detail::__airy<float>(__x, __Ai, __Bi, __Aip, __Bip);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1232 long double __Ai, __Bi, __Aip, __Bip;
│ │ │ +
1233 std::__detail::__airy<long double>(__x, __Ai, __Bi, __Aip, __Bip);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1240 template <
typename _Tp>
│ │ │ +
1241 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1244 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ +
1245 __type __Ai, __Bi, __Aip, __Bip;
│ │ │ +
1246 std::__detail::__airy<__type>(__x, __Ai, __Bi, __Aip, __Bip);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1256 float __Ai, __Bi, __Aip, __Bip;
│ │ │ +
1257 std::__detail::__airy<float>(__x, __Ai, __Bi, __Aip, __Bip);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1267 long double __Ai, __Bi, __Aip, __Bip;
│ │ │ +
1268 std::__detail::__airy<long double>(__x, __Ai, __Bi, __Aip, __Bip);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1275 template <
typename _Tp>
│ │ │ +
1276 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1279 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ +
1280 __type __Ai, __Bi, __Aip, __Bip;
│ │ │ +
1281 std::__detail::__airy<__type>(__x, __Ai, __Bi, __Aip, __Bip);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1296 {
return std::__detail::__conf_hyperg<float>(__a, __c, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1307 {
return std::__detail::__conf_hyperg<long double>(__a, __c, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1325 template <
typename _Tpa,
typename _Tpc,
typename _Tp>
│ │ │ +
1326 inline typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1329 typedef typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type __type;
│ │ │ +
1330 return std::__detail::__conf_hyperg<__type>(__a, __c, __x);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1343 hypergf (
float __a,
float __b,
float __c,
float __x)
│ │ │ +
1344 {
return std::__detail::__hyperg<float>(__a, __b, __c, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1354 hypergl (
long double __a,
long double __b,
long double __c,
long double __x)
│ │ │ +
1355 {
return std::__detail::__hyperg<long double>(__a, __b, __c, __x); }
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1374 template <
typename _Tpa,
typename _Tpb,
typename _Tpc,
typename _Tp>
│ │ │ +
1375 inline typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp>::__type
│ │ │ +
│ │ │ +
1376 hyperg (_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x)
│ │ │ +
│ │ │ +
1378 typedef typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp>
│ │ │ +
│ │ │ +
1380 return std::__detail::__hyperg<__type>(__a, __b, __c, __x);
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1384 _GLIBCXX_END_NAMESPACE_VERSION
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
1388 #pragma GCC visibility pop
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
│ │ │ +
__gnu_cxx::__promote< _Tp >::__type sph_bessel(unsigned int __n, _Tp __x)
│ │ │ +
long double conf_hypergl(long double __a, long double __c, long double __x)
│ │ │ +
long double sph_bessell(unsigned int __n, long double __x)
│ │ │ +
float betaf(float __a, float __b)
│ │ │ +
long double expintl(long double __x)
│ │ │ +
float cyl_bessel_jf(float __nu, float __x)
│ │ │ +
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_k(_Tpnu __nu, _Tp __x)
│ │ │ +
float ellint_3f(float __k, float __nu, float __phi)
Return the incomplete elliptic integral of the third kind for float argument.
│ │ │ +
long double legendrel(unsigned int __l, long double __x)
│ │ │ +
long double comp_ellint_3l(long double __k, long double __nu)
Return the complete elliptic integral of the third kind for long double modulus k.
│ │ │ +
long double riemann_zetal(long double __s)
│ │ │ +
float cyl_bessel_kf(float __nu, float __x)
│ │ │ +
float comp_ellint_2f(float __k)
│ │ │ +
long double hermitel(unsigned int __n, long double __x)
│ │ │ +
float airy_bif(float __x)
│ │ │ +
__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_1(_Tp __k, _Tpp __phi)
│ │ │ +
long double sph_legendrel(unsigned int __l, unsigned int __m, long double __theta)
│ │ │ +
float ellint_1f(float __k, float __phi)
│ │ │ +
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_neumann(_Tpnu __nu, _Tp __x)
│ │ │ +
float assoc_legendref(unsigned int __l, unsigned int __m, float __x)
│ │ │ +
long double sph_neumannl(unsigned int __n, long double __x)
│ │ │ +
__gnu_cxx::__promote_4< _Tpa, _Tpb, _Tpc, _Tp >::__type hyperg(_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x)
│ │ │ +
long double comp_ellint_2l(long double __k)
│ │ │ +
__gnu_cxx::__promote< _Tp >::__type airy_bi(_Tp __x)
│ │ │ +
__gnu_cxx::__promote< _Tp >::__type comp_ellint_2(_Tp __k)
│ │ │ +
float sph_besself(unsigned int __n, float __x)
│ │ │ +
long double assoc_legendrel(unsigned int __l, unsigned int __m, long double __x)
│ │ │ +
__gnu_cxx::__promote< _Tp >::__type legendre(unsigned int __l, _Tp __x)
│ │ │ +
│ │ │ +
long double airy_bil(long double __x)
│ │ │ +
float ellint_2f(float __k, float __phi)
Return the incomplete elliptic integral of the second kind for float argument.
│ │ │ +
__gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp >::__type ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi)
Return the incomplete elliptic integral of the third kind .
│ │ │ +
long double ellint_2l(long double __k, long double __phi)
Return the incomplete elliptic integral of the second kind .
│ │ │ +
float cyl_neumannf(float __nu, float __x)
│ │ │ +
__gnu_cxx::__promote_2< _Tpa, _Tpb >::__type beta(_Tpa __a, _Tpb __b)
│ │ │ +
long double comp_ellint_1l(long double __k)
│ │ │ +
float comp_ellint_3f(float __k, float __nu)
Return the complete elliptic integral of the third kind for float modulus k.
│ │ │ +
float sph_neumannf(unsigned int __n, float __x)
│ │ │ +
__gnu_cxx::__promote< _Tp >::__type expint(_Tp __x)
│ │ │ +
long double ellint_1l(long double __k, long double __phi)
│ │ │ +
float comp_ellint_1f(float __k)
│ │ │ +
long double airy_ail(long double __x)
│ │ │ +
long double betal(long double __a, long double __b)
│ │ │ +
__gnu_cxx::__promote_3< _Tpa, _Tpc, _Tp >::__type conf_hyperg(_Tpa __a, _Tpc __c, _Tp __x)
│ │ │ +
float hermitef(unsigned int __n, float __x)
│ │ │ +
__gnu_cxx::__promote< _Tp >::__type riemann_zeta(_Tp __s)
│ │ │ +
long double hypergl(long double __a, long double __b, long double __c, long double __x)
│ │ │ +
long double ellint_3l(long double __k, long double __nu, long double __phi)
Return the incomplete elliptic integral of the third kind .
│ │ │ +
float sph_legendref(unsigned int __l, unsigned int __m, float __theta)
│ │ │ +
__gnu_cxx::__promote< _Tp >::__type sph_neumann(unsigned int __n, _Tp __x)
│ │ │ +
float cyl_bessel_if(float __nu, float __x)
│ │ │ +
long double laguerrel(unsigned int __n, long double __x)
│ │ │ +
long double cyl_bessel_il(long double __nu, long double __x)
│ │ │ +
__gnu_cxx::__promote< _Tp >::__type assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x)
│ │ │ +
float conf_hypergf(float __a, float __c, float __x)
│ │ │ +
__gnu_cxx::__promote_2< _Tp, _Tpn >::__type comp_ellint_3(_Tp __k, _Tpn __nu)
│ │ │ +
__gnu_cxx::__promote< _Tp >::__type sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta)
│ │ │ +
long double cyl_bessel_kl(long double __nu, long double __x)
│ │ │ +
float hypergf(float __a, float __b, float __c, float __x)
│ │ │ +
__gnu_cxx::__promote< _Tp >::__type airy_ai(_Tp __x)
│ │ │ +
long double assoc_laguerrel(unsigned int __n, unsigned int __m, long double __x)
│ │ │ +
__gnu_cxx::__promote< _Tp >::__type hermite(unsigned int __n, _Tp __x)
│ │ │ +
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_j(_Tpnu __nu, _Tp __x)
│ │ │ +
float laguerref(unsigned int __n, float __x)
│ │ │ +
long double cyl_bessel_jl(long double __nu, long double __x)
│ │ │ +
__gnu_cxx::__promote< _Tp >::__type comp_ellint_1(_Tp __k)
│ │ │ +
__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_2(_Tp __k, _Tpp __phi)
│ │ │ +
__gnu_cxx::__promote< _Tp >::__type laguerre(unsigned int __n, _Tp __x)
│ │ │ +
float legendref(unsigned int __l, float __x)
│ │ │ +
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_i(_Tpnu __nu, _Tp __x)
│ │ │ +
float airy_aif(float __x)
│ │ │ +
__gnu_cxx::__promote< _Tp >::__type assoc_legendre(unsigned int __l, unsigned int __m, _Tp __x)
│ │ │ +
float assoc_laguerref(unsigned int __n, unsigned int __m, float __x)
│ │ │ +
long double cyl_neumannl(long double __nu, long double __x)
│ │ │ +
float riemann_zetaf(float __s)
│ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ -
constexpr iterator_traits< _InputIterator >::difference_type distance(_InputIterator __first, _InputIterator __last)
A generalization of pointer arithmetic.
│ │ │ -
constexpr auto cend(const _Container &__cont) noexcept(noexcept(std::end(__cont))) -> decltype(std::end(__cont))
Return an iterator pointing to one past the last element of the const container.
│ │ │ -
constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
Return the size of a container.
│ │ │ -
constexpr void advance(_InputIterator &__i, _Distance __n)
A generalization of pointer arithmetic.
│ │ │ -
void _Destroy(_ForwardIterator __first, _ForwardIterator __last, _Allocator &__alloc)
│ │ │ -
constexpr auto cbegin(const _Container &__cont) noexcept(noexcept(std::begin(__cont))) -> decltype(std::begin(__cont))
Return an iterator pointing to the first element of the const container.
│ │ │ -
Primary class template hash.
│ │ │ -
│ │ │ -
│ │ │ -
│ │ │ -
Forward iterators support a superset of input iterator operations.
│ │ │ -
│ │ │ -
A standard container which offers fixed time access to individual elements in any order.
│ │ │ -
vector()=default
Creates a vector with no elements.
│ │ │ -
pointer _M_allocate_and_copy(size_type __n, _ForwardIterator __first, _ForwardIterator __last)
│ │ │ -
│ │ │ -
size_type max_size() const noexcept
│ │ │ -
void reserve(size_type __n)
Attempt to preallocate enough memory for specified number of elements.
│ │ │ -
vector & operator=(const vector &__x)
Vector assignment operator.
│ │ │ -
iterator begin() noexcept
│ │ │ -
iterator insert(const_iterator __position, const value_type &__x)
Inserts given value into vector before specified iterator.
│ │ │ -
│ │ │ -
size_type size() const noexcept
│ │ │ -
size_type capacity() const noexcept
│ │ │ +
GNU extensions for public use.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,13 +1,13 @@
│ │ │ │ libstdc++
│ │ │ │ -vector.tcc
│ │ │ │ +specfun.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// Vector implementation (out of line) -*- C++ -*-
│ │ │ │ +1// Mathematical Special Functions for -*- C++ -*-
│ │ │ │ 2
│ │ │ │ -3// Copyright (C) 2001-2021 Free Software Foundation, Inc.
│ │ │ │ +3// Copyright (C) 2006-2021 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,1111 +21,1655 @@
│ │ │ │ 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/*
│ │ │ │ -26 *
│ │ │ │ -27 * Copyright (c) 1994
│ │ │ │ -28 * Hewlett-Packard Company
│ │ │ │ -29 *
│ │ │ │ -30 * Permission to use, copy, modify, distribute and sell this software
│ │ │ │ -31 * and its documentation for any purpose is hereby granted without fee,
│ │ │ │ -32 * provided that the above copyright notice appear in all copies and
│ │ │ │ -33 * that both that copyright notice and this permission notice appear
│ │ │ │ -34 * in supporting documentation. Hewlett-Packard Company makes no
│ │ │ │ -35 * representations about the suitability of this software for any
│ │ │ │ -36 * purpose. It is provided "as is" without express or implied warranty.
│ │ │ │ -37 *
│ │ │ │ -38 *
│ │ │ │ -39 * Copyright (c) 1996
│ │ │ │ -40 * Silicon Graphics Computer Systems, Inc.
│ │ │ │ -41 *
│ │ │ │ -42 * Permission to use, copy, modify, distribute and sell this software
│ │ │ │ -43 * and its documentation for any purpose is hereby granted without fee,
│ │ │ │ -44 * provided that the above copyright notice appear in all copies and
│ │ │ │ -45 * that both that copyright notice and this permission notice appear
│ │ │ │ -46 * in supporting documentation. Silicon Graphics makes no
│ │ │ │ -47 * representations about the suitability of this software for any
│ │ │ │ -48 * purpose. It is provided "as is" without express or implied warranty.
│ │ │ │ -49 */
│ │ │ │ -50
│ │ │ │ -51/** @file bits/vector.tcc
│ │ │ │ -52 * This is an internal header file, included by other library headers.
│ │ │ │ -53 * Do not attempt to use it directly. @headername{vector}
│ │ │ │ -54 */
│ │ │ │ -55
│ │ │ │ -56#ifndef _VECTOR_TCC
│ │ │ │ -57#define _VECTOR_TCC 1
│ │ │ │ -58
│ │ │ │ -59namespace _s_t_d _GLIBCXX_VISIBILITY(default)
│ │ │ │ -60{
│ │ │ │ -61_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ -62_GLIBCXX_BEGIN_NAMESPACE_CONTAINER
│ │ │ │ -63
│ │ │ │ -64 template
│ │ │ │ -65 void
│ │ │ │ -_6_6 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -67_ _r_e_s_e_r_v_e(size_type __n)
│ │ │ │ -68 {
│ │ │ │ -69 if (__n > this->_m_a_x___s_i_z_e())
│ │ │ │ -70 __throw_length_error(__N("vector::reserve"));
│ │ │ │ -71 if (this->_c_a_p_a_c_i_t_y() < __n)
│ │ │ │ -72 {
│ │ │ │ -73 const size_type __old_size = _s_i_z_e();
│ │ │ │ -74 pointer __tmp;
│ │ │ │ -75#if __cplusplus >= 201103L
│ │ │ │ -76 if _GLIBCXX17_CONSTEXPR (_S_use_relocate())
│ │ │ │ -77 {
│ │ │ │ -78 __tmp = this->_M_allocate(__n);
│ │ │ │ -79 _S_relocate(this->_M_impl._M_start, this->_M_impl._M_finish,
│ │ │ │ -80 __tmp, _M_get_Tp_allocator());
│ │ │ │ -81 }
│ │ │ │ -82 else
│ │ │ │ -83#endif
│ │ │ │ -84 {
│ │ │ │ -85 __tmp = ___M___a_l_l_o_c_a_t_e___a_n_d___c_o_p_y(__n,
│ │ │ │ -86 _GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(this->_M_impl._M_start),
│ │ │ │ -87 _GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(this->_M_impl._M_finish));
│ │ │ │ -88 _s_t_d_:_:___D_e_s_t_r_o_y(this->_M_impl._M_start, this->_M_impl._M_finish,
│ │ │ │ -89 _M_get_Tp_allocator());
│ │ │ │ -90 }
│ │ │ │ -91 _GLIBCXX_ASAN_ANNOTATE_REINIT;
│ │ │ │ -92 _M_deallocate(this->_M_impl._M_start,
│ │ │ │ -93 this->_M_impl._M_end_of_storage
│ │ │ │ -94 - this->_M_impl._M_start);
│ │ │ │ -95 this->_M_impl._M_start = __tmp;
│ │ │ │ -96 this->_M_impl._M_finish = __tmp + __old_size;
│ │ │ │ -97 this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
│ │ │ │ -98 }
│ │ │ │ -99 }
│ │ │ │ -100
│ │ │ │ -101#if __cplusplus >= 201103L
│ │ │ │ -102 template
│ │ │ │ -103 template
│ │ │ │ -104#if __cplusplus > 201402L
│ │ │ │ -105 typename vector<_Tp, _Alloc>::reference
│ │ │ │ -106#else
│ │ │ │ -107 void
│ │ │ │ -108#endif
│ │ │ │ -109 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -110_ _e_m_p_l_a_c_e___b_a_c_k(_Args&&... __args)
│ │ │ │ -111 {
│ │ │ │ -112 if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
│ │ │ │ -113 {
│ │ │ │ -114 _GLIBCXX_ASAN_ANNOTATE_GROW(1);
│ │ │ │ -115 _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
│ │ │ │ -116 _s_t_d_:_:_f_o_r_w_a_r_d_<___A_r_g_s_>(__args)...);
│ │ │ │ -117 ++this->_M_impl._M_finish;
│ │ │ │ -118 _GLIBCXX_ASAN_ANNOTATE_GREW(1);
│ │ │ │ -119 }
│ │ │ │ -120 else
│ │ │ │ -121 _M_realloc_insert(_e_n_d(), _s_t_d_:_:_f_o_r_w_a_r_d_<___A_r_g_s_>(__args)...);
│ │ │ │ -122#if __cplusplus > 201402L
│ │ │ │ -123 return back();
│ │ │ │ -124#endif
│ │ │ │ -125 }
│ │ │ │ -126#endif
│ │ │ │ -127
│ │ │ │ -128 template
│ │ │ │ -129 typename vector<_Tp, _Alloc>::iterator
│ │ │ │ -_1_3_0 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>::
│ │ │ │ -131#if __cplusplus >= 201103L
│ │ │ │ -132 _i_n_s_e_r_t(const_iterator __position, const value_type& __x)
│ │ │ │ -133#else
│ │ │ │ -134 _i_n_s_e_r_t(iterator __position, const value_type& __x)
│ │ │ │ -135#endif
│ │ │ │ -136 {
│ │ │ │ -137 const size_type __n = __position - _b_e_g_i_n();
│ │ │ │ -138 if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
│ │ │ │ -139 if (__position == _e_n_d())
│ │ │ │ -140 {
│ │ │ │ -141 _GLIBCXX_ASAN_ANNOTATE_GROW(1);
│ │ │ │ -142 _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
│ │ │ │ -143 __x);
│ │ │ │ -144 ++this->_M_impl._M_finish;
│ │ │ │ -145 _GLIBCXX_ASAN_ANNOTATE_GREW(1);
│ │ │ │ -146 }
│ │ │ │ -147 else
│ │ │ │ -148 {
│ │ │ │ -149#if __cplusplus >= 201103L
│ │ │ │ -150 const auto __pos = _b_e_g_i_n() + (__position - _c_b_e_g_i_n());
│ │ │ │ -151 // __x could be an existing element of this vector, so make a
│ │ │ │ -152 // copy of it before _M_insert_aux moves elements around.
│ │ │ │ -153 _Temporary_value __x_copy(this, __x);
│ │ │ │ -154 _M_insert_aux(__pos, _s_t_d_:_:_m_o_v_e(__x_copy._M_val()));
│ │ │ │ -155#else
│ │ │ │ -156 _M_insert_aux(__position, __x);
│ │ │ │ -157#endif
│ │ │ │ -158 }
│ │ │ │ -159 else
│ │ │ │ -160#if __cplusplus >= 201103L
│ │ │ │ -161 _M_realloc_insert(_b_e_g_i_n() + (__position - _c_b_e_g_i_n()), __x);
│ │ │ │ -162#else
│ │ │ │ -163 _M_realloc_insert(__position, __x);
│ │ │ │ -164#endif
│ │ │ │ -165
│ │ │ │ -166 return iterator(this->_M_impl._M_start + __n);
│ │ │ │ -167 }
│ │ │ │ -168
│ │ │ │ -169 template
│ │ │ │ -170 typename vector<_Tp, _Alloc>::iterator
│ │ │ │ -171 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -172_ ___M___e_r_a_s_e(_i_t_e_r_a_t_o_r __position)
│ │ │ │ -173 {
│ │ │ │ -174 if (__position + 1 != _e_n_d())
│ │ │ │ -175 _GLIBCXX_MOVE3(__position + 1, _e_n_d(), __position);
│ │ │ │ -176 --this->_M_impl._M_finish;
│ │ │ │ -177 _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish);
│ │ │ │ -178 _GLIBCXX_ASAN_ANNOTATE_SHRINK(1);
│ │ │ │ -179 return __position;
│ │ │ │ -180 }
│ │ │ │ -181
│ │ │ │ -182 template
│ │ │ │ -183 typename vector<_Tp, _Alloc>::iterator
│ │ │ │ -184 vector<_Tp, _Alloc>::
│ │ │ │ -185 _M_erase(iterator __first, iterator __last)
│ │ │ │ -186 {
│ │ │ │ -187 if (__first != __last)
│ │ │ │ -188 {
│ │ │ │ -189 if (__last != _e_n_d())
│ │ │ │ -190 _GLIBCXX_MOVE3(__last, _e_n_d(), __first);
│ │ │ │ -191 _M_erase_at_end(__first.base() + (_e_n_d() - __last));
│ │ │ │ -192 }
│ │ │ │ -193 return __first;
│ │ │ │ -194 }
│ │ │ │ -195
│ │ │ │ -196 template
│ │ │ │ -197 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>&
│ │ │ │ -_1_9_8 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -199_ _o_p_e_r_a_t_o_r_=(const _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>& __x)
│ │ │ │ -200 {
│ │ │ │ -201 if (&__x != this)
│ │ │ │ -202 {
│ │ │ │ -203 _GLIBCXX_ASAN_ANNOTATE_REINIT;
│ │ │ │ -204#if __cplusplus >= 201103L
│ │ │ │ -205 if (_Alloc_traits::_S_propagate_on_copy_assign())
│ │ │ │ -206 {
│ │ │ │ -207 if (!_Alloc_traits::_S_always_equal()
│ │ │ │ -208 && _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
│ │ │ │ -209 {
│ │ │ │ -210 // replacement allocator cannot free existing storage
│ │ │ │ -211 this->_c_l_e_a_r();
│ │ │ │ -212 _M_deallocate(this->_M_impl._M_start,
│ │ │ │ -213 this->_M_impl._M_end_of_storage
│ │ │ │ -214 - this->_M_impl._M_start);
│ │ │ │ -215 this->_M_impl._M_start = nullptr;
│ │ │ │ -216 this->_M_impl._M_finish = nullptr;
│ │ │ │ -217 this->_M_impl._M_end_of_storage = nullptr;
│ │ │ │ -218 }
│ │ │ │ -219 std::__alloc_on_copy(_M_get_Tp_allocator(),
│ │ │ │ -220 __x._M_get_Tp_allocator());
│ │ │ │ -221 }
│ │ │ │ -222#endif
│ │ │ │ -223 const size_type __xlen = __x._s_i_z_e();
│ │ │ │ -224 if (__xlen > _c_a_p_a_c_i_t_y())
│ │ │ │ -225 {
│ │ │ │ -226 pointer __tmp = ___M___a_l_l_o_c_a_t_e___a_n_d___c_o_p_y(__xlen, __x._b_e_g_i_n(),
│ │ │ │ -227 __x._e_n_d());
│ │ │ │ -228 _s_t_d_:_:___D_e_s_t_r_o_y(this->_M_impl._M_start, this->_M_impl._M_finish,
│ │ │ │ -229 _M_get_Tp_allocator());
│ │ │ │ -230 _M_deallocate(this->_M_impl._M_start,
│ │ │ │ -231 this->_M_impl._M_end_of_storage
│ │ │ │ -232 - this->_M_impl._M_start);
│ │ │ │ -233 this->_M_impl._M_start = __tmp;
│ │ │ │ -234 this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen;
│ │ │ │ -235 }
│ │ │ │ -236 else if (_s_i_z_e() >= __xlen)
│ │ │ │ -237 {
│ │ │ │ -238 _s_t_d_:_:___D_e_s_t_r_o_y(std::copy(__x._b_e_g_i_n(), __x._e_n_d(), _b_e_g_i_n()),
│ │ │ │ -239 _e_n_d(), _M_get_Tp_allocator());
│ │ │ │ -240 }
│ │ │ │ -241 else
│ │ │ │ -242 {
│ │ │ │ -243 std::copy(__x._M_impl._M_start, __x._M_impl._M_start + _s_i_z_e(),
│ │ │ │ -244 this->_M_impl._M_start);
│ │ │ │ -245 std::__uninitialized_copy_a(__x._M_impl._M_start + _s_i_z_e(),
│ │ │ │ -246 __x._M_impl._M_finish,
│ │ │ │ -247 this->_M_impl._M_finish,
│ │ │ │ -248 _M_get_Tp_allocator());
│ │ │ │ -249 }
│ │ │ │ -250 this->_M_impl._M_finish = this->_M_impl._M_start + __xlen;
│ │ │ │ -251 }
│ │ │ │ -252 return *this;
│ │ │ │ -253 }
│ │ │ │ -254
│ │ │ │ -255 template
│ │ │ │ -256 void
│ │ │ │ -257 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -258_ ___M___f_i_l_l___a_s_s_i_g_n(size_t __n, const _v_a_l_u_e___t_y_p_e& __val)
│ │ │ │ -259 {
│ │ │ │ -260 if (__n > capacity())
│ │ │ │ -261 {
│ │ │ │ -262 _v_e_c_t_o_r __tmp(__n, __val, _M_get_Tp_allocator());
│ │ │ │ -263 __tmp._M_impl._M_swap_data(this->_M_impl);
│ │ │ │ -264 }
│ │ │ │ -265 else if (__n > _s_i_z_e())
│ │ │ │ -266 {
│ │ │ │ -267 std::fill(_b_e_g_i_n(), _e_n_d(), __val);
│ │ │ │ -268 const size_type __add = __n - _s_i_z_e();
│ │ │ │ -269 _GLIBCXX_ASAN_ANNOTATE_GROW(__add);
│ │ │ │ -270 this->_M_impl._M_finish =
│ │ │ │ -271 std::__uninitialized_fill_n_a(this->_M_impl._M_finish,
│ │ │ │ -272 __add, __val, _M_get_Tp_allocator());
│ │ │ │ -273 _GLIBCXX_ASAN_ANNOTATE_GREW(__add);
│ │ │ │ -274 }
│ │ │ │ -275 else
│ │ │ │ -276 _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val));
│ │ │ │ -277 }
│ │ │ │ +25/** @file bits/specfun.h
│ │ │ │ +26 * This is an internal header file, included by other library headers.
│ │ │ │ +27 * Do not attempt to use it directly. @headername{cmath}
│ │ │ │ +28 */
│ │ │ │ +29
│ │ │ │ +30#ifndef _GLIBCXX_BITS_SPECFUN_H
│ │ │ │ +31#define _GLIBCXX_BITS_SPECFUN_H 1
│ │ │ │ +32
│ │ │ │ +33#pragma GCC visibility push(default)
│ │ │ │ +34
│ │ │ │ +35#include <_b_i_t_s_/_c_+_+_c_o_n_f_i_g_._h>
│ │ │ │ +36
│ │ │ │ +37#define __STDCPP_MATH_SPEC_FUNCS__ 201003L
│ │ │ │ +38
│ │ │ │ +39#define __cpp_lib_math_special_functions 201603L
│ │ │ │ +40
│ │ │ │ +41#if __cplusplus <= 201403L && __STDCPP_WANT_MATH_SPEC_FUNCS__ == 0
│ │ │ │ +42# error include and define __STDCPP_WANT_MATH_SPEC_FUNCS__
│ │ │ │ +43#endif
│ │ │ │ +44
│ │ │ │ +45#include <_b_i_t_s_/_s_t_l___a_l_g_o_b_a_s_e_._h>
│ │ │ │ +46#include <_l_i_m_i_t_s>
│ │ │ │ +47#include <_t_y_p_e___t_r_a_i_t_s>
│ │ │ │ +48
│ │ │ │ +49#include
│ │ │ │ +50#include
│ │ │ │ +51#include
│ │ │ │ +52#include
│ │ │ │ +53#include
│ │ │ │ +54#include
│ │ │ │ +55#include
│ │ │ │ +56#include
│ │ │ │ +57#include
│ │ │ │ +58#include
│ │ │ │ +59#include
│ │ │ │ +60
│ │ │ │ +61namespace _s_t_d _GLIBCXX_VISIBILITY(default)
│ │ │ │ +62{
│ │ │ │ +63_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ +64
│ │ │ │ +65 /**
│ │ │ │ +66 * @defgroup mathsf Mathematical Special Functions
│ │ │ │ +67 * @ingroup numerics
│ │ │ │ +68 *
│ │ │ │ +69 * @section mathsf_desc Mathematical Special Functions
│ │ │ │ +70 *
│ │ │ │ +71 * A collection of advanced mathematical special functions,
│ │ │ │ +72 * defined by ISO/IEC IS 29124 and then added to ISO C++ 2017.
│ │ │ │ +73 *
│ │ │ │ +74 *
│ │ │ │ +75 * @subsection mathsf_intro Introduction and History
│ │ │ │ +76 * The first significant library upgrade on the road to C++2011,
│ │ │ │ +77 *
│ │ │ │ +78 * TR1 , included a set of 23 mathematical functions that significantly
│ │ │ │ +79 * extended the standard transcendental functions inherited from C and
│ │ │ │ +declared
│ │ │ │ +80 * in @.
│ │ │ │ +81 *
│ │ │ │ +82 * Although most components from TR1 were eventually adopted for C++11 these
│ │ │ │ +83 * math functions were left behind out of concern for implementability.
│ │ │ │ +84 * The math functions were published as a separate international standard
│ │ │ │ +85 *
│ │ │ │ +86 * IS 29124 - Extensions to the C++ Library to Support Mathematical Special
│ │ │ │ +87 * Functions .
│ │ │ │ +88 *
│ │ │ │ +89 * For C++17 these functions were incorporated into the main standard.
│ │ │ │ +90 *
│ │ │ │ +91 * @subsection mathsf_contents Contents
│ │ │ │ +92 * The following functions are implemented in namespace @c std:
│ │ │ │ +93 * - @ref assoc_laguerre "assoc_laguerre - Associated Laguerre functions"
│ │ │ │ +94 * - @ref assoc_legendre "assoc_legendre - Associated Legendre functions"
│ │ │ │ +95 * - @ref beta "beta - Beta functions"
│ │ │ │ +96 * - @ref comp_ellint_1 "comp_ellint_1 - Complete elliptic functions of the
│ │ │ │ +first kind"
│ │ │ │ +97 * - @ref comp_ellint_2 "comp_ellint_2 - Complete elliptic functions of the
│ │ │ │ +second kind"
│ │ │ │ +98 * - @ref comp_ellint_3 "comp_ellint_3 - Complete elliptic functions of the
│ │ │ │ +third kind"
│ │ │ │ +99 * - @ref cyl_bessel_i "cyl_bessel_i - Regular modified cylindrical Bessel
│ │ │ │ +functions"
│ │ │ │ +100 * - @ref cyl_bessel_j "cyl_bessel_j - Cylindrical Bessel functions of the
│ │ │ │ +first kind"
│ │ │ │ +101 * - @ref cyl_bessel_k "cyl_bessel_k - Irregular modified cylindrical Bessel
│ │ │ │ +functions"
│ │ │ │ +102 * - @ref cyl_neumann "cyl_neumann - Cylindrical Neumann functions or
│ │ │ │ +Cylindrical Bessel functions of the second kind"
│ │ │ │ +103 * - @ref ellint_1 "ellint_1 - Incomplete elliptic functions of the first
│ │ │ │ +kind"
│ │ │ │ +104 * - @ref ellint_2 "ellint_2 - Incomplete elliptic functions of the second
│ │ │ │ +kind"
│ │ │ │ +105 * - @ref ellint_3 "ellint_3 - Incomplete elliptic functions of the third
│ │ │ │ +kind"
│ │ │ │ +106 * - @ref expint "expint - The exponential integral"
│ │ │ │ +107 * - @ref hermite "hermite - Hermite polynomials"
│ │ │ │ +108 * - @ref laguerre "laguerre - Laguerre functions"
│ │ │ │ +109 * - @ref legendre "legendre - Legendre polynomials"
│ │ │ │ +110 * - @ref riemann_zeta "riemann_zeta - The Riemann zeta function"
│ │ │ │ +111 * - @ref sph_bessel "sph_bessel - Spherical Bessel functions"
│ │ │ │ +112 * - @ref sph_legendre "sph_legendre - Spherical Legendre functions"
│ │ │ │ +113 * - @ref sph_neumann "sph_neumann - Spherical Neumann functions"
│ │ │ │ +114 *
│ │ │ │ +115 * The hypergeometric functions were stricken from the TR29124 and C++17
│ │ │ │ +116 * versions of this math library because of implementation concerns.
│ │ │ │ +117 * However, since they were in the TR1 version and since they are popular
│ │ │ │ +118 * we kept them as an extension in namespace @c __gnu_cxx:
│ │ │ │ +119 * - @ref __gnu_cxx::conf_hyperg "conf_hyperg - Confluent hypergeometric
│ │ │ │ +functions"
│ │ │ │ +120 * - @ref __gnu_cxx::hyperg "hyperg - Hypergeometric functions"
│ │ │ │ +121 *
│ │ │ │ +122 *
│ │ │ │ +123 *
│ │ │ │ +124 * @subsection mathsf_promotion Argument Promotion
│ │ │ │ +125 * The arguments suppled to the non-suffixed functions will be promoted
│ │ │ │ +126 * according to the following rules:
│ │ │ │ +127 * 1. If any argument intended to be floating point is given an integral
│ │ │ │ +value
│ │ │ │ +128 * That integral value is promoted to double.
│ │ │ │ +129 * 2. All floating point arguments are promoted up to the largest floating
│ │ │ │ +130 * point precision among them.
│ │ │ │ +131 *
│ │ │ │ +132 * @subsection mathsf_NaN NaN Arguments
│ │ │ │ +133 * If any of the floating point arguments supplied to these functions is
│ │ │ │ +134 * invalid or NaN (std::numeric_limits::quiet_NaN),
│ │ │ │ +135 * the value NaN is returned.
│ │ │ │ +136 *
│ │ │ │ +137 * @subsection mathsf_impl Implementation
│ │ │ │ +138 *
│ │ │ │ +139 * We strive to implement the underlying math with type generic algorithms
│ │ │ │ +140 * to the greatest extent possible. In practice, the functions are thin
│ │ │ │ +141 * wrappers that dispatch to function templates. Type dependence is
│ │ │ │ +142 * controlled with std::numeric_limits and functions thereof.
│ │ │ │ +143 *
│ │ │ │ +144 * We don't promote @c float to @c double or @c double to long double
│ │ │ │ +tt>
│ │ │ │ +145 * reflexively. The goal is for @c float functions to operate more quickly,
│ │ │ │ +146 * at the cost of @c float accuracy and possibly a smaller domain of
│ │ │ │ +validity.
│ │ │ │ +147 * Similaryly, long double should give you more dynamic range
│ │ │ │ +148 * and slightly more pecision than @c double on many systems.
│ │ │ │ +149 *
│ │ │ │ +150 * @subsection mathsf_testing Testing
│ │ │ │ +151 *
│ │ │ │ +152 * These functions have been tested against equivalent implementations
│ │ │ │ +153 * from the
│ │ │ │ +154 * Gnu Scientific Library, GSL and
│ │ │ │ +155 * Boost
│ │ │ │ +156 * and the ratio
│ │ │ │ +157 * @f[
│ │ │ │ +158 * \frac{|f - f_{test}|}{|f_{test}|}
│ │ │ │ +159 * @f]
│ │ │ │ +160 * is generally found to be within 10-15 for 64-bit double on
│ │ │ │ +161 * linux-x86_64 systems over most of the ranges of validity.
│ │ │ │ +162 *
│ │ │ │ +163 * @todo Provide accuracy comparisons on a per-function basis for a small
│ │ │ │ +164 * number of targets.
│ │ │ │ +165 *
│ │ │ │ +166 * @subsection mathsf_bibliography General Bibliography
│ │ │ │ +167 *
│ │ │ │ +168 * @see Abramowitz and Stegun: Handbook of Mathematical Functions,
│ │ │ │ +169 * with Formulas, Graphs, and Mathematical Tables
│ │ │ │ +170 * Edited by Milton Abramowitz and Irene A. Stegun,
│ │ │ │ +171 * National Bureau of Standards Applied Mathematics Series - 55
│ │ │ │ +172 * Issued June 1964, Tenth Printing, December 1972, with corrections
│ │ │ │ +173 * Electronic versions of A&S abound including both pdf and navigable html.
│ │ │ │ +174 * @see for example http://people.math.sfu.ca/~cbm/aands/
│ │ │ │ +175 *
│ │ │ │ +176 * @see The old A&S has been redone as the
│ │ │ │ +177 * NIST Digital Library of Mathematical Functions: http://dlmf.nist.gov/
│ │ │ │ +178 * This version is far more navigable and includes more recent work.
│ │ │ │ +179 *
│ │ │ │ +180 * @see An Atlas of Functions: with Equator, the Atlas Function Calculator
│ │ │ │ +181 * 2nd Edition, by Oldham, Keith B., Myland, Jan, Spanier, Jerome
│ │ │ │ +182 *
│ │ │ │ +183 * @see Asymptotics and Special Functions by Frank W. J. Olver,
│ │ │ │ +184 * Academic Press, 1974
│ │ │ │ +185 *
│ │ │ │ +186 * @see Numerical Recipes in C, The Art of Scientific Computing,
│ │ │ │ +187 * by William H. Press, Second Ed., Saul A. Teukolsky,
│ │ │ │ +188 * William T. Vetterling, and Brian P. Flannery,
│ │ │ │ +189 * Cambridge University Press, 1992
│ │ │ │ +190 *
│ │ │ │ +191 * @see The Special Functions and Their Approximations: Volumes 1 and 2,
│ │ │ │ +192 * by Yudell L. Luke, Academic Press, 1969
│ │ │ │ +193 *
│ │ │ │ +194 * @{
│ │ │ │ +195 */
│ │ │ │ +196
│ │ │ │ +197 // Associated Laguerre polynomials
│ │ │ │ +198
│ │ │ │ +199 /**
│ │ │ │ +200 * Return the associated Laguerre polynomial of order @c n,
│ │ │ │ +201 * degree @c m: @f$ L_n^m(x) @f$ for @c float argument.
│ │ │ │ +202 *
│ │ │ │ +203 * @see assoc_laguerre for more details.
│ │ │ │ +204 */
│ │ │ │ +205 inline float
│ │ │ │ +_2_0_6 _a_s_s_o_c___l_a_g_u_e_r_r_e_f(unsigned int __n, unsigned int __m, float __x)
│ │ │ │ +207 { return __detail::__assoc_laguerre(__n, __m, __x); }
│ │ │ │ +208
│ │ │ │ +209 /**
│ │ │ │ +210 * Return the associated Laguerre polynomial of order @c n,
│ │ │ │ +211 * degree @c m: @f$ L_n^m(x) @f$.
│ │ │ │ +212 *
│ │ │ │ +213 * @see assoc_laguerre for more details.
│ │ │ │ +214 */
│ │ │ │ +215 inline long double
│ │ │ │ +_2_1_6 _a_s_s_o_c___l_a_g_u_e_r_r_e_l(unsigned int __n, unsigned int __m, long double __x)
│ │ │ │ +217 { return __detail::__assoc_laguerre(__n, __m, __x); }
│ │ │ │ +218
│ │ │ │ +219 /**
│ │ │ │ +220 * Return the associated Laguerre polynomial of nonnegative order @c n,
│ │ │ │ +221 * nonnegative degree @c m and real argument @c x: @f$ L_n^m(x) @f$.
│ │ │ │ +222 *
│ │ │ │ +223 * The associated Laguerre function of real degree @f$ \alpha @f$,
│ │ │ │ +224 * @f$ L_n^\alpha(x) @f$, is defined by
│ │ │ │ +225 * @f[
│ │ │ │ +226 * L_n^\alpha(x) = \frac{(\alpha + 1)_n}{n!}
│ │ │ │ +227 * {}_1F_1(-n; \alpha + 1; x)
│ │ │ │ +228 * @f]
│ │ │ │ +229 * where @f$ (\alpha)_n @f$ is the Pochhammer symbol and
│ │ │ │ +230 * @f$ {}_1F_1(a; c; x) @f$ is the confluent hypergeometric function.
│ │ │ │ +231 *
│ │ │ │ +232 * The associated Laguerre polynomial is defined for integral
│ │ │ │ +233 * degree @f$ \alpha = m @f$ by:
│ │ │ │ +234 * @f[
│ │ │ │ +235 * L_n^m(x) = (-1)^m \frac{d^m}{dx^m} L_{n + m}(x)
│ │ │ │ +236 * @f]
│ │ │ │ +237 * where the Laguerre polynomial is defined by:
│ │ │ │ +238 * @f[
│ │ │ │ +239 * L_n(x) = \frac{e^x}{n!} \frac{d^n}{dx^n} (x^ne^{-x})
│ │ │ │ +240 * @f]
│ │ │ │ +241 * and @f$ x >= 0 @f$.
│ │ │ │ +242 * @see laguerre for details of the Laguerre function of degree @c n
│ │ │ │ +243 *
│ │ │ │ +244 * @tparam _Tp The floating-point type of the argument @c __x.
│ │ │ │ +245 * @param __n The order of the Laguerre function, __n >= 0 .
│ │ │ │ +246 * @param __m The degree of the Laguerre function, __m >= 0 .
│ │ │ │ +247 * @param __x The argument of the Laguerre function, __x >= 0 .
│ │ │ │ +248 * @throw std::domain_error if __x < 0 .
│ │ │ │ +249 */
│ │ │ │ +250 template
│ │ │ │ +251 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ │ +_2_5_2 _a_s_s_o_c___l_a_g_u_e_r_r_e(unsigned int __n, unsigned int __m, _Tp __x)
│ │ │ │ +253 {
│ │ │ │ +254 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ │ +255 return __detail::__assoc_laguerre<__type>(__n, __m, __x);
│ │ │ │ +256 }
│ │ │ │ +257
│ │ │ │ +258 // Associated Legendre functions
│ │ │ │ +259
│ │ │ │ +260 /**
│ │ │ │ +261 * Return the associated Legendre function of degree @c l and order @c m
│ │ │ │ +262 * for @c float argument.
│ │ │ │ +263 *
│ │ │ │ +264 * @see assoc_legendre for more details.
│ │ │ │ +265 */
│ │ │ │ +266 inline float
│ │ │ │ +_2_6_7 _a_s_s_o_c___l_e_g_e_n_d_r_e_f(unsigned int __l, unsigned int __m, float __x)
│ │ │ │ +268 { return __detail::__assoc_legendre_p(__l, __m, __x); }
│ │ │ │ +269
│ │ │ │ +270 /**
│ │ │ │ +271 * Return the associated Legendre function of degree @c l and order @c m.
│ │ │ │ +272 *
│ │ │ │ +273 * @see assoc_legendre for more details.
│ │ │ │ +274 */
│ │ │ │ +275 inline long double
│ │ │ │ +_2_7_6 _a_s_s_o_c___l_e_g_e_n_d_r_e_l(unsigned int __l, unsigned int __m, long double __x)
│ │ │ │ +277 { return __detail::__assoc_legendre_p(__l, __m, __x); }
│ │ │ │ 278
│ │ │ │ -279 template
│ │ │ │ -280 template
│ │ │ │ -281 void
│ │ │ │ -282 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -283_ ___M___a_s_s_i_g_n___a_u_x(_InputIterator __first, _InputIterator __last,
│ │ │ │ -284 std::input_iterator_tag)
│ │ │ │ -285 {
│ │ │ │ -286 pointer __cur(this->_M_impl._M_start);
│ │ │ │ -287 for (; __first != __last && __cur != this->_M_impl._M_finish;
│ │ │ │ -288 ++__cur, (void)++__first)
│ │ │ │ -289 *__cur = *__first;
│ │ │ │ -290 if (__first == __last)
│ │ │ │ -291 _M_erase_at_end(__cur);
│ │ │ │ -292 else
│ │ │ │ -293 _M_range_insert(_e_n_d(), __first, __last,
│ │ │ │ -294 _s_t_d_:_:_____i_t_e_r_a_t_o_r___c_a_t_e_g_o_r_y(__first));
│ │ │ │ -295 }
│ │ │ │ -296
│ │ │ │ -297 template
│ │ │ │ -298 template
│ │ │ │ -299 void
│ │ │ │ -300 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -301_ ___M___a_s_s_i_g_n___a_u_x(_ForwardIterator __first, _ForwardIterator __last,
│ │ │ │ -302 std::forward_iterator_tag)
│ │ │ │ -303 {
│ │ │ │ -304 const _s_i_z_e___t_y_p_e __len = _s_t_d_:_:_d_i_s_t_a_n_c_e(__first, __last);
│ │ │ │ +279
│ │ │ │ +280 /**
│ │ │ │ +281 * Return the associated Legendre function of degree @c l and order @c m.
│ │ │ │ +282 *
│ │ │ │ +283 * The associated Legendre function is derived from the Legendre function
│ │ │ │ +284 * @f$ P_l(x) @f$ by the Rodrigues formula:
│ │ │ │ +285 * @f[
│ │ │ │ +286 * P_l^m(x) = (1 - x^2)^{m/2}\frac{d^m}{dx^m}P_l(x)
│ │ │ │ +287 * @f]
│ │ │ │ +288 * @see legendre for details of the Legendre function of degree @c l
│ │ │ │ +289 *
│ │ │ │ +290 * @tparam _Tp The floating-point type of the argument @c __x.
│ │ │ │ +291 * @param __l The degree __l >= 0 .
│ │ │ │ +292 * @param __m The order __m <= l .
│ │ │ │ +293 * @param __x The argument, abs(__x) <= 1 .
│ │ │ │ +294 * @throw std::domain_error if abs(__x) > 1 .
│ │ │ │ +295 */
│ │ │ │ +296 template
│ │ │ │ +297 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ │ +_2_9_8 _a_s_s_o_c___l_e_g_e_n_d_r_e(unsigned int __l, unsigned int __m, _Tp __x)
│ │ │ │ +299 {
│ │ │ │ +300 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ │ +301 return __detail::__assoc_legendre_p<__type>(__l, __m, __x);
│ │ │ │ +302 }
│ │ │ │ +303
│ │ │ │ +304 // Beta functions
│ │ │ │ 305
│ │ │ │ -306 if (__len > capacity())
│ │ │ │ -307 {
│ │ │ │ -308 _S_check_init_len(__len, _M_get_Tp_allocator());
│ │ │ │ -309 pointer __tmp(_M_allocate_and_copy(__len, __first, __last));
│ │ │ │ -310 _s_t_d_:_:___D_e_s_t_r_o_y(this->_M_impl._M_start, this->_M_impl._M_finish,
│ │ │ │ -311 _M_get_Tp_allocator());
│ │ │ │ -312 _GLIBCXX_ASAN_ANNOTATE_REINIT;
│ │ │ │ -313 _M_deallocate(this->_M_impl._M_start,
│ │ │ │ -314 this->_M_impl._M_end_of_storage
│ │ │ │ -315 - this->_M_impl._M_start);
│ │ │ │ -316 this->_M_impl._M_start = __tmp;
│ │ │ │ -317 this->_M_impl._M_finish = this->_M_impl._M_start + __len;
│ │ │ │ -318 this->_M_impl._M_end_of_storage = this->_M_impl._M_finish;
│ │ │ │ -319 }
│ │ │ │ -320 else if (_s_i_z_e() >= __len)
│ │ │ │ -321 _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start));
│ │ │ │ -322 else
│ │ │ │ -323 {
│ │ │ │ -324 _ForwardIterator __mid = __first;
│ │ │ │ -325 _s_t_d_:_:_a_d_v_a_n_c_e(__mid, _s_i_z_e());
│ │ │ │ -326 std::copy(__first, __mid, this->_M_impl._M_start);
│ │ │ │ -327 const _s_i_z_e___t_y_p_e __attribute__((__unused__)) __n = __len - _s_i_z_e();
│ │ │ │ -328 _GLIBCXX_ASAN_ANNOTATE_GROW(__n);
│ │ │ │ -329 this->_M_impl._M_finish =
│ │ │ │ -330 std::__uninitialized_copy_a(__mid, __last,
│ │ │ │ -331 this->_M_impl._M_finish,
│ │ │ │ -332 _M_get_Tp_allocator());
│ │ │ │ -333 _GLIBCXX_ASAN_ANNOTATE_GREW(__n);
│ │ │ │ -334 }
│ │ │ │ -335 }
│ │ │ │ -336
│ │ │ │ -337#if __cplusplus >= 201103L
│ │ │ │ -338 template
│ │ │ │ -339 auto
│ │ │ │ -340 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -341_ ___M___i_n_s_e_r_t___r_v_a_l(const_iterator __position, _v_a_l_u_e___t_y_p_e&& __v) -> _i_t_e_r_a_t_o_r
│ │ │ │ -342 {
│ │ │ │ -343 const auto __n = __position - _c_b_e_g_i_n();
│ │ │ │ -344 if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
│ │ │ │ -345 if (__position == _c_e_n_d())
│ │ │ │ -346 {
│ │ │ │ -347 _GLIBCXX_ASAN_ANNOTATE_GROW(1);
│ │ │ │ -348 _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
│ │ │ │ -349 _s_t_d_:_:_m_o_v_e(__v));
│ │ │ │ -350 ++this->_M_impl._M_finish;
│ │ │ │ -351 _GLIBCXX_ASAN_ANNOTATE_GREW(1);
│ │ │ │ -352 }
│ │ │ │ -353 else
│ │ │ │ -354 _M_insert_aux(_b_e_g_i_n() + __n, _s_t_d_:_:_m_o_v_e(__v));
│ │ │ │ -355 else
│ │ │ │ -356 _M_realloc_insert(_b_e_g_i_n() + __n, _s_t_d_:_:_m_o_v_e(__v));
│ │ │ │ -357
│ │ │ │ -358 return _i_t_e_r_a_t_o_r(this->_M_impl._M_start + __n);
│ │ │ │ -359 }
│ │ │ │ +306 /**
│ │ │ │ +307 * Return the beta function, @f$ B(a,b) @f$, for @c float parameters @c a,
│ │ │ │ +@c b.
│ │ │ │ +308 *
│ │ │ │ +309 * @see beta for more details.
│ │ │ │ +310 */
│ │ │ │ +311 inline float
│ │ │ │ +_3_1_2 _b_e_t_a_f(float __a, float __b)
│ │ │ │ +313 { return __detail::__beta(__a, __b); }
│ │ │ │ +314
│ │ │ │ +315 /**
│ │ │ │ +316 * Return the beta function, @f$B(a,b)@f$, for long double
│ │ │ │ +317 * parameters @c a, @c b.
│ │ │ │ +318 *
│ │ │ │ +319 * @see beta for more details.
│ │ │ │ +320 */
│ │ │ │ +321 inline long double
│ │ │ │ +_3_2_2 _b_e_t_a_l(long double __a, long double __b)
│ │ │ │ +323 { return __detail::__beta(__a, __b); }
│ │ │ │ +324
│ │ │ │ +325 /**
│ │ │ │ +326 * Return the beta function, @f$B(a,b)@f$, for real parameters @c a, @c b.
│ │ │ │ +327 *
│ │ │ │ +328 * The beta function is defined by
│ │ │ │ +329 * @f[
│ │ │ │ +330 * B(a,b) = \int_0^1 t^{a - 1} (1 - t)^{b - 1} dt
│ │ │ │ +331 * = \frac{\Gamma(a)\Gamma(b)}{\Gamma(a+b)}
│ │ │ │ +332 * @f]
│ │ │ │ +333 * where @f$ a > 0 @f$ and @f$ b > 0 @f$
│ │ │ │ +334 *
│ │ │ │ +335 * @tparam _Tpa The floating-point type of the parameter @c __a.
│ │ │ │ +336 * @tparam _Tpb The floating-point type of the parameter @c __b.
│ │ │ │ +337 * @param __a The first argument of the beta function, __a > 0 .
│ │ │ │ +338 * @param __b The second argument of the beta function, __b > 0 .
│ │ │ │ +339 * @throw std::domain_error if __a < 0 or __b < 0 .
│ │ │ │ +340 */
│ │ │ │ +341 template
│ │ │ │ +342 inline typename __gnu_cxx::__promote_2<_Tpa, _Tpb>::__type
│ │ │ │ +_3_4_3 _b_e_t_a(_Tpa __a, _Tpb __b)
│ │ │ │ +344 {
│ │ │ │ +345 typedef typename __gnu_cxx::__promote_2<_Tpa, _Tpb>::__type __type;
│ │ │ │ +346 return __detail::__beta<__type>(__a, __b);
│ │ │ │ +347 }
│ │ │ │ +348
│ │ │ │ +349 // Complete elliptic integrals of the first kind
│ │ │ │ +350
│ │ │ │ +351 /**
│ │ │ │ +352 * Return the complete elliptic integral of the first kind @f$ E(k) @f$
│ │ │ │ +353 * for @c float modulus @c k.
│ │ │ │ +354 *
│ │ │ │ +355 * @see comp_ellint_1 for details.
│ │ │ │ +356 */
│ │ │ │ +357 inline float
│ │ │ │ +_3_5_8 _c_o_m_p___e_l_l_i_n_t___1_f(float __k)
│ │ │ │ +359 { return __detail::__comp_ellint_1(__k); }
│ │ │ │ 360
│ │ │ │ -361 template
│ │ │ │ -362 template
│ │ │ │ -363 auto
│ │ │ │ -364 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -365_ ___M___e_m_p_l_a_c_e___a_u_x(const_iterator __position, _Args&&... __args)
│ │ │ │ -366 -> _i_t_e_r_a_t_o_r
│ │ │ │ -367 {
│ │ │ │ -368 const auto __n = __position - _c_b_e_g_i_n();
│ │ │ │ -369 if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
│ │ │ │ -370 if (__position == _c_e_n_d())
│ │ │ │ -371 {
│ │ │ │ -372 _GLIBCXX_ASAN_ANNOTATE_GROW(1);
│ │ │ │ -373 _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
│ │ │ │ -374 _s_t_d_:_:_f_o_r_w_a_r_d_<___A_r_g_s_>(__args)...);
│ │ │ │ -375 ++this->_M_impl._M_finish;
│ │ │ │ -376 _GLIBCXX_ASAN_ANNOTATE_GREW(1);
│ │ │ │ -377 }
│ │ │ │ -378 else
│ │ │ │ -379 {
│ │ │ │ -380 // We need to construct a temporary because something in __args...
│ │ │ │ -381 // could alias one of the elements of the container and so we
│ │ │ │ -382 // need to use it before _M_insert_aux moves elements around.
│ │ │ │ -383 _Temporary_value __tmp(this, _s_t_d_:_:_f_o_r_w_a_r_d_<___A_r_g_s_>(__args)...);
│ │ │ │ -384 _M_insert_aux(_b_e_g_i_n() + __n, _s_t_d_:_:_m_o_v_e(__tmp._M_val()));
│ │ │ │ -385 }
│ │ │ │ -386 else
│ │ │ │ -387 _M_realloc_insert(_b_e_g_i_n() + __n, _s_t_d_:_:_f_o_r_w_a_r_d_<___A_r_g_s_>(__args)...);
│ │ │ │ -388
│ │ │ │ -389 return _i_t_e_r_a_t_o_r(this->_M_impl._M_start + __n);
│ │ │ │ -390 }
│ │ │ │ -391
│ │ │ │ -392 template
│ │ │ │ -393 template
│ │ │ │ -394 void
│ │ │ │ -395 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -396_ ___M___i_n_s_e_r_t___a_u_x(_i_t_e_r_a_t_o_r __position, _Arg&& __arg)
│ │ │ │ -397#else
│ │ │ │ -398 template
│ │ │ │ -399 void
│ │ │ │ -400 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -401_ ___M___i_n_s_e_r_t___a_u_x(_i_t_e_r_a_t_o_r __position, const _Tp& __x)
│ │ │ │ -402#endif
│ │ │ │ -403 {
│ │ │ │ -404 _GLIBCXX_ASAN_ANNOTATE_GROW(1);
│ │ │ │ -405 _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
│ │ │ │ -406 _GLIBCXX_MOVE(*(this->_M_impl._M_finish - 1)));
│ │ │ │ -407 ++this->_M_impl._M_finish;
│ │ │ │ -408 _GLIBCXX_ASAN_ANNOTATE_GREW(1);
│ │ │ │ -409#if __cplusplus < 201103L
│ │ │ │ -410 _Tp __x_copy = __x;
│ │ │ │ -411#endif
│ │ │ │ -412 _GLIBCXX_MOVE_BACKWARD3(__position.base(),
│ │ │ │ -413 this->_M_impl._M_finish - 2,
│ │ │ │ -414 this->_M_impl._M_finish - 1);
│ │ │ │ -415#if __cplusplus < 201103L
│ │ │ │ -416 *__position = __x_copy;
│ │ │ │ -417#else
│ │ │ │ -418 *__position = _s_t_d_:_:_f_o_r_w_a_r_d_<___A_r_g_>(__arg);
│ │ │ │ -419#endif
│ │ │ │ -420 }
│ │ │ │ -421
│ │ │ │ -422#if __cplusplus >= 201103L
│ │ │ │ -423 template
│ │ │ │ -424 template
│ │ │ │ -425 void
│ │ │ │ -426 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -427_ ___M___r_e_a_l_l_o_c___i_n_s_e_r_t(_i_t_e_r_a_t_o_r __position, _Args&&... __args)
│ │ │ │ -428#else
│ │ │ │ -429 template
│ │ │ │ -430 void
│ │ │ │ -431 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -432_ ___M___r_e_a_l_l_o_c___i_n_s_e_r_t(_i_t_e_r_a_t_o_r __position, const _Tp& __x)
│ │ │ │ -433#endif
│ │ │ │ -434 {
│ │ │ │ -435 const _s_i_z_e___t_y_p_e __len =
│ │ │ │ -436 _M_check_len(_s_i_z_e___t_y_p_e(1), "vector::_M_realloc_insert");
│ │ │ │ -437 pointer __old_start = this->_M_impl._M_start;
│ │ │ │ -438 pointer __old_finish = this->_M_impl._M_finish;
│ │ │ │ -439 const _s_i_z_e___t_y_p_e __elems_before = __position - _b_e_g_i_n();
│ │ │ │ -440 pointer __new_start(this->_M_allocate(__len));
│ │ │ │ -441 pointer __new_finish(__new_start);
│ │ │ │ -442 __try
│ │ │ │ -443 {
│ │ │ │ -444 // The order of the three operations is dictated by the C++11
│ │ │ │ -445 // case, where the moves could alter a new element belonging
│ │ │ │ -446 // to the existing vector. This is an issue only for callers
│ │ │ │ -447 // taking the element by lvalue ref (see last bullet of C++11
│ │ │ │ -448 // [res.on.arguments]).
│ │ │ │ -449 _Alloc_traits::construct(this->_M_impl,
│ │ │ │ -450 __new_start + __elems_before,
│ │ │ │ -451#if __cplusplus >= 201103L
│ │ │ │ -452 _s_t_d_:_:_f_o_r_w_a_r_d_<___A_r_g_s_>(__args)...);
│ │ │ │ -453#else
│ │ │ │ -454 __x);
│ │ │ │ -455#endif
│ │ │ │ -456 __new_finish = pointer();
│ │ │ │ -457
│ │ │ │ -458#if __cplusplus >= 201103L
│ │ │ │ -459 if _GLIBCXX17_CONSTEXPR (_S_use_relocate())
│ │ │ │ -460 {
│ │ │ │ -461 __new_finish = _S_relocate(__old_start, __position.base(),
│ │ │ │ -462 __new_start, _M_get_Tp_allocator());
│ │ │ │ -463
│ │ │ │ -464 ++__new_finish;
│ │ │ │ +361 /**
│ │ │ │ +362 * Return the complete elliptic integral of the first kind @f$ E(k) @f$
│ │ │ │ +363 * for long double modulus @c k.
│ │ │ │ +364 *
│ │ │ │ +365 * @see comp_ellint_1 for details.
│ │ │ │ +366 */
│ │ │ │ +367 inline long double
│ │ │ │ +_3_6_8 _c_o_m_p___e_l_l_i_n_t___1_l(long double __k)
│ │ │ │ +369 { return __detail::__comp_ellint_1(__k); }
│ │ │ │ +370
│ │ │ │ +371 /**
│ │ │ │ +372 * Return the complete elliptic integral of the first kind
│ │ │ │ +373 * @f$ K(k) @f$ for real modulus @c k.
│ │ │ │ +374 *
│ │ │ │ +375 * The complete elliptic integral of the first kind is defined as
│ │ │ │ +376 * @f[
│ │ │ │ +377 * K(k) = F(k,\pi/2) = \int_0^{\pi/2}\frac{d\theta}
│ │ │ │ +378 * {\sqrt{1 - k^2 sin^2\theta}}
│ │ │ │ +379 * @f]
│ │ │ │ +380 * where @f$ F(k,\phi) @f$ is the incomplete elliptic integral of the
│ │ │ │ +381 * first kind and the modulus @f$ |k| <= 1 @f$.
│ │ │ │ +382 * @see ellint_1 for details of the incomplete elliptic function
│ │ │ │ +383 * of the first kind.
│ │ │ │ +384 *
│ │ │ │ +385 * @tparam _Tp The floating-point type of the modulus @c __k.
│ │ │ │ +386 * @param __k The modulus, abs(__k) <= 1
│ │ │ │ +387 * @throw std::domain_error if abs(__k) > 1 .
│ │ │ │ +388 */
│ │ │ │ +389 template
│ │ │ │ +390 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ │ +_3_9_1 _c_o_m_p___e_l_l_i_n_t___1(_Tp __k)
│ │ │ │ +392 {
│ │ │ │ +393 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ │ +394 return __detail::__comp_ellint_1<__type>(__k);
│ │ │ │ +395 }
│ │ │ │ +396
│ │ │ │ +397 // Complete elliptic integrals of the second kind
│ │ │ │ +398
│ │ │ │ +399 /**
│ │ │ │ +400 * Return the complete elliptic integral of the second kind @f$ E(k) @f$
│ │ │ │ +401 * for @c float modulus @c k.
│ │ │ │ +402 *
│ │ │ │ +403 * @see comp_ellint_2 for details.
│ │ │ │ +404 */
│ │ │ │ +405 inline float
│ │ │ │ +_4_0_6 _c_o_m_p___e_l_l_i_n_t___2_f(float __k)
│ │ │ │ +407 { return __detail::__comp_ellint_2(__k); }
│ │ │ │ +408
│ │ │ │ +409 /**
│ │ │ │ +410 * Return the complete elliptic integral of the second kind @f$ E(k) @f$
│ │ │ │ +411 * for long double modulus @c k.
│ │ │ │ +412 *
│ │ │ │ +413 * @see comp_ellint_2 for details.
│ │ │ │ +414 */
│ │ │ │ +415 inline long double
│ │ │ │ +_4_1_6 _c_o_m_p___e_l_l_i_n_t___2_l(long double __k)
│ │ │ │ +417 { return __detail::__comp_ellint_2(__k); }
│ │ │ │ +418
│ │ │ │ +419 /**
│ │ │ │ +420 * Return the complete elliptic integral of the second kind @f$ E(k) @f$
│ │ │ │ +421 * for real modulus @c k.
│ │ │ │ +422 *
│ │ │ │ +423 * The complete elliptic integral of the second kind is defined as
│ │ │ │ +424 * @f[
│ │ │ │ +425 * E(k) = E(k,\pi/2) = \int_0^{\pi/2}\sqrt{1 - k^2 sin^2\theta}
│ │ │ │ +426 * @f]
│ │ │ │ +427 * where @f$ E(k,\phi) @f$ is the incomplete elliptic integral of the
│ │ │ │ +428 * second kind and the modulus @f$ |k| <= 1 @f$.
│ │ │ │ +429 * @see ellint_2 for details of the incomplete elliptic function
│ │ │ │ +430 * of the second kind.
│ │ │ │ +431 *
│ │ │ │ +432 * @tparam _Tp The floating-point type of the modulus @c __k.
│ │ │ │ +433 * @param __k The modulus, @c abs(__k) <= 1
│ │ │ │ +434 * @throw std::domain_error if @c abs(__k) > 1.
│ │ │ │ +435 */
│ │ │ │ +436 template
│ │ │ │ +437 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ │ +_4_3_8 _c_o_m_p___e_l_l_i_n_t___2(_Tp __k)
│ │ │ │ +439 {
│ │ │ │ +440 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ │ +441 return __detail::__comp_ellint_2<__type>(__k);
│ │ │ │ +442 }
│ │ │ │ +443
│ │ │ │ +444 // Complete elliptic integrals of the third kind
│ │ │ │ +445
│ │ │ │ +446 /**
│ │ │ │ +447 * @brief Return the complete elliptic integral of the third kind
│ │ │ │ +448 * @f$ \Pi(k,\nu) @f$ for @c float modulus @c k.
│ │ │ │ +449 *
│ │ │ │ +450 * @see comp_ellint_3 for details.
│ │ │ │ +451 */
│ │ │ │ +452 inline float
│ │ │ │ +_4_5_3 _c_o_m_p___e_l_l_i_n_t___3_f(float __k, float __nu)
│ │ │ │ +454 { return __detail::__comp_ellint_3(__k, __nu); }
│ │ │ │ +455
│ │ │ │ +456 /**
│ │ │ │ +457 * @brief Return the complete elliptic integral of the third kind
│ │ │ │ +458 * @f$ \Pi(k,\nu) @f$ for long double modulus @c k.
│ │ │ │ +459 *
│ │ │ │ +460 * @see comp_ellint_3 for details.
│ │ │ │ +461 */
│ │ │ │ +462 inline long double
│ │ │ │ +_4_6_3 _c_o_m_p___e_l_l_i_n_t___3_l(long double __k, long double __nu)
│ │ │ │ +464 { return __detail::__comp_ellint_3(__k, __nu); }
│ │ │ │ 465
│ │ │ │ -466 __new_finish = _S_relocate(__position.base(), __old_finish,
│ │ │ │ -467 __new_finish, _M_get_Tp_allocator());
│ │ │ │ -468 }
│ │ │ │ -469 else
│ │ │ │ -470#endif
│ │ │ │ -471 {
│ │ │ │ -472 __new_finish
│ │ │ │ -473 = std::__uninitialized_move_if_noexcept_a
│ │ │ │ -474 (__old_start, __position.base(),
│ │ │ │ -475 __new_start, _M_get_Tp_allocator());
│ │ │ │ -476
│ │ │ │ -477 ++__new_finish;
│ │ │ │ -478
│ │ │ │ -479 __new_finish
│ │ │ │ -480 = std::__uninitialized_move_if_noexcept_a
│ │ │ │ -481 (__position.base(), __old_finish,
│ │ │ │ -482 __new_finish, _M_get_Tp_allocator());
│ │ │ │ -483 }
│ │ │ │ -484 }
│ │ │ │ -485 __catch(...)
│ │ │ │ -486 {
│ │ │ │ -487 if (!__new_finish)
│ │ │ │ -488 _Alloc_traits::destroy(this->_M_impl,
│ │ │ │ -489 __new_start + __elems_before);
│ │ │ │ -490 else
│ │ │ │ -491 _s_t_d_:_:___D_e_s_t_r_o_y(__new_start, __new_finish, _M_get_Tp_allocator());
│ │ │ │ -492 _M_deallocate(__new_start, __len);
│ │ │ │ -493 __throw_exception_again;
│ │ │ │ -494 }
│ │ │ │ -495#if __cplusplus >= 201103L
│ │ │ │ -496 if _GLIBCXX17_CONSTEXPR (!_S_use_relocate())
│ │ │ │ -497#endif
│ │ │ │ -498 _s_t_d_:_:___D_e_s_t_r_o_y(__old_start, __old_finish, _M_get_Tp_allocator());
│ │ │ │ -499 _GLIBCXX_ASAN_ANNOTATE_REINIT;
│ │ │ │ -500 _M_deallocate(__old_start,
│ │ │ │ -501 this->_M_impl._M_end_of_storage - __old_start);
│ │ │ │ -502 this->_M_impl._M_start = __new_start;
│ │ │ │ -503 this->_M_impl._M_finish = __new_finish;
│ │ │ │ -504 this->_M_impl._M_end_of_storage = __new_start + __len;
│ │ │ │ -505 }
│ │ │ │ +466 /**
│ │ │ │ +467 * Return the complete elliptic integral of the third kind
│ │ │ │ +468 * @f$ \Pi(k,\nu) = \Pi(k,\nu,\pi/2) @f$ for real modulus @c k.
│ │ │ │ +469 *
│ │ │ │ +470 * The complete elliptic integral of the third kind is defined as
│ │ │ │ +471 * @f[
│ │ │ │ +472 * \Pi(k,\nu) = \Pi(k,\nu,\pi/2) = \int_0^{\pi/2}
│ │ │ │ +473 * \frac{d\theta}
│ │ │ │ +474 * {(1 - \nu \sin^2\theta)\sqrt{1 - k^2 \sin^2\theta}}
│ │ │ │ +475 * @f]
│ │ │ │ +476 * where @f$ \Pi(k,\nu,\phi) @f$ is the incomplete elliptic integral of the
│ │ │ │ +477 * second kind and the modulus @f$ |k| <= 1 @f$.
│ │ │ │ +478 * @see ellint_3 for details of the incomplete elliptic function
│ │ │ │ +479 * of the third kind.
│ │ │ │ +480 *
│ │ │ │ +481 * @tparam _Tp The floating-point type of the modulus @c __k.
│ │ │ │ +482 * @tparam _Tpn The floating-point type of the argument @c __nu.
│ │ │ │ +483 * @param __k The modulus, @c abs(__k) <= 1
│ │ │ │ +484 * @param __nu The argument
│ │ │ │ +485 * @throw std::domain_error if @c abs(__k) > 1.
│ │ │ │ +486 */
│ │ │ │ +487 template
│ │ │ │ +488 inline typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type
│ │ │ │ +_4_8_9 _c_o_m_p___e_l_l_i_n_t___3(_Tp __k, _Tpn __nu)
│ │ │ │ +490 {
│ │ │ │ +491 typedef typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type __type;
│ │ │ │ +492 return __detail::__comp_ellint_3<__type>(__k, __nu);
│ │ │ │ +493 }
│ │ │ │ +494
│ │ │ │ +495 // Regular modified cylindrical Bessel functions
│ │ │ │ +496
│ │ │ │ +497 /**
│ │ │ │ +498 * Return the regular modified Bessel function @f$ I_{\nu}(x) @f$
│ │ │ │ +499 * for @c float order @f$ \nu @f$ and argument @f$ x >= 0 @f$.
│ │ │ │ +500 *
│ │ │ │ +501 * @see cyl_bessel_i for setails.
│ │ │ │ +502 */
│ │ │ │ +503 inline float
│ │ │ │ +_5_0_4 _c_y_l___b_e_s_s_e_l___i_f(float __nu, float __x)
│ │ │ │ +505 { return __detail::__cyl_bessel_i(__nu, __x); }
│ │ │ │ 506
│ │ │ │ -507 template
│ │ │ │ -508 void
│ │ │ │ -509 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -510_ ___M___f_i_l_l___i_n_s_e_r_t(_i_t_e_r_a_t_o_r __position, _s_i_z_e___t_y_p_e __n, const _v_a_l_u_e___t_y_p_e& __x)
│ │ │ │ -511 {
│ │ │ │ -512 if (__n != 0)
│ │ │ │ -513 {
│ │ │ │ -514 if (_s_i_z_e___t_y_p_e(this->_M_impl._M_end_of_storage
│ │ │ │ -515 - this->_M_impl._M_finish) >= __n)
│ │ │ │ -516 {
│ │ │ │ -517#if __cplusplus < 201103L
│ │ │ │ -518 _v_a_l_u_e___t_y_p_e __x_copy = __x;
│ │ │ │ -519#else
│ │ │ │ -520 _Temporary_value __tmp(this, __x);
│ │ │ │ -521 _v_a_l_u_e___t_y_p_e& __x_copy = __tmp._M_val();
│ │ │ │ -522#endif
│ │ │ │ -523 const _s_i_z_e___t_y_p_e __elems_after = _e_n_d() - __position;
│ │ │ │ -524 pointer __old_finish(this->_M_impl._M_finish);
│ │ │ │ -525 if (__elems_after > __n)
│ │ │ │ -526 {
│ │ │ │ -527 _GLIBCXX_ASAN_ANNOTATE_GROW(__n);
│ │ │ │ -528 std::__uninitialized_move_a(this->_M_impl._M_finish - __n,
│ │ │ │ -529 this->_M_impl._M_finish,
│ │ │ │ -530 this->_M_impl._M_finish,
│ │ │ │ -531 _M_get_Tp_allocator());
│ │ │ │ -532 this->_M_impl._M_finish += __n;
│ │ │ │ -533 _GLIBCXX_ASAN_ANNOTATE_GREW(__n);
│ │ │ │ -534 _GLIBCXX_MOVE_BACKWARD3(__position.base(),
│ │ │ │ -535 __old_finish - __n, __old_finish);
│ │ │ │ -536 std::fill(__position.base(), __position.base() + __n,
│ │ │ │ -537 __x_copy);
│ │ │ │ -538 }
│ │ │ │ -539 else
│ │ │ │ -540 {
│ │ │ │ -541 _GLIBCXX_ASAN_ANNOTATE_GROW(__n);
│ │ │ │ -542 this->_M_impl._M_finish =
│ │ │ │ -543 std::__uninitialized_fill_n_a(this->_M_impl._M_finish,
│ │ │ │ -544 __n - __elems_after,
│ │ │ │ -545 __x_copy,
│ │ │ │ -546 _M_get_Tp_allocator());
│ │ │ │ -547 _GLIBCXX_ASAN_ANNOTATE_GREW(__n - __elems_after);
│ │ │ │ -548 std::__uninitialized_move_a(__position.base(), __old_finish,
│ │ │ │ -549 this->_M_impl._M_finish,
│ │ │ │ -550 _M_get_Tp_allocator());
│ │ │ │ -551 this->_M_impl._M_finish += __elems_after;
│ │ │ │ -552 _GLIBCXX_ASAN_ANNOTATE_GREW(__elems_after);
│ │ │ │ -553 std::fill(__position.base(), __old_finish, __x_copy);
│ │ │ │ -554 }
│ │ │ │ -555 }
│ │ │ │ -556 else
│ │ │ │ -557 {
│ │ │ │ -558 const _s_i_z_e___t_y_p_e __len =
│ │ │ │ -559 _M_check_len(__n, "vector::_M_fill_insert");
│ │ │ │ -560 const _s_i_z_e___t_y_p_e __elems_before = __position - _b_e_g_i_n();
│ │ │ │ -561 pointer __new_start(this->_M_allocate(__len));
│ │ │ │ -562 pointer __new_finish(__new_start);
│ │ │ │ -563 __try
│ │ │ │ -564 {
│ │ │ │ -565 // See _M_realloc_insert above.
│ │ │ │ -566 std::__uninitialized_fill_n_a(__new_start + __elems_before,
│ │ │ │ -567 __n, __x,
│ │ │ │ -568 _M_get_Tp_allocator());
│ │ │ │ -569 __new_finish = pointer();
│ │ │ │ -570
│ │ │ │ -571 __new_finish
│ │ │ │ -572 = std::__uninitialized_move_if_noexcept_a
│ │ │ │ -573 (this->_M_impl._M_start, __position.base(),
│ │ │ │ -574 __new_start, _M_get_Tp_allocator());
│ │ │ │ -575
│ │ │ │ -576 __new_finish += __n;
│ │ │ │ -577
│ │ │ │ -578 __new_finish
│ │ │ │ -579 = std::__uninitialized_move_if_noexcept_a
│ │ │ │ -580 (__position.base(), this->_M_impl._M_finish,
│ │ │ │ -581 __new_finish, _M_get_Tp_allocator());
│ │ │ │ -582 }
│ │ │ │ -583 __catch(...)
│ │ │ │ -584 {
│ │ │ │ -585 if (!__new_finish)
│ │ │ │ -586 _s_t_d_:_:___D_e_s_t_r_o_y(__new_start + __elems_before,
│ │ │ │ -587 __new_start + __elems_before + __n,
│ │ │ │ -588 _M_get_Tp_allocator());
│ │ │ │ -589 else
│ │ │ │ -590 _s_t_d_:_:___D_e_s_t_r_o_y(__new_start, __new_finish,
│ │ │ │ -591 _M_get_Tp_allocator());
│ │ │ │ -592 _M_deallocate(__new_start, __len);
│ │ │ │ -593 __throw_exception_again;
│ │ │ │ -594 }
│ │ │ │ -595 _s_t_d_:_:___D_e_s_t_r_o_y(this->_M_impl._M_start, this->_M_impl._M_finish,
│ │ │ │ -596 _M_get_Tp_allocator());
│ │ │ │ -597 _GLIBCXX_ASAN_ANNOTATE_REINIT;
│ │ │ │ -598 _M_deallocate(this->_M_impl._M_start,
│ │ │ │ -599 this->_M_impl._M_end_of_storage
│ │ │ │ -600 - this->_M_impl._M_start);
│ │ │ │ -601 this->_M_impl._M_start = __new_start;
│ │ │ │ -602 this->_M_impl._M_finish = __new_finish;
│ │ │ │ -603 this->_M_impl._M_end_of_storage = __new_start + __len;
│ │ │ │ -604 }
│ │ │ │ -605 }
│ │ │ │ -606 }
│ │ │ │ -607
│ │ │ │ -608#if __cplusplus >= 201103L
│ │ │ │ -609 template
│ │ │ │ -610 void
│ │ │ │ -611 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -612_ ___M___d_e_f_a_u_l_t___a_p_p_e_n_d(_s_i_z_e___t_y_p_e __n)
│ │ │ │ -613 {
│ │ │ │ -614 if (__n != 0)
│ │ │ │ -615 {
│ │ │ │ -616 const _s_i_z_e___t_y_p_e __size = _s_i_z_e();
│ │ │ │ -617 _s_i_z_e___t_y_p_e __navail = _s_i_z_e___t_y_p_e(this->_M_impl._M_end_of_storage
│ │ │ │ -618 - this->_M_impl._M_finish);
│ │ │ │ -619
│ │ │ │ -620 if (__size > max_size() || __navail > max_size() - __size)
│ │ │ │ -621 __builtin_unreachable();
│ │ │ │ -622
│ │ │ │ -623 if (__navail >= __n)
│ │ │ │ -624 {
│ │ │ │ -625 _GLIBCXX_ASAN_ANNOTATE_GROW(__n);
│ │ │ │ -626 this->_M_impl._M_finish =
│ │ │ │ -627 std::__uninitialized_default_n_a(this->_M_impl._M_finish,
│ │ │ │ -628 __n, _M_get_Tp_allocator());
│ │ │ │ -629 _GLIBCXX_ASAN_ANNOTATE_GREW(__n);
│ │ │ │ -630 }
│ │ │ │ -631 else
│ │ │ │ -632 {
│ │ │ │ -633 const _s_i_z_e___t_y_p_e __len =
│ │ │ │ -634 _M_check_len(__n, "vector::_M_default_append");
│ │ │ │ -635 pointer __new_start(this->_M_allocate(__len));
│ │ │ │ -636 if _GLIBCXX17_CONSTEXPR (_S_use_relocate())
│ │ │ │ -637 {
│ │ │ │ -638 __try
│ │ │ │ -639 {
│ │ │ │ -640 std::__uninitialized_default_n_a(__new_start + __size,
│ │ │ │ -641 __n, _M_get_Tp_allocator());
│ │ │ │ -642 }
│ │ │ │ -643 __catch(...)
│ │ │ │ -644 {
│ │ │ │ -645 _M_deallocate(__new_start, __len);
│ │ │ │ -646 __throw_exception_again;
│ │ │ │ -647 }
│ │ │ │ -648 _S_relocate(this->_M_impl._M_start, this->_M_impl._M_finish,
│ │ │ │ -649 __new_start, _M_get_Tp_allocator());
│ │ │ │ -650 }
│ │ │ │ -651 else
│ │ │ │ -652 {
│ │ │ │ -653 pointer __destroy_from = pointer();
│ │ │ │ -654 __try
│ │ │ │ -655 {
│ │ │ │ -656 std::__uninitialized_default_n_a(__new_start + __size,
│ │ │ │ -657 __n, _M_get_Tp_allocator());
│ │ │ │ -658 __destroy_from = __new_start + __size;
│ │ │ │ -659 std::__uninitialized_move_if_noexcept_a(
│ │ │ │ -660 this->_M_impl._M_start, this->_M_impl._M_finish,
│ │ │ │ -661 __new_start, _M_get_Tp_allocator());
│ │ │ │ -662 }
│ │ │ │ -663 __catch(...)
│ │ │ │ -664 {
│ │ │ │ -665 if (__destroy_from)
│ │ │ │ -666 _s_t_d_:_:___D_e_s_t_r_o_y(__destroy_from, __destroy_from + __n,
│ │ │ │ -667 _M_get_Tp_allocator());
│ │ │ │ -668 _M_deallocate(__new_start, __len);
│ │ │ │ -669 __throw_exception_again;
│ │ │ │ -670 }
│ │ │ │ -671 _s_t_d_:_:___D_e_s_t_r_o_y(this->_M_impl._M_start, this->_M_impl._M_finish,
│ │ │ │ -672 _M_get_Tp_allocator());
│ │ │ │ -673 }
│ │ │ │ -674 _GLIBCXX_ASAN_ANNOTATE_REINIT;
│ │ │ │ -675 _M_deallocate(this->_M_impl._M_start,
│ │ │ │ -676 this->_M_impl._M_end_of_storage
│ │ │ │ -677 - this->_M_impl._M_start);
│ │ │ │ -678 this->_M_impl._M_start = __new_start;
│ │ │ │ -679 this->_M_impl._M_finish = __new_start + __size + __n;
│ │ │ │ -680 this->_M_impl._M_end_of_storage = __new_start + __len;
│ │ │ │ -681 }
│ │ │ │ -682 }
│ │ │ │ -683 }
│ │ │ │ -684
│ │ │ │ -685 template
│ │ │ │ -686 bool
│ │ │ │ -687 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -688_ ___M___s_h_r_i_n_k___t_o___f_i_t()
│ │ │ │ -689 {
│ │ │ │ -690 if (capacity() == _s_i_z_e())
│ │ │ │ -691 return false;
│ │ │ │ -692 _GLIBCXX_ASAN_ANNOTATE_REINIT;
│ │ │ │ -693 return std::__shrink_to_fit_aux::_S_do_it(*this);
│ │ │ │ -694 }
│ │ │ │ -_6_9_5#endif
│ │ │ │ -696
│ │ │ │ -697 template
│ │ │ │ -698 template
│ │ │ │ -699 void
│ │ │ │ -700 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -701_ ___M___r_a_n_g_e___i_n_s_e_r_t(iterator __pos, _InputIterator __first,
│ │ │ │ -702 _InputIterator __last, _s_t_d_:_:_i_n_p_u_t___i_t_e_r_a_t_o_r___t_a_g)
│ │ │ │ -703 {
│ │ │ │ -704 if (__pos == _e_n_d())
│ │ │ │ -705 {
│ │ │ │ -706 for (; __first != __last; ++__first)
│ │ │ │ -707 _i_n_s_e_r_t(_e_n_d(), *__first);
│ │ │ │ -708 }
│ │ │ │ -709 else if (__first != __last)
│ │ │ │ -710 {
│ │ │ │ -711 _v_e_c_t_o_r __tmp(__first, __last, _M_get_Tp_allocator());
│ │ │ │ -712 _i_n_s_e_r_t(__pos,
│ │ │ │ -713 _GLIBCXX_MAKE_MOVE_ITERATOR(__tmp._b_e_g_i_n()),
│ │ │ │ -714 _GLIBCXX_MAKE_MOVE_ITERATOR(__tmp._e_n_d()));
│ │ │ │ -715 }
│ │ │ │ -716 }
│ │ │ │ -717
│ │ │ │ -718 template
│ │ │ │ -719 template
│ │ │ │ -720 void
│ │ │ │ -721 _v_e_c_t_o_r_<___T_p_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -722_ ___M___r_a_n_g_e___i_n_s_e_r_t(_i_t_e_r_a_t_o_r __position, _ForwardIterator __first,
│ │ │ │ -723 _ForwardIterator __last, _s_t_d_:_:_f_o_r_w_a_r_d___i_t_e_r_a_t_o_r___t_a_g)
│ │ │ │ -724 {
│ │ │ │ -725 if (__first != __last)
│ │ │ │ -726 {
│ │ │ │ -727 const _s_i_z_e___t_y_p_e __n = _s_t_d_:_:_d_i_s_t_a_n_c_e(__first, __last);
│ │ │ │ -728 if (_s_i_z_e___t_y_p_e(this->_M_impl._M_end_of_storage
│ │ │ │ -729 - this->_M_impl._M_finish) >= __n)
│ │ │ │ +507 /**
│ │ │ │ +508 * Return the regular modified Bessel function @f$ I_{\nu}(x) @f$
│ │ │ │ +509 * for long double order @f$ \nu @f$ and argument @f$ x >= 0 @f$.
│ │ │ │ +510 *
│ │ │ │ +511 * @see cyl_bessel_i for setails.
│ │ │ │ +512 */
│ │ │ │ +513 inline long double
│ │ │ │ +_5_1_4 _c_y_l___b_e_s_s_e_l___i_l(long double __nu, long double __x)
│ │ │ │ +515 { return __detail::__cyl_bessel_i(__nu, __x); }
│ │ │ │ +516
│ │ │ │ +517 /**
│ │ │ │ +518 * Return the regular modified Bessel function @f$ I_{\nu}(x) @f$
│ │ │ │ +519 * for real order @f$ \nu @f$ and argument @f$ x >= 0 @f$.
│ │ │ │ +520 *
│ │ │ │ +521 * The regular modified cylindrical Bessel function is:
│ │ │ │ +522 * @f[
│ │ │ │ +523 * I_{\nu}(x) = i^{-\nu}J_\nu(ix) = \sum_{k=0}^{\infty}
│ │ │ │ +524 * \frac{(x/2)^{\nu + 2k}}{k!\Gamma(\nu+k+1)}
│ │ │ │ +525 * @f]
│ │ │ │ +526 *
│ │ │ │ +527 * @tparam _Tpnu The floating-point type of the order @c __nu.
│ │ │ │ +528 * @tparam _Tp The floating-point type of the argument @c __x.
│ │ │ │ +529 * @param __nu The order
│ │ │ │ +530 * @param __x The argument, __x >= 0
│ │ │ │ +531 * @throw std::domain_error if __x < 0 .
│ │ │ │ +532 */
│ │ │ │ +533 template
│ │ │ │ +534 inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
│ │ │ │ +_5_3_5 _c_y_l___b_e_s_s_e_l___i(_Tpnu __nu, _Tp __x)
│ │ │ │ +536 {
│ │ │ │ +537 typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
│ │ │ │ +538 return __detail::__cyl_bessel_i<__type>(__nu, __x);
│ │ │ │ +539 }
│ │ │ │ +540
│ │ │ │ +541 // Cylindrical Bessel functions (of the first kind)
│ │ │ │ +542
│ │ │ │ +543 /**
│ │ │ │ +544 * Return the Bessel function of the first kind @f$ J_{\nu}(x) @f$
│ │ │ │ +545 * for @c float order @f$ \nu @f$ and argument @f$ x >= 0 @f$.
│ │ │ │ +546 *
│ │ │ │ +547 * @see cyl_bessel_j for setails.
│ │ │ │ +548 */
│ │ │ │ +549 inline float
│ │ │ │ +_5_5_0 _c_y_l___b_e_s_s_e_l___j_f(float __nu, float __x)
│ │ │ │ +551 { return __detail::__cyl_bessel_j(__nu, __x); }
│ │ │ │ +552
│ │ │ │ +553 /**
│ │ │ │ +554 * Return the Bessel function of the first kind @f$ J_{\nu}(x) @f$
│ │ │ │ +555 * for long double order @f$ \nu @f$ and argument @f$ x >= 0 @f$.
│ │ │ │ +556 *
│ │ │ │ +557 * @see cyl_bessel_j for setails.
│ │ │ │ +558 */
│ │ │ │ +559 inline long double
│ │ │ │ +_5_6_0 _c_y_l___b_e_s_s_e_l___j_l(long double __nu, long double __x)
│ │ │ │ +561 { return __detail::__cyl_bessel_j(__nu, __x); }
│ │ │ │ +562
│ │ │ │ +563 /**
│ │ │ │ +564 * Return the Bessel function @f$ J_{\nu}(x) @f$ of real order @f$ \nu @f$
│ │ │ │ +565 * and argument @f$ x >= 0 @f$.
│ │ │ │ +566 *
│ │ │ │ +567 * The cylindrical Bessel function is:
│ │ │ │ +568 * @f[
│ │ │ │ +569 * J_{\nu}(x) = \sum_{k=0}^{\infty}
│ │ │ │ +570 * \frac{(-1)^k (x/2)^{\nu + 2k}}{k!\Gamma(\nu+k+1)}
│ │ │ │ +571 * @f]
│ │ │ │ +572 *
│ │ │ │ +573 * @tparam _Tpnu The floating-point type of the order @c __nu.
│ │ │ │ +574 * @tparam _Tp The floating-point type of the argument @c __x.
│ │ │ │ +575 * @param __nu The order
│ │ │ │ +576 * @param __x The argument, __x >= 0
│ │ │ │ +577 * @throw std::domain_error if __x < 0 .
│ │ │ │ +578 */
│ │ │ │ +579 template
│ │ │ │ +580 inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
│ │ │ │ +_5_8_1 _c_y_l___b_e_s_s_e_l___j(_Tpnu __nu, _Tp __x)
│ │ │ │ +582 {
│ │ │ │ +583 typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
│ │ │ │ +584 return __detail::__cyl_bessel_j<__type>(__nu, __x);
│ │ │ │ +585 }
│ │ │ │ +586
│ │ │ │ +587 // Irregular modified cylindrical Bessel functions
│ │ │ │ +588
│ │ │ │ +589 /**
│ │ │ │ +590 * Return the irregular modified Bessel function @f$ K_{\nu}(x) @f$
│ │ │ │ +591 * for @c float order @f$ \nu @f$ and argument @f$ x >= 0 @f$.
│ │ │ │ +592 *
│ │ │ │ +593 * @see cyl_bessel_k for setails.
│ │ │ │ +594 */
│ │ │ │ +595 inline float
│ │ │ │ +_5_9_6 _c_y_l___b_e_s_s_e_l___k_f(float __nu, float __x)
│ │ │ │ +597 { return __detail::__cyl_bessel_k(__nu, __x); }
│ │ │ │ +598
│ │ │ │ +599 /**
│ │ │ │ +600 * Return the irregular modified Bessel function @f$ K_{\nu}(x) @f$
│ │ │ │ +601 * for long double order @f$ \nu @f$ and argument @f$ x >= 0 @f$.
│ │ │ │ +602 *
│ │ │ │ +603 * @see cyl_bessel_k for setails.
│ │ │ │ +604 */
│ │ │ │ +605 inline long double
│ │ │ │ +_6_0_6 _c_y_l___b_e_s_s_e_l___k_l(long double __nu, long double __x)
│ │ │ │ +607 { return __detail::__cyl_bessel_k(__nu, __x); }
│ │ │ │ +608
│ │ │ │ +609 /**
│ │ │ │ +610 * Return the irregular modified Bessel function @f$ K_{\nu}(x) @f$
│ │ │ │ +611 * of real order @f$ \nu @f$ and argument @f$ x @f$.
│ │ │ │ +612 *
│ │ │ │ +613 * The irregular modified Bessel function is defined by:
│ │ │ │ +614 * @f[
│ │ │ │ +615 * K_{\nu}(x) = \frac{\pi}{2}
│ │ │ │ +616 * \frac{I_{-\nu}(x) - I_{\nu}(x)}{\sin \nu\pi}
│ │ │ │ +617 * @f]
│ │ │ │ +618 * where for integral @f$ \nu = n @f$ a limit is taken:
│ │ │ │ +619 * @f$ lim_{\nu \to n} @f$.
│ │ │ │ +620 * For negative argument we have simply:
│ │ │ │ +621 * @f[
│ │ │ │ +622 * K_{-\nu}(x) = K_{\nu}(x)
│ │ │ │ +623 * @f]
│ │ │ │ +624 *
│ │ │ │ +625 * @tparam _Tpnu The floating-point type of the order @c __nu.
│ │ │ │ +626 * @tparam _Tp The floating-point type of the argument @c __x.
│ │ │ │ +627 * @param __nu The order
│ │ │ │ +628 * @param __x The argument, __x >= 0
│ │ │ │ +629 * @throw std::domain_error if __x < 0 .
│ │ │ │ +630 */
│ │ │ │ +631 template
│ │ │ │ +632 inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
│ │ │ │ +_6_3_3 _c_y_l___b_e_s_s_e_l___k(_Tpnu __nu, _Tp __x)
│ │ │ │ +634 {
│ │ │ │ +635 typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
│ │ │ │ +636 return __detail::__cyl_bessel_k<__type>(__nu, __x);
│ │ │ │ +637 }
│ │ │ │ +638
│ │ │ │ +639 // Cylindrical Neumann functions
│ │ │ │ +640
│ │ │ │ +641 /**
│ │ │ │ +642 * Return the Neumann function @f$ N_{\nu}(x) @f$
│ │ │ │ +643 * of @c float order @f$ \nu @f$ and argument @f$ x @f$.
│ │ │ │ +644 *
│ │ │ │ +645 * @see cyl_neumann for setails.
│ │ │ │ +646 */
│ │ │ │ +647 inline float
│ │ │ │ +_6_4_8 _c_y_l___n_e_u_m_a_n_n_f(float __nu, float __x)
│ │ │ │ +649 { return __detail::__cyl_neumann_n(__nu, __x); }
│ │ │ │ +650
│ │ │ │ +651 /**
│ │ │ │ +652 * Return the Neumann function @f$ N_{\nu}(x) @f$
│ │ │ │ +653 * of long double order @f$ \nu @f$ and argument @f$ x @f$.
│ │ │ │ +654 *
│ │ │ │ +655 * @see cyl_neumann for setails.
│ │ │ │ +656 */
│ │ │ │ +657 inline long double
│ │ │ │ +_6_5_8 _c_y_l___n_e_u_m_a_n_n_l(long double __nu, long double __x)
│ │ │ │ +659 { return __detail::__cyl_neumann_n(__nu, __x); }
│ │ │ │ +660
│ │ │ │ +661 /**
│ │ │ │ +662 * Return the Neumann function @f$ N_{\nu}(x) @f$
│ │ │ │ +663 * of real order @f$ \nu @f$ and argument @f$ x >= 0 @f$.
│ │ │ │ +664 *
│ │ │ │ +665 * The Neumann function is defined by:
│ │ │ │ +666 * @f[
│ │ │ │ +667 * N_{\nu}(x) = \frac{J_{\nu}(x) \cos \nu\pi - J_{-\nu}(x)}
│ │ │ │ +668 * {\sin \nu\pi}
│ │ │ │ +669 * @f]
│ │ │ │ +670 * where @f$ x >= 0 @f$ and for integral order @f$ \nu = n @f$
│ │ │ │ +671 * a limit is taken: @f$ lim_{\nu \to n} @f$.
│ │ │ │ +672 *
│ │ │ │ +673 * @tparam _Tpnu The floating-point type of the order @c __nu.
│ │ │ │ +674 * @tparam _Tp The floating-point type of the argument @c __x.
│ │ │ │ +675 * @param __nu The order
│ │ │ │ +676 * @param __x The argument, __x >= 0
│ │ │ │ +677 * @throw std::domain_error if __x < 0 .
│ │ │ │ +678 */
│ │ │ │ +679 template
│ │ │ │ +680 inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
│ │ │ │ +_6_8_1 _c_y_l___n_e_u_m_a_n_n(_Tpnu __nu, _Tp __x)
│ │ │ │ +682 {
│ │ │ │ +683 typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;
│ │ │ │ +684 return __detail::__cyl_neumann_n<__type>(__nu, __x);
│ │ │ │ +685 }
│ │ │ │ +686
│ │ │ │ +687 // Incomplete elliptic integrals of the first kind
│ │ │ │ +688
│ │ │ │ +689 /**
│ │ │ │ +690 * Return the incomplete elliptic integral of the first kind @f$ E(k,\phi)
│ │ │ │ +@f$
│ │ │ │ +691 * for @c float modulus @f$ k @f$ and angle @f$ \phi @f$.
│ │ │ │ +692 *
│ │ │ │ +693 * @see ellint_1 for details.
│ │ │ │ +694 */
│ │ │ │ +695 inline float
│ │ │ │ +_6_9_6 _e_l_l_i_n_t___1_f(float __k, float __phi)
│ │ │ │ +697 { return __detail::__ellint_1(__k, __phi); }
│ │ │ │ +698
│ │ │ │ +699 /**
│ │ │ │ +700 * Return the incomplete elliptic integral of the first kind @f$ E(k,\phi)
│ │ │ │ +@f$
│ │ │ │ +701 * for long double modulus @f$ k @f$ and angle @f$ \phi @f$.
│ │ │ │ +702 *
│ │ │ │ +703 * @see ellint_1 for details.
│ │ │ │ +704 */
│ │ │ │ +705 inline long double
│ │ │ │ +_7_0_6 _e_l_l_i_n_t___1_l(long double __k, long double __phi)
│ │ │ │ +707 { return __detail::__ellint_1(__k, __phi); }
│ │ │ │ +708
│ │ │ │ +709 /**
│ │ │ │ +710 * Return the incomplete elliptic integral of the first kind @f$ F(k,\phi)
│ │ │ │ +@f$
│ │ │ │ +711 * for @c real modulus @f$ k @f$ and angle @f$ \phi @f$.
│ │ │ │ +712 *
│ │ │ │ +713 * The incomplete elliptic integral of the first kind is defined as
│ │ │ │ +714 * @f[
│ │ │ │ +715 * F(k,\phi) = \int_0^{\phi}\frac{d\theta}
│ │ │ │ +716 * {\sqrt{1 - k^2 sin^2\theta}}
│ │ │ │ +717 * @f]
│ │ │ │ +718 * For @f$ \phi= \pi/2 @f$ this becomes the complete elliptic integral of
│ │ │ │ +719 * the first kind, @f$ K(k) @f$. @see comp_ellint_1.
│ │ │ │ +720 *
│ │ │ │ +721 * @tparam _Tp The floating-point type of the modulus @c __k.
│ │ │ │ +722 * @tparam _Tpp The floating-point type of the angle @c __phi.
│ │ │ │ +723 * @param __k The modulus, abs(__k) <= 1
│ │ │ │ +724 * @param __phi The integral limit argument in radians
│ │ │ │ +725 * @throw std::domain_error if abs(__k) > 1 .
│ │ │ │ +726 */
│ │ │ │ +727 template
│ │ │ │ +728 inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type
│ │ │ │ +_7_2_9 _e_l_l_i_n_t___1(_Tp __k, _Tpp __phi)
│ │ │ │ 730 {
│ │ │ │ -731 const _s_i_z_e___t_y_p_e __elems_after = _e_n_d() - __position;
│ │ │ │ -732 pointer __old_finish(this->_M_impl._M_finish);
│ │ │ │ -733 if (__elems_after > __n)
│ │ │ │ -734 {
│ │ │ │ -735 _GLIBCXX_ASAN_ANNOTATE_GROW(__n);
│ │ │ │ -736 std::__uninitialized_move_a(this->_M_impl._M_finish - __n,
│ │ │ │ -737 this->_M_impl._M_finish,
│ │ │ │ -738 this->_M_impl._M_finish,
│ │ │ │ -739 _M_get_Tp_allocator());
│ │ │ │ -740 this->_M_impl._M_finish += __n;
│ │ │ │ -741 _GLIBCXX_ASAN_ANNOTATE_GREW(__n);
│ │ │ │ -742 _GLIBCXX_MOVE_BACKWARD3(__position.base(),
│ │ │ │ -743 __old_finish - __n, __old_finish);
│ │ │ │ -744 std::copy(__first, __last, __position);
│ │ │ │ -745 }
│ │ │ │ -746 else
│ │ │ │ -747 {
│ │ │ │ -748 _ForwardIterator __mid = __first;
│ │ │ │ -749 _s_t_d_:_:_a_d_v_a_n_c_e(__mid, __elems_after);
│ │ │ │ -750 _GLIBCXX_ASAN_ANNOTATE_GROW(__n);
│ │ │ │ -751 std::__uninitialized_copy_a(__mid, __last,
│ │ │ │ -752 this->_M_impl._M_finish,
│ │ │ │ -753 _M_get_Tp_allocator());
│ │ │ │ -754 this->_M_impl._M_finish += __n - __elems_after;
│ │ │ │ -755 _GLIBCXX_ASAN_ANNOTATE_GREW(__n - __elems_after);
│ │ │ │ -756 std::__uninitialized_move_a(__position.base(),
│ │ │ │ -757 __old_finish,
│ │ │ │ -758 this->_M_impl._M_finish,
│ │ │ │ -759 _M_get_Tp_allocator());
│ │ │ │ -760 this->_M_impl._M_finish += __elems_after;
│ │ │ │ -761 _GLIBCXX_ASAN_ANNOTATE_GREW(__elems_after);
│ │ │ │ -762 std::copy(__first, __mid, __position);
│ │ │ │ -763 }
│ │ │ │ -764 }
│ │ │ │ -765 else
│ │ │ │ -766 {
│ │ │ │ -767 const _s_i_z_e___t_y_p_e __len =
│ │ │ │ -768 _M_check_len(__n, "vector::_M_range_insert");
│ │ │ │ -769 pointer __new_start(this->_M_allocate(__len));
│ │ │ │ -770 pointer __new_finish(__new_start);
│ │ │ │ -771 __try
│ │ │ │ -772 {
│ │ │ │ -773 __new_finish
│ │ │ │ -774 = std::__uninitialized_move_if_noexcept_a
│ │ │ │ -775 (this->_M_impl._M_start, __position.base(),
│ │ │ │ -776 __new_start, _M_get_Tp_allocator());
│ │ │ │ -777 __new_finish
│ │ │ │ -778 = std::__uninitialized_copy_a(__first, __last,
│ │ │ │ -779 __new_finish,
│ │ │ │ -780 _M_get_Tp_allocator());
│ │ │ │ -781 __new_finish
│ │ │ │ -782 = std::__uninitialized_move_if_noexcept_a
│ │ │ │ -783 (__position.base(), this->_M_impl._M_finish,
│ │ │ │ -784 __new_finish, _M_get_Tp_allocator());
│ │ │ │ -785 }
│ │ │ │ -786 __catch(...)
│ │ │ │ -787 {
│ │ │ │ -788 _s_t_d_:_:___D_e_s_t_r_o_y(__new_start, __new_finish,
│ │ │ │ -789 _M_get_Tp_allocator());
│ │ │ │ -790 _M_deallocate(__new_start, __len);
│ │ │ │ -791 __throw_exception_again;
│ │ │ │ -792 }
│ │ │ │ -793 _s_t_d_:_:___D_e_s_t_r_o_y(this->_M_impl._M_start, this->_M_impl._M_finish,
│ │ │ │ -794 _M_get_Tp_allocator());
│ │ │ │ -795 _GLIBCXX_ASAN_ANNOTATE_REINIT;
│ │ │ │ -796 _M_deallocate(this->_M_impl._M_start,
│ │ │ │ -797 this->_M_impl._M_end_of_storage
│ │ │ │ -798 - this->_M_impl._M_start);
│ │ │ │ -799 this->_M_impl._M_start = __new_start;
│ │ │ │ -800 this->_M_impl._M_finish = __new_finish;
│ │ │ │ -801 this->_M_impl._M_end_of_storage = __new_start + __len;
│ │ │ │ -802 }
│ │ │ │ -803 }
│ │ │ │ -804 }
│ │ │ │ -805
│ │ │ │ -806
│ │ │ │ -807 // vector
│ │ │ │ -808 template
│ │ │ │ -809 void
│ │ │ │ -810 _v_e_c_t_o_r_<_b_o_o_l_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -811_ ___M___r_e_a_l_l_o_c_a_t_e(_s_i_z_e___t_y_p_e __n)
│ │ │ │ -812 {
│ │ │ │ -813 _Bit_pointer __q = this->_M_allocate(__n);
│ │ │ │ -814 _i_t_e_r_a_t_o_r __start(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__q), 0);
│ │ │ │ -815 _i_t_e_r_a_t_o_r __finish(_M_copy_aligned(_b_e_g_i_n(), _e_n_d(), __start));
│ │ │ │ -816 this->_M_deallocate();
│ │ │ │ -817 this->_M_impl._M_start = __start;
│ │ │ │ -818 this->_M_impl._M_finish = __finish;
│ │ │ │ -819 this->_M_impl._M_end_of_storage = __q + _S_nword(__n);
│ │ │ │ -820 }
│ │ │ │ -821
│ │ │ │ -822 template
│ │ │ │ -823 void
│ │ │ │ -824 _v_e_c_t_o_r_<_b_o_o_l_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -825_ ___M___f_i_l_l___i_n_s_e_r_t(_i_t_e_r_a_t_o_r __position, _s_i_z_e___t_y_p_e __n, bool __x)
│ │ │ │ -826 {
│ │ │ │ -827 if (__n == 0)
│ │ │ │ -828 return;
│ │ │ │ -829 if (capacity() - _s_i_z_e() >= __n)
│ │ │ │ -830 {
│ │ │ │ -831 std::copy_backward(__position, _e_n_d(),
│ │ │ │ -832 this->_M_impl._M_finish + _d_i_f_f_e_r_e_n_c_e___t_y_p_e(__n));
│ │ │ │ -833 std::fill(__position, __position + _d_i_f_f_e_r_e_n_c_e___t_y_p_e(__n), __x);
│ │ │ │ -834 this->_M_impl._M_finish += _d_i_f_f_e_r_e_n_c_e___t_y_p_e(__n);
│ │ │ │ -835 }
│ │ │ │ -836 else
│ │ │ │ -837 {
│ │ │ │ -838 const _s_i_z_e___t_y_p_e __len =
│ │ │ │ -839 _M_check_len(__n, "vector::_M_fill_insert");
│ │ │ │ -840 _Bit_pointer __q = this->_M_allocate(__len);
│ │ │ │ -841 _i_t_e_r_a_t_o_r __start(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__q), 0);
│ │ │ │ -842 _i_t_e_r_a_t_o_r __i = _M_copy_aligned(_b_e_g_i_n(), __position, __start);
│ │ │ │ -843 std::fill(__i, __i + _d_i_f_f_e_r_e_n_c_e___t_y_p_e(__n), __x);
│ │ │ │ -844 _i_t_e_r_a_t_o_r __finish = std::copy(__position, _e_n_d(),
│ │ │ │ -845 __i + _d_i_f_f_e_r_e_n_c_e___t_y_p_e(__n));
│ │ │ │ -846 this->_M_deallocate();
│ │ │ │ -847 this->_M_impl._M_end_of_storage = __q + _S_nword(__len);
│ │ │ │ -848 this->_M_impl._M_start = __start;
│ │ │ │ -849 this->_M_impl._M_finish = __finish;
│ │ │ │ -850 }
│ │ │ │ -851 }
│ │ │ │ -852
│ │ │ │ -853 template
│ │ │ │ -854 template
│ │ │ │ -855 void
│ │ │ │ -856 _v_e_c_t_o_r_<_b_o_o_l_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -857_ ___M___i_n_s_e_r_t___r_a_n_g_e(_i_t_e_r_a_t_o_r __position, _ForwardIterator __first,
│ │ │ │ -858 _ForwardIterator __last, std::forward_iterator_tag)
│ │ │ │ -859 {
│ │ │ │ -860 if (__first != __last)
│ │ │ │ -861 {
│ │ │ │ -862 _s_i_z_e___t_y_p_e __n = _s_t_d_:_:_d_i_s_t_a_n_c_e(__first, __last);
│ │ │ │ -863 if (capacity() - _s_i_z_e() >= __n)
│ │ │ │ -864 {
│ │ │ │ -865 std::copy_backward(__position, _e_n_d(),
│ │ │ │ -866 this->_M_impl._M_finish
│ │ │ │ -867 + _d_i_f_f_e_r_e_n_c_e___t_y_p_e(__n));
│ │ │ │ -868 std::copy(__first, __last, __position);
│ │ │ │ -869 this->_M_impl._M_finish += _d_i_f_f_e_r_e_n_c_e___t_y_p_e(__n);
│ │ │ │ -870 }
│ │ │ │ -871 else
│ │ │ │ -872 {
│ │ │ │ -873 const _s_i_z_e___t_y_p_e __len =
│ │ │ │ -874 _M_check_len(__n, "vector::_M_insert_range");
│ │ │ │ -875 _Bit_pointer __q = this->_M_allocate(__len);
│ │ │ │ -876 _i_t_e_r_a_t_o_r __start(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__q), 0);
│ │ │ │ -877 _i_t_e_r_a_t_o_r __i = _M_copy_aligned(_b_e_g_i_n(), __position, __start);
│ │ │ │ -878 __i = std::copy(__first, __last, __i);
│ │ │ │ -879 _i_t_e_r_a_t_o_r __finish = std::copy(__position, _e_n_d(), __i);
│ │ │ │ -880 this->_M_deallocate();
│ │ │ │ -881 this->_M_impl._M_end_of_storage = __q + _S_nword(__len);
│ │ │ │ -882 this->_M_impl._M_start = __start;
│ │ │ │ -883 this->_M_impl._M_finish = __finish;
│ │ │ │ -884 }
│ │ │ │ -885 }
│ │ │ │ -886 }
│ │ │ │ +731 typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type;
│ │ │ │ +732 return __detail::__ellint_1<__type>(__k, __phi);
│ │ │ │ +733 }
│ │ │ │ +734
│ │ │ │ +735 // Incomplete elliptic integrals of the second kind
│ │ │ │ +736
│ │ │ │ +737 /**
│ │ │ │ +738 * @brief Return the incomplete elliptic integral of the second kind
│ │ │ │ +739 * @f$ E(k,\phi) @f$ for @c float argument.
│ │ │ │ +740 *
│ │ │ │ +741 * @see ellint_2 for details.
│ │ │ │ +742 */
│ │ │ │ +743 inline float
│ │ │ │ +_7_4_4 _e_l_l_i_n_t___2_f(float __k, float __phi)
│ │ │ │ +745 { return __detail::__ellint_2(__k, __phi); }
│ │ │ │ +746
│ │ │ │ +747 /**
│ │ │ │ +748 * @brief Return the incomplete elliptic integral of the second kind
│ │ │ │ +749 * @f$ E(k,\phi) @f$.
│ │ │ │ +750 *
│ │ │ │ +751 * @see ellint_2 for details.
│ │ │ │ +752 */
│ │ │ │ +753 inline long double
│ │ │ │ +_7_5_4 _e_l_l_i_n_t___2_l(long double __k, long double __phi)
│ │ │ │ +755 { return __detail::__ellint_2(__k, __phi); }
│ │ │ │ +756
│ │ │ │ +757 /**
│ │ │ │ +758 * Return the incomplete elliptic integral of the second kind
│ │ │ │ +759 * @f$ E(k,\phi) @f$.
│ │ │ │ +760 *
│ │ │ │ +761 * The incomplete elliptic integral of the second kind is defined as
│ │ │ │ +762 * @f[
│ │ │ │ +763 * E(k,\phi) = \int_0^{\phi} \sqrt{1 - k^2 sin^2\theta}
│ │ │ │ +764 * @f]
│ │ │ │ +765 * For @f$ \phi= \pi/2 @f$ this becomes the complete elliptic integral of
│ │ │ │ +766 * the second kind, @f$ E(k) @f$. @see comp_ellint_2.
│ │ │ │ +767 *
│ │ │ │ +768 * @tparam _Tp The floating-point type of the modulus @c __k.
│ │ │ │ +769 * @tparam _Tpp The floating-point type of the angle @c __phi.
│ │ │ │ +770 * @param __k The modulus, abs(__k) <= 1
│ │ │ │ +771 * @param __phi The integral limit argument in radians
│ │ │ │ +772 * @return The elliptic function of the second kind.
│ │ │ │ +773 * @throw std::domain_error if abs(__k) > 1 .
│ │ │ │ +774 */
│ │ │ │ +775 template
│ │ │ │ +776 inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type
│ │ │ │ +_7_7_7 _e_l_l_i_n_t___2(_Tp __k, _Tpp __phi)
│ │ │ │ +778 {
│ │ │ │ +779 typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type;
│ │ │ │ +780 return __detail::__ellint_2<__type>(__k, __phi);
│ │ │ │ +781 }
│ │ │ │ +782
│ │ │ │ +783 // Incomplete elliptic integrals of the third kind
│ │ │ │ +784
│ │ │ │ +785 /**
│ │ │ │ +786 * @brief Return the incomplete elliptic integral of the third kind
│ │ │ │ +787 * @f$ \Pi(k,\nu,\phi) @f$ for @c float argument.
│ │ │ │ +788 *
│ │ │ │ +789 * @see ellint_3 for details.
│ │ │ │ +790 */
│ │ │ │ +791 inline float
│ │ │ │ +_7_9_2 _e_l_l_i_n_t___3_f(float __k, float __nu, float __phi)
│ │ │ │ +793 { return __detail::__ellint_3(__k, __nu, __phi); }
│ │ │ │ +794
│ │ │ │ +795 /**
│ │ │ │ +796 * @brief Return the incomplete elliptic integral of the third kind
│ │ │ │ +797 * @f$ \Pi(k,\nu,\phi) @f$.
│ │ │ │ +798 *
│ │ │ │ +799 * @see ellint_3 for details.
│ │ │ │ +800 */
│ │ │ │ +801 inline long double
│ │ │ │ +_8_0_2 _e_l_l_i_n_t___3_l(long double __k, long double __nu, long double __phi)
│ │ │ │ +803 { return __detail::__ellint_3(__k, __nu, __phi); }
│ │ │ │ +804
│ │ │ │ +805 /**
│ │ │ │ +806 * @brief Return the incomplete elliptic integral of the third kind
│ │ │ │ +807 * @f$ \Pi(k,\nu,\phi) @f$.
│ │ │ │ +808 *
│ │ │ │ +809 * The incomplete elliptic integral of the third kind is defined by:
│ │ │ │ +810 * @f[
│ │ │ │ +811 * \Pi(k,\nu,\phi) = \int_0^{\phi}
│ │ │ │ +812 * \frac{d\theta}
│ │ │ │ +813 * {(1 - \nu \sin^2\theta)
│ │ │ │ +814 * \sqrt{1 - k^2 \sin^2\theta}}
│ │ │ │ +815 * @f]
│ │ │ │ +816 * For @f$ \phi= \pi/2 @f$ this becomes the complete elliptic integral of
│ │ │ │ +817 * the third kind, @f$ \Pi(k,\nu) @f$. @see comp_ellint_3.
│ │ │ │ +818 *
│ │ │ │ +819 * @tparam _Tp The floating-point type of the modulus @c __k.
│ │ │ │ +820 * @tparam _Tpn The floating-point type of the argument @c __nu.
│ │ │ │ +821 * @tparam _Tpp The floating-point type of the angle @c __phi.
│ │ │ │ +822 * @param __k The modulus, abs(__k) <= 1
│ │ │ │ +823 * @param __nu The second argument
│ │ │ │ +824 * @param __phi The integral limit argument in radians
│ │ │ │ +825 * @return The elliptic function of the third kind.
│ │ │ │ +826 * @throw std::domain_error if abs(__k) > 1 .
│ │ │ │ +827 */
│ │ │ │ +828 template
│ │ │ │ +829 inline typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type
│ │ │ │ +_8_3_0 _e_l_l_i_n_t___3(_Tp __k, _Tpn __nu, _Tpp __phi)
│ │ │ │ +831 {
│ │ │ │ +832 typedef typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type __type;
│ │ │ │ +833 return __detail::__ellint_3<__type>(__k, __nu, __phi);
│ │ │ │ +834 }
│ │ │ │ +835
│ │ │ │ +836 // Exponential integrals
│ │ │ │ +837
│ │ │ │ +838 /**
│ │ │ │ +839 * Return the exponential integral @f$ Ei(x) @f$ for @c float argument @c x.
│ │ │ │ +840 *
│ │ │ │ +841 * @see expint for details.
│ │ │ │ +842 */
│ │ │ │ +843 inline float
│ │ │ │ +_8_4_4 _e_x_p_i_n_t_f(float __x)
│ │ │ │ +845 { return __detail::__expint(__x); }
│ │ │ │ +846
│ │ │ │ +847 /**
│ │ │ │ +848 * Return the exponential integral @f$ Ei(x) @f$
│ │ │ │ +849 * for long double argument @c x.
│ │ │ │ +850 *
│ │ │ │ +851 * @see expint for details.
│ │ │ │ +852 */
│ │ │ │ +853 inline long double
│ │ │ │ +_8_5_4 _e_x_p_i_n_t_l(long double __x)
│ │ │ │ +855 { return __detail::__expint(__x); }
│ │ │ │ +856
│ │ │ │ +857 /**
│ │ │ │ +858 * Return the exponential integral @f$ Ei(x) @f$ for @c real argument @c x.
│ │ │ │ +859 *
│ │ │ │ +860 * The exponential integral is given by
│ │ │ │ +861 * \f[
│ │ │ │ +862 * Ei(x) = -\int_{-x}^\infty \frac{e^t}{t} dt
│ │ │ │ +863 * \f]
│ │ │ │ +864 *
│ │ │ │ +865 * @tparam _Tp The floating-point type of the argument @c __x.
│ │ │ │ +866 * @param __x The argument of the exponential integral function.
│ │ │ │ +867 */
│ │ │ │ +868 template
│ │ │ │ +869 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ │ +_8_7_0 _e_x_p_i_n_t(_Tp __x)
│ │ │ │ +871 {
│ │ │ │ +872 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ │ +873 return __detail::__expint<__type>(__x);
│ │ │ │ +874 }
│ │ │ │ +875
│ │ │ │ +876 // Hermite polynomials
│ │ │ │ +877
│ │ │ │ +878 /**
│ │ │ │ +879 * Return the Hermite polynomial @f$ H_n(x) @f$ of nonnegative order n
│ │ │ │ +880 * and float argument @c x.
│ │ │ │ +881 *
│ │ │ │ +882 * @see hermite for details.
│ │ │ │ +883 */
│ │ │ │ +884 inline float
│ │ │ │ +_8_8_5 _h_e_r_m_i_t_e_f(unsigned int __n, float __x)
│ │ │ │ +886 { return __detail::__poly_hermite(__n, __x); }
│ │ │ │ 887
│ │ │ │ -888 template
│ │ │ │ -889 void
│ │ │ │ -890 _v_e_c_t_o_r_<_b_o_o_l_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -891_ ___M___i_n_s_e_r_t___a_u_x(_i_t_e_r_a_t_o_r __position, bool __x)
│ │ │ │ -892 {
│ │ │ │ -893 if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr())
│ │ │ │ -894 {
│ │ │ │ -895 std::copy_backward(__position, this->_M_impl._M_finish,
│ │ │ │ -896 this->_M_impl._M_finish + 1);
│ │ │ │ -897 *__position = __x;
│ │ │ │ -898 ++this->_M_impl._M_finish;
│ │ │ │ -899 }
│ │ │ │ -900 else
│ │ │ │ -901 {
│ │ │ │ -902 const _s_i_z_e___t_y_p_e __len =
│ │ │ │ -903 _M_check_len(_s_i_z_e___t_y_p_e(1), "vector::_M_insert_aux");
│ │ │ │ -904 _Bit_pointer __q = this->_M_allocate(__len);
│ │ │ │ -905 _i_t_e_r_a_t_o_r __start(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__q), 0);
│ │ │ │ -906 _i_t_e_r_a_t_o_r __i = _M_copy_aligned(_b_e_g_i_n(), __position, __start);
│ │ │ │ -907 *__i++ = __x;
│ │ │ │ -908 _i_t_e_r_a_t_o_r __finish = std::copy(__position, _e_n_d(), __i);
│ │ │ │ -909 this->_M_deallocate();
│ │ │ │ -910 this->_M_impl._M_end_of_storage = __q + _S_nword(__len);
│ │ │ │ -911 this->_M_impl._M_start = __start;
│ │ │ │ -912 this->_M_impl._M_finish = __finish;
│ │ │ │ -913 }
│ │ │ │ -914 }
│ │ │ │ -915
│ │ │ │ -916 template
│ │ │ │ -917 typename vector::iterator
│ │ │ │ -918 _v_e_c_t_o_r_<_b_o_o_l_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -919_ ___M___e_r_a_s_e(_i_t_e_r_a_t_o_r __position)
│ │ │ │ -920 {
│ │ │ │ -921 if (__position + 1 != _e_n_d())
│ │ │ │ -922 std::copy(__position + 1, _e_n_d(), __position);
│ │ │ │ -923 --this->_M_impl._M_finish;
│ │ │ │ -924 return __position;
│ │ │ │ -925 }
│ │ │ │ -926
│ │ │ │ -927 template
│ │ │ │ -928 typename vector::iterator
│ │ │ │ -929 _v_e_c_t_o_r_<_b_o_o_l_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -930_ ___M___e_r_a_s_e(_i_t_e_r_a_t_o_r __first, _i_t_e_r_a_t_o_r __last)
│ │ │ │ -931 {
│ │ │ │ -932 if (__first != __last)
│ │ │ │ -933 _M_erase_at_end(std::copy(__last, _e_n_d(), __first));
│ │ │ │ -934 return __first;
│ │ │ │ -935 }
│ │ │ │ -936
│ │ │ │ -937#if __cplusplus >= 201103L
│ │ │ │ -938 template
│ │ │ │ -939 bool
│ │ │ │ -940 _v_e_c_t_o_r_<_b_o_o_l_,_ ___A_l_l_o_c_>_:_:
│ │ │ │ -941_ ___M___s_h_r_i_n_k___t_o___f_i_t()
│ │ │ │ -942 {
│ │ │ │ -943 if (capacity() - _s_i_z_e() < int(_S_word_bit))
│ │ │ │ -944 return false;
│ │ │ │ -945 __try
│ │ │ │ -946 {
│ │ │ │ -947 if (_s_i_z_e___t_y_p_e __n = _s_i_z_e())
│ │ │ │ -948 _M_reallocate(__n);
│ │ │ │ -949 else
│ │ │ │ -950 {
│ │ │ │ -951 this->_M_deallocate();
│ │ │ │ -952 this->_M_impl._M_reset();
│ │ │ │ -953 }
│ │ │ │ -954 return true;
│ │ │ │ -955 }
│ │ │ │ -956 __catch(...)
│ │ │ │ -957 { return false; }
│ │ │ │ -958 }
│ │ │ │ -959#endif
│ │ │ │ -960
│ │ │ │ -961_GLIBCXX_END_NAMESPACE_CONTAINER
│ │ │ │ -962_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ -963} // namespace std
│ │ │ │ -964
│ │ │ │ -965#if __cplusplus >= 201103L
│ │ │ │ -966
│ │ │ │ -967namespace _s_t_d _GLIBCXX_VISIBILITY(default)
│ │ │ │ -968{
│ │ │ │ -969_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ -970
│ │ │ │ -971 template
│ │ │ │ -972 size_t
│ │ │ │ -973 _h_a_s_h_<___G_L_I_B_C_X_X___S_T_D___C_:_:_v_e_c_t_o_r_<_b_o_o_l_,_ ___A_l_l_o_c_>>::
│ │ │ │ -974 operator()(const _GLIBCXX_STD_C::vector& __b) const noexcept
│ │ │ │ -975 {
│ │ │ │ -976 size_t __hash = 0;
│ │ │ │ -977 using _GLIBCXX_STD_C::_S_word_bit;
│ │ │ │ -978 using _GLIBCXX_STD_C::_Bit_type;
│ │ │ │ +888 /**
│ │ │ │ +889 * Return the Hermite polynomial @f$ H_n(x) @f$ of nonnegative order n
│ │ │ │ +890 * and long double argument @c x.
│ │ │ │ +891 *
│ │ │ │ +892 * @see hermite for details.
│ │ │ │ +893 */
│ │ │ │ +894 inline long double
│ │ │ │ +_8_9_5 _h_e_r_m_i_t_e_l(unsigned int __n, long double __x)
│ │ │ │ +896 { return __detail::__poly_hermite(__n, __x); }
│ │ │ │ +897
│ │ │ │ +898 /**
│ │ │ │ +899 * Return the Hermite polynomial @f$ H_n(x) @f$ of order n
│ │ │ │ +900 * and @c real argument @c x.
│ │ │ │ +901 *
│ │ │ │ +902 * The Hermite polynomial is defined by:
│ │ │ │ +903 * @f[
│ │ │ │ +904 * H_n(x) = (-1)^n e^{x^2} \frac{d^n}{dx^n} e^{-x^2}
│ │ │ │ +905 * @f]
│ │ │ │ +906 *
│ │ │ │ +907 * The Hermite polynomial obeys a reflection formula:
│ │ │ │ +908 * @f[
│ │ │ │ +909 * H_n(-x) = (-1)^n H_n(x)
│ │ │ │ +910 * @f]
│ │ │ │ +911 *
│ │ │ │ +912 * @tparam _Tp The floating-point type of the argument @c __x.
│ │ │ │ +913 * @param __n The order
│ │ │ │ +914 * @param __x The argument
│ │ │ │ +915 */
│ │ │ │ +916 template
│ │ │ │ +917 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ │ +_9_1_8 _h_e_r_m_i_t_e(unsigned int __n, _Tp __x)
│ │ │ │ +919 {
│ │ │ │ +920 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ │ +921 return __detail::__poly_hermite<__type>(__n, __x);
│ │ │ │ +922 }
│ │ │ │ +923
│ │ │ │ +924 // Laguerre polynomials
│ │ │ │ +925
│ │ │ │ +926 /**
│ │ │ │ +927 * Returns the Laguerre polynomial @f$ L_n(x) @f$ of nonnegative degree @c n
│ │ │ │ +928 * and @c float argument @f$ x >= 0 @f$.
│ │ │ │ +929 *
│ │ │ │ +930 * @see laguerre for more details.
│ │ │ │ +931 */
│ │ │ │ +932 inline float
│ │ │ │ +_9_3_3 _l_a_g_u_e_r_r_e_f(unsigned int __n, float __x)
│ │ │ │ +934 { return __detail::__laguerre(__n, __x); }
│ │ │ │ +935
│ │ │ │ +936 /**
│ │ │ │ +937 * Returns the Laguerre polynomial @f$ L_n(x) @f$ of nonnegative degree @c n
│ │ │ │ +938 * and long double argument @f$ x >= 0 @f$.
│ │ │ │ +939 *
│ │ │ │ +940 * @see laguerre for more details.
│ │ │ │ +941 */
│ │ │ │ +942 inline long double
│ │ │ │ +_9_4_3 _l_a_g_u_e_r_r_e_l(unsigned int __n, long double __x)
│ │ │ │ +944 { return __detail::__laguerre(__n, __x); }
│ │ │ │ +945
│ │ │ │ +946 /**
│ │ │ │ +947 * Returns the Laguerre polynomial @f$ L_n(x) @f$
│ │ │ │ +948 * of nonnegative degree @c n and real argument @f$ x >= 0 @f$.
│ │ │ │ +949 *
│ │ │ │ +950 * The Laguerre polynomial is defined by:
│ │ │ │ +951 * @f[
│ │ │ │ +952 * L_n(x) = \frac{e^x}{n!} \frac{d^n}{dx^n} (x^ne^{-x})
│ │ │ │ +953 * @f]
│ │ │ │ +954 *
│ │ │ │ +955 * @tparam _Tp The floating-point type of the argument @c __x.
│ │ │ │ +956 * @param __n The nonnegative order
│ │ │ │ +957 * @param __x The argument __x >= 0
│ │ │ │ +958 * @throw std::domain_error if __x < 0 .
│ │ │ │ +959 */
│ │ │ │ +960 template
│ │ │ │ +961 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ │ +_9_6_2 _l_a_g_u_e_r_r_e(unsigned int __n, _Tp __x)
│ │ │ │ +963 {
│ │ │ │ +964 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ │ +965 return __detail::__laguerre<__type>(__n, __x);
│ │ │ │ +966 }
│ │ │ │ +967
│ │ │ │ +968 // Legendre polynomials
│ │ │ │ +969
│ │ │ │ +970 /**
│ │ │ │ +971 * Return the Legendre polynomial @f$ P_l(x) @f$ of nonnegative
│ │ │ │ +972 * degree @f$ l @f$ and @c float argument @f$ |x| <= 0 @f$.
│ │ │ │ +973 *
│ │ │ │ +974 * @see legendre for more details.
│ │ │ │ +975 */
│ │ │ │ +976 inline float
│ │ │ │ +_9_7_7 _l_e_g_e_n_d_r_e_f(unsigned int __l, float __x)
│ │ │ │ +978 { return __detail::__poly_legendre_p(__l, __x); }
│ │ │ │ 979
│ │ │ │ -980 const size_t __words = __b.size() / _S_word_bit;
│ │ │ │ -981 if (__words)
│ │ │ │ -982 {
│ │ │ │ -983 const size_t __clength = __words * sizeof(_Bit_type);
│ │ │ │ -984 __hash = std::_Hash_impl::hash(__b._M_impl._M_start._M_p, __clength);
│ │ │ │ -985 }
│ │ │ │ -986
│ │ │ │ -987 const size_t __extrabits = __b.size() % _S_word_bit;
│ │ │ │ -988 if (__extrabits)
│ │ │ │ -989 {
│ │ │ │ -990 _Bit_type __hiword = *__b._M_impl._M_finish._M_p;
│ │ │ │ -991 __hiword &= ~((~static_cast<_Bit_type>(0)) << __extrabits);
│ │ │ │ -992
│ │ │ │ -993 const size_t __clength
│ │ │ │ -994 = (__extrabits + __CHAR_BIT__ - 1) / __CHAR_BIT__;
│ │ │ │ -995 if (__words)
│ │ │ │ -996 __hash = std::_Hash_impl::hash(&__hiword, __clength, __hash);
│ │ │ │ -997 else
│ │ │ │ -998 __hash = std::_Hash_impl::hash(&__hiword, __clength);
│ │ │ │ -999 }
│ │ │ │ -1000
│ │ │ │ -1001 return __hash;
│ │ │ │ -1002 }
│ │ │ │ -1003
│ │ │ │ -1004_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ -1005} // namespace std
│ │ │ │ -1006
│ │ │ │ -1007#endif // C++11
│ │ │ │ -1008
│ │ │ │ -1009#undef _GLIBCXX_ASAN_ANNOTATE_REINIT
│ │ │ │ -1010#undef _GLIBCXX_ASAN_ANNOTATE_GROW
│ │ │ │ -1011#undef _GLIBCXX_ASAN_ANNOTATE_GREW
│ │ │ │ -1012#undef _GLIBCXX_ASAN_ANNOTATE_SHRINK
│ │ │ │ -1013
│ │ │ │ -1014#endif /* _VECTOR_TCC */
│ │ │ │ -_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_0_4
│ │ │ │ -_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_:_4_9
│ │ │ │ -_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_7
│ │ │ │ -_s_t_d_:_:_e_n_d
│ │ │ │ -_Tp * end(valarray< _Tp > &__va) noexcept
│ │ │ │ -Return an iterator pointing to one past the last element of the valarray.
│ │ │ │ -DDeeffiinniittiioonn _v_a_l_a_r_r_a_y_:_1_2_3_9
│ │ │ │ -_s_t_d_:_:_b_e_g_i_n
│ │ │ │ -_Tp * begin(valarray< _Tp > &__va) noexcept
│ │ │ │ -Return an iterator pointing to the first element of the valarray.
│ │ │ │ -DDeeffiinniittiioonn _v_a_l_a_r_r_a_y_:_1_2_1_7
│ │ │ │ -_s_t_d_:_:_____i_t_e_r_a_t_o_r___c_a_t_e_g_o_r_y
│ │ │ │ -constexpr iterator_traits< _Iter >::iterator_category __iterator_category(const
│ │ │ │ -_Iter &)
│ │ │ │ -DDeeffiinniittiioonn _s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___t_y_p_e_s_._h_:_2_3_8
│ │ │ │ +980 /**
│ │ │ │ +981 * Return the Legendre polynomial @f$ P_l(x) @f$ of nonnegative
│ │ │ │ +982 * degree @f$ l @f$ and long double argument @f$ |x| <= 0 @f$.
│ │ │ │ +983 *
│ │ │ │ +984 * @see legendre for more details.
│ │ │ │ +985 */
│ │ │ │ +986 inline long double
│ │ │ │ +_9_8_7 _l_e_g_e_n_d_r_e_l(unsigned int __l, long double __x)
│ │ │ │ +988 { return __detail::__poly_legendre_p(__l, __x); }
│ │ │ │ +989
│ │ │ │ +990 /**
│ │ │ │ +991 * Return the Legendre polynomial @f$ P_l(x) @f$ of nonnegative
│ │ │ │ +992 * degree @f$ l @f$ and real argument @f$ |x| <= 0 @f$.
│ │ │ │ +993 *
│ │ │ │ +994 * The Legendre function of order @f$ l @f$ and argument @f$ x @f$,
│ │ │ │ +995 * @f$ P_l(x) @f$, is defined by:
│ │ │ │ +996 * @f[
│ │ │ │ +997 * P_l(x) = \frac{1}{2^l l!}\frac{d^l}{dx^l}(x^2 - 1)^{l}
│ │ │ │ +998 * @f]
│ │ │ │ +999 *
│ │ │ │ +1000 * @tparam _Tp The floating-point type of the argument @c __x.
│ │ │ │ +1001 * @param __l The degree @f$ l >= 0 @f$
│ │ │ │ +1002 * @param __x The argument @c abs(__x) <= 1
│ │ │ │ +1003 * @throw std::domain_error if @c abs(__x) > 1
│ │ │ │ +1004 */
│ │ │ │ +1005 template
│ │ │ │ +1006 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ │ +_1_0_0_7 _l_e_g_e_n_d_r_e(unsigned int __l, _Tp __x)
│ │ │ │ +1008 {
│ │ │ │ +1009 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ │ +1010 return __detail::__poly_legendre_p<__type>(__l, __x);
│ │ │ │ +1011 }
│ │ │ │ +1012
│ │ │ │ +1013 // Riemann zeta functions
│ │ │ │ +1014
│ │ │ │ +1015 /**
│ │ │ │ +1016 * Return the Riemann zeta function @f$ \zeta(s) @f$
│ │ │ │ +1017 * for @c float argument @f$ s @f$.
│ │ │ │ +1018 *
│ │ │ │ +1019 * @see riemann_zeta for more details.
│ │ │ │ +1020 */
│ │ │ │ +1021 inline float
│ │ │ │ +_1_0_2_2 _r_i_e_m_a_n_n___z_e_t_a_f(float __s)
│ │ │ │ +1023 { return __detail::__riemann_zeta(__s); }
│ │ │ │ +1024
│ │ │ │ +1025 /**
│ │ │ │ +1026 * Return the Riemann zeta function @f$ \zeta(s) @f$
│ │ │ │ +1027 * for long double argument @f$ s @f$.
│ │ │ │ +1028 *
│ │ │ │ +1029 * @see riemann_zeta for more details.
│ │ │ │ +1030 */
│ │ │ │ +1031 inline long double
│ │ │ │ +_1_0_3_2 _r_i_e_m_a_n_n___z_e_t_a_l(long double __s)
│ │ │ │ +1033 { return __detail::__riemann_zeta(__s); }
│ │ │ │ +1034
│ │ │ │ +1035 /**
│ │ │ │ +1036 * Return the Riemann zeta function @f$ \zeta(s) @f$
│ │ │ │ +1037 * for real argument @f$ s @f$.
│ │ │ │ +1038 *
│ │ │ │ +1039 * The Riemann zeta function is defined by:
│ │ │ │ +1040 * @f[
│ │ │ │ +1041 * \zeta(s) = \sum_{k=1}^{\infty} k^{-s} \hbox{ for } s > 1
│ │ │ │ +1042 * @f]
│ │ │ │ +1043 * and
│ │ │ │ +1044 * @f[
│ │ │ │ +1045 * \zeta(s) = \frac{1}{1-2^{1-s}}\sum_{k=1}^{\infty}(-1)^{k-1}k^{-s}
│ │ │ │ +1046 * \hbox{ for } 0 <= s <= 1
│ │ │ │ +1047 * @f]
│ │ │ │ +1048 * For s < 1 use the reflection formula:
│ │ │ │ +1049 * @f[
│ │ │ │ +1050 * \zeta(s) = 2^s \pi^{s-1} \sin(\frac{\pi s}{2}) \Gamma(1-s) \zeta(1-s)
│ │ │ │ +1051 * @f]
│ │ │ │ +1052 *
│ │ │ │ +1053 * @tparam _Tp The floating-point type of the argument @c __s.
│ │ │ │ +1054 * @param __s The argument s != 1
│ │ │ │ +1055 */
│ │ │ │ +1056 template
│ │ │ │ +1057 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ │ +_1_0_5_8 _r_i_e_m_a_n_n___z_e_t_a(_Tp __s)
│ │ │ │ +1059 {
│ │ │ │ +1060 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ │ +1061 return __detail::__riemann_zeta<__type>(__s);
│ │ │ │ +1062 }
│ │ │ │ +1063
│ │ │ │ +1064 // Spherical Bessel functions
│ │ │ │ +1065
│ │ │ │ +1066 /**
│ │ │ │ +1067 * Return the spherical Bessel function @f$ j_n(x) @f$ of nonnegative order
│ │ │ │ +n
│ │ │ │ +1068 * and @c float argument @f$ x >= 0 @f$.
│ │ │ │ +1069 *
│ │ │ │ +1070 * @see sph_bessel for more details.
│ │ │ │ +1071 */
│ │ │ │ +1072 inline float
│ │ │ │ +_1_0_7_3 _s_p_h___b_e_s_s_e_l_f(unsigned int __n, float __x)
│ │ │ │ +1074 { return __detail::__sph_bessel(__n, __x); }
│ │ │ │ +1075
│ │ │ │ +1076 /**
│ │ │ │ +1077 * Return the spherical Bessel function @f$ j_n(x) @f$ of nonnegative order
│ │ │ │ +n
│ │ │ │ +1078 * and long double argument @f$ x >= 0 @f$.
│ │ │ │ +1079 *
│ │ │ │ +1080 * @see sph_bessel for more details.
│ │ │ │ +1081 */
│ │ │ │ +1082 inline long double
│ │ │ │ +_1_0_8_3 _s_p_h___b_e_s_s_e_l_l(unsigned int __n, long double __x)
│ │ │ │ +1084 { return __detail::__sph_bessel(__n, __x); }
│ │ │ │ +1085
│ │ │ │ +1086 /**
│ │ │ │ +1087 * Return the spherical Bessel function @f$ j_n(x) @f$ of nonnegative order
│ │ │ │ +n
│ │ │ │ +1088 * and real argument @f$ x >= 0 @f$.
│ │ │ │ +1089 *
│ │ │ │ +1090 * The spherical Bessel function is defined by:
│ │ │ │ +1091 * @f[
│ │ │ │ +1092 * j_n(x) = \left(\frac{\pi}{2x} \right) ^{1/2} J_{n+1/2}(x)
│ │ │ │ +1093 * @f]
│ │ │ │ +1094 *
│ │ │ │ +1095 * @tparam _Tp The floating-point type of the argument @c __x.
│ │ │ │ +1096 * @param __n The integral order n >= 0
│ │ │ │ +1097 * @param __x The real argument x >= 0
│ │ │ │ +1098 * @throw std::domain_error if __x < 0 .
│ │ │ │ +1099 */
│ │ │ │ +1100 template
│ │ │ │ +1101 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ │ +_1_1_0_2 _s_p_h___b_e_s_s_e_l(unsigned int __n, _Tp __x)
│ │ │ │ +1103 {
│ │ │ │ +1104 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ │ +1105 return __detail::__sph_bessel<__type>(__n, __x);
│ │ │ │ +1106 }
│ │ │ │ +1107
│ │ │ │ +1108 // Spherical associated Legendre functions
│ │ │ │ +1109
│ │ │ │ +1110 /**
│ │ │ │ +1111 * Return the spherical Legendre function of nonnegative integral
│ │ │ │ +1112 * degree @c l and order @c m and float angle @f$ \theta @f$ in radians.
│ │ │ │ +1113 *
│ │ │ │ +1114 * @see sph_legendre for details.
│ │ │ │ +1115 */
│ │ │ │ +1116 inline float
│ │ │ │ +_1_1_1_7 _s_p_h___l_e_g_e_n_d_r_e_f(unsigned int __l, unsigned int __m, float __theta)
│ │ │ │ +1118 { return __detail::__sph_legendre(__l, __m, __theta); }
│ │ │ │ +1119
│ │ │ │ +1120 /**
│ │ │ │ +1121 * Return the spherical Legendre function of nonnegative integral
│ │ │ │ +1122 * degree @c l and order @c m and long double angle @f$ \theta @f$
│ │ │ │ +1123 * in radians.
│ │ │ │ +1124 *
│ │ │ │ +1125 * @see sph_legendre for details.
│ │ │ │ +1126 */
│ │ │ │ +1127 inline long double
│ │ │ │ +_1_1_2_8 _s_p_h___l_e_g_e_n_d_r_e_l(unsigned int __l, unsigned int __m, long double __theta)
│ │ │ │ +1129 { return __detail::__sph_legendre(__l, __m, __theta); }
│ │ │ │ +1130
│ │ │ │ +1131 /**
│ │ │ │ +1132 * Return the spherical Legendre function of nonnegative integral
│ │ │ │ +1133 * degree @c l and order @c m and real angle @f$ \theta @f$ in radians.
│ │ │ │ +1134 *
│ │ │ │ +1135 * The spherical Legendre function is defined by
│ │ │ │ +1136 * @f[
│ │ │ │ +1137 * Y_l^m(\theta,\phi) = (-1)^m[\frac{(2l+1)}{4\pi}
│ │ │ │ +1138 * \frac{(l-m)!}{(l+m)!}]
│ │ │ │ +1139 * P_l^m(\cos\theta) \exp^{im\phi}
│ │ │ │ +1140 * @f]
│ │ │ │ +1141 *
│ │ │ │ +1142 * @tparam _Tp The floating-point type of the angle @c __theta.
│ │ │ │ +1143 * @param __l The order __l >= 0
│ │ │ │ +1144 * @param __m The degree __m >= 0 and __m <= __l
│ │ │ │ +1145 * @param __theta The radian polar angle argument
│ │ │ │ +1146 */
│ │ │ │ +1147 template
│ │ │ │ +1148 inline typename __gnu_cxx::__promote<_Tp>::__type
│ │ │ │ +_1_1_4_9 _s_p_h___l_e_g_e_n_d_r_e(unsigned int __l, unsigned int __m, _Tp __theta)
│ │ │ │ +1150 {
│ │ │ │ +1151 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
│ │ │ │ +1152 return __detail::__sph_legendre<__type>(__l, __m, __theta);
│ │ │ │ +1153 }
│ │ │ │ +1154
│ │ │ │ +1155 // Spherical Neumann functions
│ │ │ │ +1156
│ │ │ │ +1157 /**
│ │ │ │ +1158 * Return the spherical Neumann function of integral order @f$ n >= 0 @f$
│ │ │ │ +1159 * and @c float argument @f$ x >= 0 @f$.
│ │ │ │ +1160 *
│ │ │ │ +1161 * @see sph_neumann for details.
│ │ │ │ +1162 */
│ │ │ │ +1163 inline float
│ │ │ │ +_1_1_6_4 _s_p_h___n_e_u_m_a_n_n_f(unsigned int __n, float __x)
│ │ │ │ +1165 { return __detail::__sph_neumann(__n, __x); }
│ │ │ │ +1166
│ │ │ │ +1167 /**
│ │ │ │ +1168 * Return the spherical Neumann function of integral order @f$ n >= 0 @f$
│ │ │ │ +1169 * and