mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-14 17:06:38 +00:00
[libc++] Remove _LIBCPP_TEMPLATE_VIS (#134885)
The need for `_LIBCPP_TEMPLATE_VIS` has been removed in #133233.
This commit is contained in:
parent
f75dce43ea
commit
af9c04fa68
@ -43,7 +43,6 @@ AttributeMacros: [
|
||||
'_LIBCPP_OVERRIDABLE_FUNC_VIS',
|
||||
'_LIBCPP_STANDALONE_DEBUG',
|
||||
'_LIBCPP_TEMPLATE_DATA_VIS',
|
||||
'_LIBCPP_TEMPLATE_VIS',
|
||||
'_LIBCPP_THREAD_SAFETY_ANNOTATION',
|
||||
'_LIBCPP_USING_IF_EXISTS',
|
||||
'_LIBCPP_WEAK',
|
||||
|
@ -64,25 +64,13 @@ Visibility Macros
|
||||
ABI, we should create a new _LIBCPP_HIDE_FROM_ABI_AFTER_XXX macro, and we can
|
||||
use it to start removing symbols from the ABI after that stable version.
|
||||
|
||||
**_LIBCPP_TEMPLATE_VIS**
|
||||
Mark a type's typeinfo and vtable as having default visibility.
|
||||
This macro has no effect on the visibility of the type's member functions.
|
||||
|
||||
**GCC Behavior**: GCC does not support Clang's `type_visibility(...)`
|
||||
attribute. With GCC the `visibility(...)` attribute is used and member
|
||||
functions are affected.
|
||||
|
||||
**Windows Behavior**: DLLs do not support dllimport/export on class templates.
|
||||
The macro has an empty definition on this platform.
|
||||
|
||||
**_LIBCPP_EXTERN_TEMPLATE_TYPE_VIS**
|
||||
Mark the member functions, typeinfo, and vtable of the type named in
|
||||
an extern template declaration as being exported by the libc++ library.
|
||||
This attribute must be specified on all extern class template declarations.
|
||||
|
||||
This macro is used to override the `_LIBCPP_TEMPLATE_VIS` attribute
|
||||
specified on the primary template and to export the member functions produced
|
||||
by the explicit instantiation in the dylib.
|
||||
This macro is used to export the member functions produced by the explicit
|
||||
instantiation in the dylib.
|
||||
|
||||
**Windows Behavior**: `extern template` and `dllexport` are fundamentally
|
||||
incompatible *on a class template* on Windows; the former suppresses
|
||||
|
@ -32,7 +32,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
namespace chrono {
|
||||
|
||||
template <class _Rep, class _Period = ratio<1> >
|
||||
class _LIBCPP_TEMPLATE_VIS duration;
|
||||
class duration;
|
||||
|
||||
template <class _Tp>
|
||||
inline const bool __is_duration_v = false;
|
||||
@ -52,7 +52,7 @@ inline const bool __is_duration_v<const volatile duration<_Rep, _Period> > = tru
|
||||
} // namespace chrono
|
||||
|
||||
template <class _Rep1, class _Period1, class _Rep2, class _Period2>
|
||||
struct _LIBCPP_TEMPLATE_VIS common_type<chrono::duration<_Rep1, _Period1>, chrono::duration<_Rep2, _Period2> > {
|
||||
struct common_type<chrono::duration<_Rep1, _Period1>, chrono::duration<_Rep2, _Period2> > {
|
||||
typedef chrono::duration<typename common_type<_Rep1, _Rep2>::type, __ratio_gcd<_Period1, _Period2> > type;
|
||||
};
|
||||
|
||||
@ -107,7 +107,7 @@ inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR _ToDuration duration_cast(const d
|
||||
}
|
||||
|
||||
template <class _Rep>
|
||||
struct _LIBCPP_TEMPLATE_VIS treat_as_floating_point : is_floating_point<_Rep> {};
|
||||
struct treat_as_floating_point : is_floating_point<_Rep> {};
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
template <class _Rep>
|
||||
@ -115,7 +115,7 @@ inline constexpr bool treat_as_floating_point_v = treat_as_floating_point<_Rep>:
|
||||
#endif
|
||||
|
||||
template <class _Rep>
|
||||
struct _LIBCPP_TEMPLATE_VIS duration_values {
|
||||
struct duration_values {
|
||||
public:
|
||||
_LIBCPP_HIDE_FROM_ABI static _LIBCPP_CONSTEXPR _Rep zero() _NOEXCEPT { return _Rep(0); }
|
||||
_LIBCPP_HIDE_FROM_ABI static _LIBCPP_CONSTEXPR _Rep max() _NOEXCEPT { return numeric_limits<_Rep>::max(); }
|
||||
@ -156,7 +156,7 @@ inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR _ToDuration round(const duration<
|
||||
// duration
|
||||
|
||||
template <class _Rep, class _Period>
|
||||
class _LIBCPP_TEMPLATE_VIS duration {
|
||||
class duration {
|
||||
static_assert(!__is_duration_v<_Rep>, "A duration representation can not be a duration");
|
||||
static_assert(__is_ratio_v<_Period>, "Second template parameter of duration must be a std::ratio");
|
||||
static_assert(_Period::num > 0, "duration period must be positive");
|
||||
|
@ -698,7 +698,7 @@ __format_chrono(const _Tp& __value,
|
||||
} // namespace __formatter
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS __formatter_chrono {
|
||||
struct __formatter_chrono {
|
||||
public:
|
||||
template <class _ParseContext>
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr typename _ParseContext::iterator
|
||||
@ -716,7 +716,7 @@ public:
|
||||
};
|
||||
|
||||
template <class _Duration, __fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::sys_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::sys_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -730,7 +730,7 @@ public:
|
||||
# if _LIBCPP_HAS_EXPERIMENTAL_TZDB
|
||||
|
||||
template <class _Duration, __fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::utc_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::utc_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -741,7 +741,7 @@ public:
|
||||
};
|
||||
|
||||
template <class _Duration, __fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::tai_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::tai_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -752,7 +752,7 @@ public:
|
||||
};
|
||||
|
||||
template <class _Duration, __fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::gps_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::gps_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -766,7 +766,7 @@ public:
|
||||
# endif // _LIBCPP_HAS_TIME_ZONE_DATABASE && _LIBCPP_HAS_FILESYSTEM
|
||||
|
||||
template <class _Duration, __fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::file_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::file_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -777,7 +777,7 @@ public:
|
||||
};
|
||||
|
||||
template <class _Duration, __fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::local_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::local_time<_Duration>, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -811,7 +811,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::day, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::day, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -822,7 +822,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::month, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -833,7 +833,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::year, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -844,7 +844,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::weekday, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::weekday, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -855,7 +855,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::weekday_indexed, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::weekday_indexed, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -866,7 +866,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::weekday_last, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::weekday_last, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -877,7 +877,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month_day, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::month_day, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -888,7 +888,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month_day_last, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::month_day_last, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -899,7 +899,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month_weekday, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::month_weekday, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -910,7 +910,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month_weekday_last, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::month_weekday_last, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -921,7 +921,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::year_month, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -932,7 +932,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month_day, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::year_month_day, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -943,7 +943,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month_day_last, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::year_month_day_last, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -954,7 +954,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month_weekday, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::year_month_weekday, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
@ -965,7 +965,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month_weekday_last, _CharT> : public __formatter_chrono<_CharT> {
|
||||
struct formatter<chrono::year_month_weekday_last, _CharT> : public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_chrono<_CharT>;
|
||||
|
||||
|
@ -139,7 +139,7 @@ _LIBCPP_HIDE_FROM_ABI constexpr void __validate_time_zone(__flags __flags) {
|
||||
}
|
||||
|
||||
template <class _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS __parser_chrono {
|
||||
class __parser_chrono {
|
||||
using _ConstIterator _LIBCPP_NODEBUG = typename basic_format_parse_context<_CharT>::const_iterator;
|
||||
|
||||
public:
|
||||
|
@ -31,7 +31,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
namespace chrono {
|
||||
|
||||
template <class _Clock, class _Duration = typename _Clock::duration>
|
||||
class _LIBCPP_TEMPLATE_VIS time_point {
|
||||
class time_point {
|
||||
static_assert(__is_duration_v<_Duration>, "Second template parameter of time_point must be a std::chrono::duration");
|
||||
|
||||
public:
|
||||
@ -76,8 +76,7 @@ public:
|
||||
} // namespace chrono
|
||||
|
||||
template <class _Clock, class _Duration1, class _Duration2>
|
||||
struct _LIBCPP_TEMPLATE_VIS
|
||||
common_type<chrono::time_point<_Clock, _Duration1>, chrono::time_point<_Clock, _Duration2> > {
|
||||
struct common_type<chrono::time_point<_Clock, _Duration1>, chrono::time_point<_Clock, _Duration2> > {
|
||||
typedef chrono::time_point<_Clock, typename common_type<_Duration1, _Duration2>::type> type;
|
||||
};
|
||||
|
||||
|
@ -72,7 +72,7 @@ _LIBCPP_HIDE_FROM_ABI constexpr auto __get_comp_type() {
|
||||
|
||||
// [cmp.common], common comparison category type
|
||||
template <class... _Ts>
|
||||
struct _LIBCPP_TEMPLATE_VIS common_comparison_category {
|
||||
struct common_comparison_category {
|
||||
using type _LIBCPP_NODEBUG = decltype(__comp_detail::__get_comp_type<_Ts...>());
|
||||
};
|
||||
|
||||
|
@ -22,7 +22,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
|
||||
struct _LIBCPP_TEMPLATE_VIS compare_three_way {
|
||||
struct compare_three_way {
|
||||
template <class _T1, class _T2>
|
||||
requires three_way_comparable_with<_T1, _T2>
|
||||
constexpr _LIBCPP_HIDE_FROM_ABI auto operator()(_T1&& __t, _T2&& __u) const
|
||||
|
@ -34,8 +34,7 @@ struct _LIBCPP_HIDE_FROM_ABI __compare_three_way_result<
|
||||
};
|
||||
|
||||
template <class _Tp, class _Up = _Tp>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_NO_SPECIALIZATIONS compare_three_way_result
|
||||
: __compare_three_way_result<_Tp, _Up, void> {};
|
||||
struct _LIBCPP_NO_SPECIALIZATIONS compare_three_way_result : __compare_three_way_result<_Tp, _Up, void> {};
|
||||
|
||||
template <class _Tp, class _Up = _Tp>
|
||||
using compare_three_way_result_t = typename compare_three_way_result<_Tp, _Up>::type;
|
||||
|
@ -383,7 +383,6 @@ typedef __char32_t char32_t;
|
||||
# endif
|
||||
|
||||
# define _LIBCPP_HIDDEN
|
||||
# define _LIBCPP_TEMPLATE_VIS
|
||||
# define _LIBCPP_TEMPLATE_DATA_VIS
|
||||
# define _LIBCPP_NAMESPACE_VISIBILITY
|
||||
|
||||
@ -406,10 +405,6 @@ typedef __char32_t char32_t;
|
||||
# define _LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_VISIBILITY("default")
|
||||
# endif
|
||||
|
||||
// This is kept to avoid a huge library-wide diff in the first step.
|
||||
// TODO: Remove this in a follow-up patch
|
||||
# define _LIBCPP_TEMPLATE_VIS
|
||||
|
||||
# if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) && __has_attribute(__type_visibility__)
|
||||
# define _LIBCPP_NAMESPACE_VISIBILITY __attribute__((__type_visibility__("default")))
|
||||
# elif !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS)
|
||||
|
@ -28,10 +28,10 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
// [coroutine.handle]
|
||||
template <class _Promise = void>
|
||||
struct _LIBCPP_TEMPLATE_VIS coroutine_handle;
|
||||
struct coroutine_handle;
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS coroutine_handle<void> {
|
||||
struct coroutine_handle<void> {
|
||||
public:
|
||||
// [coroutine.handle.con], construct/reset
|
||||
constexpr coroutine_handle() noexcept = default;
|
||||
@ -93,7 +93,7 @@ operator<=>(coroutine_handle<> __x, coroutine_handle<> __y) noexcept {
|
||||
}
|
||||
|
||||
template <class _Promise>
|
||||
struct _LIBCPP_TEMPLATE_VIS coroutine_handle {
|
||||
struct coroutine_handle {
|
||||
public:
|
||||
// [coroutine.handle.con], construct/reset
|
||||
constexpr coroutine_handle() noexcept = default;
|
||||
|
@ -28,7 +28,7 @@ struct noop_coroutine_promise {};
|
||||
|
||||
// [coroutine.handle.noop]
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS coroutine_handle<noop_coroutine_promise> {
|
||||
struct coroutine_handle<noop_coroutine_promise> {
|
||||
public:
|
||||
// [coroutine.handle.noop.conv], conversion
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr operator coroutine_handle<>() const noexcept {
|
||||
|
@ -179,7 +179,7 @@ private:
|
||||
/// The latter option allows formatted_size to use the output buffer without
|
||||
/// ever writing anything to the buffer.
|
||||
template <__fmt_char_type _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS __output_buffer {
|
||||
class __output_buffer {
|
||||
public:
|
||||
using value_type _LIBCPP_NODEBUG = _CharT;
|
||||
using __prepare_write_type _LIBCPP_NODEBUG = void (*)(__output_buffer<_CharT>&, size_t);
|
||||
@ -339,18 +339,18 @@ concept __insertable =
|
||||
|
||||
/// Extract the container type of a \ref back_insert_iterator.
|
||||
template <class _It>
|
||||
struct _LIBCPP_TEMPLATE_VIS __back_insert_iterator_container {
|
||||
struct __back_insert_iterator_container {
|
||||
using type _LIBCPP_NODEBUG = void;
|
||||
};
|
||||
|
||||
template <__insertable _Container>
|
||||
struct _LIBCPP_TEMPLATE_VIS __back_insert_iterator_container<back_insert_iterator<_Container>> {
|
||||
struct __back_insert_iterator_container<back_insert_iterator<_Container>> {
|
||||
using type _LIBCPP_NODEBUG = _Container;
|
||||
};
|
||||
|
||||
// A dynamically growing buffer.
|
||||
template <__fmt_char_type _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS __allocating_buffer : public __output_buffer<_CharT> {
|
||||
class __allocating_buffer : public __output_buffer<_CharT> {
|
||||
public:
|
||||
__allocating_buffer(const __allocating_buffer&) = delete;
|
||||
__allocating_buffer& operator=(const __allocating_buffer&) = delete;
|
||||
@ -407,7 +407,7 @@ private:
|
||||
|
||||
// A buffer that directly writes to the underlying buffer.
|
||||
template <class _OutIt, __fmt_char_type _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS __direct_iterator_buffer : public __output_buffer<_CharT> {
|
||||
class __direct_iterator_buffer : public __output_buffer<_CharT> {
|
||||
public:
|
||||
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI explicit __direct_iterator_buffer(_OutIt __out_it)
|
||||
: __direct_iterator_buffer{__out_it, nullptr} {}
|
||||
@ -436,7 +436,7 @@ private:
|
||||
|
||||
// A buffer that writes its output to the end of a container.
|
||||
template <class _OutIt, __fmt_char_type _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS __container_inserter_buffer : public __output_buffer<_CharT> {
|
||||
class __container_inserter_buffer : public __output_buffer<_CharT> {
|
||||
public:
|
||||
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI explicit __container_inserter_buffer(_OutIt __out_it)
|
||||
: __container_inserter_buffer{__out_it, nullptr} {}
|
||||
@ -477,7 +477,7 @@ private:
|
||||
// Unlike the __container_inserter_buffer this class' performance does benefit
|
||||
// from allocating and then inserting.
|
||||
template <class _OutIt, __fmt_char_type _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS __iterator_buffer : public __allocating_buffer<_CharT> {
|
||||
class __iterator_buffer : public __allocating_buffer<_CharT> {
|
||||
public:
|
||||
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI explicit __iterator_buffer(_OutIt __out_it)
|
||||
: __allocating_buffer<_CharT>{}, __out_it_{std::move(__out_it)} {}
|
||||
@ -495,7 +495,7 @@ private:
|
||||
|
||||
// Selects the type of the buffer used for the output iterator.
|
||||
template <class _OutIt, __fmt_char_type _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS __buffer_selector {
|
||||
class __buffer_selector {
|
||||
using _Container _LIBCPP_NODEBUG = __back_insert_iterator_container<_OutIt>::type;
|
||||
|
||||
public:
|
||||
@ -509,7 +509,7 @@ public:
|
||||
|
||||
// A buffer that counts and limits the number of insertions.
|
||||
template <class _OutIt, __fmt_char_type _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS __format_to_n_buffer : private __buffer_selector<_OutIt, _CharT>::type {
|
||||
class __format_to_n_buffer : private __buffer_selector<_OutIt, _CharT>::type {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __buffer_selector<_OutIt, _CharT>::type;
|
||||
|
||||
@ -533,7 +533,7 @@ private:
|
||||
// Since formatted_size only needs to know the size, the output itself is
|
||||
// discarded.
|
||||
template <__fmt_char_type _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS __formatted_size_buffer : private __output_buffer<_CharT> {
|
||||
class __formatted_size_buffer : private __output_buffer<_CharT> {
|
||||
public:
|
||||
using _Base _LIBCPP_NODEBUG = __output_buffer<_CharT>;
|
||||
|
||||
@ -576,7 +576,7 @@ private:
|
||||
// This class uses its own buffer management, since using vector
|
||||
// would lead to a circular include with formatter for vector<bool>.
|
||||
template <__fmt_char_type _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS __retarget_buffer {
|
||||
class __retarget_buffer {
|
||||
using _Alloc _LIBCPP_NODEBUG = allocator<_CharT>;
|
||||
|
||||
public:
|
||||
|
@ -35,7 +35,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
// adaptor headers. To use the format functions users already include <format>.
|
||||
|
||||
template <class _Adaptor, class _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS __formatter_container_adaptor {
|
||||
struct __formatter_container_adaptor {
|
||||
private:
|
||||
using __maybe_const_container _LIBCPP_NODEBUG = __fmt_maybe_const<typename _Adaptor::container_type, _CharT>;
|
||||
using __maybe_const_adaptor _LIBCPP_NODEBUG = __maybe_const<is_const_v<__maybe_const_container>, _Adaptor>;
|
||||
@ -55,15 +55,15 @@ public:
|
||||
};
|
||||
|
||||
template <class _CharT, class _Tp, formattable<_CharT> _Container>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<queue<_Tp, _Container>, _CharT>
|
||||
struct formatter<queue<_Tp, _Container>, _CharT>
|
||||
: public __formatter_container_adaptor<queue<_Tp, _Container>, _CharT> {};
|
||||
|
||||
template <class _CharT, class _Tp, class _Container, class _Compare>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<priority_queue<_Tp, _Container, _Compare>, _CharT>
|
||||
struct formatter<priority_queue<_Tp, _Container, _Compare>, _CharT>
|
||||
: public __formatter_container_adaptor<priority_queue<_Tp, _Container, _Compare>, _CharT> {};
|
||||
|
||||
template <class _CharT, class _Tp, formattable<_CharT> _Container>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<stack<_Tp, _Container>, _CharT>
|
||||
struct formatter<stack<_Tp, _Container>, _CharT>
|
||||
: public __formatter_container_adaptor<stack<_Tp, _Container>, _CharT> {};
|
||||
|
||||
#endif // _LIBCPP_STD_VER >= 23
|
||||
|
@ -277,9 +277,9 @@ public:
|
||||
};
|
||||
|
||||
template <class _Context>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_NO_SPECIALIZATIONS basic_format_arg {
|
||||
class _LIBCPP_NO_SPECIALIZATIONS basic_format_arg {
|
||||
public:
|
||||
class _LIBCPP_TEMPLATE_VIS handle;
|
||||
class handle;
|
||||
|
||||
_LIBCPP_HIDE_FROM_ABI basic_format_arg() noexcept : __type_{__format::__arg_t::__none} {}
|
||||
|
||||
@ -355,7 +355,7 @@ public:
|
||||
};
|
||||
|
||||
template <class _Context>
|
||||
class _LIBCPP_TEMPLATE_VIS basic_format_arg<_Context>::handle {
|
||||
class basic_format_arg<_Context>::handle {
|
||||
public:
|
||||
_LIBCPP_HIDE_FROM_ABI void format(basic_format_parse_context<char_type>& __parse_ctx, _Context& __ctx) const {
|
||||
__handle_.__format_(__parse_ctx, __ctx, __handle_.__ptr_);
|
||||
|
@ -247,7 +247,7 @@ struct __unpacked_format_arg_store {
|
||||
} // namespace __format
|
||||
|
||||
template <class _Context, class... _Args>
|
||||
struct _LIBCPP_TEMPLATE_VIS __format_arg_store {
|
||||
struct __format_arg_store {
|
||||
_LIBCPP_HIDE_FROM_ABI __format_arg_store(_Args&... __args) noexcept {
|
||||
if constexpr (sizeof...(_Args) != 0) {
|
||||
if constexpr (__format::__use_packed_format_arg_store(sizeof...(_Args)))
|
||||
|
@ -26,7 +26,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <class _Context>
|
||||
class _LIBCPP_TEMPLATE_VIS basic_format_args {
|
||||
class basic_format_args {
|
||||
public:
|
||||
template <class... _Args>
|
||||
_LIBCPP_HIDE_FROM_ABI basic_format_args(const __format_arg_store<_Context, _Args...>& __store) noexcept
|
||||
|
@ -42,7 +42,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _OutIt, class _CharT>
|
||||
requires output_iterator<_OutIt, const _CharT&>
|
||||
class _LIBCPP_TEMPLATE_VIS basic_format_context;
|
||||
class basic_format_context;
|
||||
|
||||
# if _LIBCPP_HAS_LOCALIZATION
|
||||
/**
|
||||
@ -72,13 +72,8 @@ using wformat_context = basic_format_context< back_insert_iterator<__format::__o
|
||||
|
||||
template <class _OutIt, class _CharT>
|
||||
requires output_iterator<_OutIt, const _CharT&>
|
||||
class
|
||||
// clang-format off
|
||||
_LIBCPP_TEMPLATE_VIS
|
||||
_LIBCPP_PREFERRED_NAME(format_context)
|
||||
_LIBCPP_IF_WIDE_CHARACTERS(_LIBCPP_PREFERRED_NAME(wformat_context))
|
||||
// clang-format on
|
||||
basic_format_context {
|
||||
class _LIBCPP_PREFERRED_NAME(format_context)
|
||||
_LIBCPP_IF_WIDE_CHARACTERS(_LIBCPP_PREFERRED_NAME(wformat_context)) basic_format_context {
|
||||
public:
|
||||
using iterator = _OutIt;
|
||||
using char_type = _CharT;
|
||||
@ -153,7 +148,7 @@ public:
|
||||
// Here the width of an element in input is determined dynamically.
|
||||
// Note when the top-level element has no width the retargeting is not needed.
|
||||
template <class _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS basic_format_context<typename __format::__retarget_buffer<_CharT>::__iterator, _CharT> {
|
||||
class basic_format_context<typename __format::__retarget_buffer<_CharT>::__iterator, _CharT> {
|
||||
public:
|
||||
using iterator = typename __format::__retarget_buffer<_CharT>::__iterator;
|
||||
using char_type = _CharT;
|
||||
|
@ -83,7 +83,7 @@ namespace __format {
|
||||
/// When parsing a handle which is not enabled the code is ill-formed.
|
||||
/// This helper uses the parser of the appropriate formatter for the stored type.
|
||||
template <class _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS __compile_time_handle {
|
||||
class __compile_time_handle {
|
||||
public:
|
||||
template <class _ParseContext>
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr void __parse(_ParseContext& __ctx) const {
|
||||
@ -110,7 +110,7 @@ private:
|
||||
// Dummy format_context only providing the parts used during constant
|
||||
// validation of the basic_format_string.
|
||||
template <class _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS __compile_time_basic_format_context {
|
||||
struct __compile_time_basic_format_context {
|
||||
public:
|
||||
using char_type = _CharT;
|
||||
|
||||
@ -339,12 +339,12 @@ _LIBCPP_HIDE_FROM_ABI constexpr typename _Ctx::iterator __vformat_to(_ParseCtx&&
|
||||
|
||||
# if _LIBCPP_STD_VER >= 26
|
||||
template <class _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS __runtime_format_string {
|
||||
struct __runtime_format_string {
|
||||
private:
|
||||
basic_string_view<_CharT> __str_;
|
||||
|
||||
template <class _Cp, class... _Args>
|
||||
friend struct _LIBCPP_TEMPLATE_VIS basic_format_string;
|
||||
friend struct basic_format_string;
|
||||
|
||||
public:
|
||||
_LIBCPP_HIDE_FROM_ABI __runtime_format_string(basic_string_view<_CharT> __s) noexcept : __str_(__s) {}
|
||||
@ -362,7 +362,7 @@ _LIBCPP_HIDE_FROM_ABI inline __runtime_format_string<wchar_t> runtime_format(wst
|
||||
# endif // _LIBCPP_STD_VER >= 26
|
||||
|
||||
template <class _CharT, class... _Args>
|
||||
struct _LIBCPP_TEMPLATE_VIS basic_format_string {
|
||||
struct basic_format_string {
|
||||
template <class _Tp>
|
||||
requires convertible_to<const _Tp&, basic_string_view<_CharT>>
|
||||
consteval basic_format_string(const _Tp& __str) : __str_{__str} {
|
||||
|
@ -24,7 +24,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <class _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS basic_format_parse_context {
|
||||
class basic_format_parse_context {
|
||||
public:
|
||||
using char_type = _CharT;
|
||||
using const_iterator = typename basic_string_view<_CharT>::const_iterator;
|
||||
|
@ -29,7 +29,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
namespace __format {
|
||||
|
||||
template <contiguous_iterator _Iterator>
|
||||
struct _LIBCPP_TEMPLATE_VIS __parse_number_result {
|
||||
struct __parse_number_result {
|
||||
_Iterator __last;
|
||||
uint32_t __value;
|
||||
};
|
||||
|
@ -22,7 +22,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <class _OutIt>
|
||||
struct _LIBCPP_TEMPLATE_VIS format_to_n_result {
|
||||
struct format_to_n_result {
|
||||
_OutIt out;
|
||||
iter_difference_t<_OutIt> size;
|
||||
};
|
||||
|
@ -37,7 +37,7 @@ struct __disabled_formatter {
|
||||
/// - is_copy_assignable_v<F>, and
|
||||
/// - is_move_assignable_v<F>.
|
||||
template <class _Tp, class _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter : __disabled_formatter {};
|
||||
struct formatter : __disabled_formatter {};
|
||||
|
||||
# if _LIBCPP_STD_VER >= 23
|
||||
|
||||
|
@ -33,7 +33,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<bool, _CharT> {
|
||||
struct formatter<bool, _CharT> {
|
||||
public:
|
||||
template <class _ParseContext>
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr typename _ParseContext::iterator parse(_ParseContext& __ctx) {
|
||||
|
@ -31,7 +31,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS __formatter_char {
|
||||
struct __formatter_char {
|
||||
public:
|
||||
template <class _ParseContext>
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr typename _ParseContext::iterator parse(_ParseContext& __ctx) {
|
||||
@ -75,14 +75,14 @@ public:
|
||||
};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<char, char> : public __formatter_char<char> {};
|
||||
struct formatter<char, char> : public __formatter_char<char> {};
|
||||
|
||||
# if _LIBCPP_HAS_WIDE_CHARACTERS
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<char, wchar_t> : public __formatter_char<wchar_t> {};
|
||||
struct formatter<char, wchar_t> : public __formatter_char<wchar_t> {};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<wchar_t, wchar_t> : public __formatter_char<wchar_t> {};
|
||||
struct formatter<wchar_t, wchar_t> : public __formatter_char<wchar_t> {};
|
||||
# endif // _LIBCPP_HAS_WIDE_CHARACTERS
|
||||
|
||||
# if _LIBCPP_STD_VER >= 23
|
||||
|
@ -140,7 +140,7 @@ struct __traits<double> {
|
||||
/// Depending on the maximum size required for a value, the buffer is allocated
|
||||
/// on the stack or the heap.
|
||||
template <floating_point _Fp>
|
||||
class _LIBCPP_TEMPLATE_VIS __float_buffer {
|
||||
class __float_buffer {
|
||||
using _Traits _LIBCPP_NODEBUG = __traits<_Fp>;
|
||||
|
||||
public:
|
||||
@ -750,7 +750,7 @@ __format_floating_point(_Tp __value, _FormatContext& __ctx, __format_spec::__par
|
||||
} // namespace __formatter
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS __formatter_floating_point {
|
||||
struct __formatter_floating_point {
|
||||
public:
|
||||
template <class _ParseContext>
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr typename _ParseContext::iterator parse(_ParseContext& __ctx) {
|
||||
@ -768,11 +768,11 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<float, _CharT> : public __formatter_floating_point<_CharT> {};
|
||||
struct formatter<float, _CharT> : public __formatter_floating_point<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<double, _CharT> : public __formatter_floating_point<_CharT> {};
|
||||
struct formatter<double, _CharT> : public __formatter_floating_point<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<long double, _CharT> : public __formatter_floating_point<_CharT> {};
|
||||
struct formatter<long double, _CharT> : public __formatter_floating_point<_CharT> {};
|
||||
|
||||
# if _LIBCPP_STD_VER >= 23
|
||||
template <>
|
||||
|
@ -30,7 +30,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS __formatter_integer {
|
||||
struct __formatter_integer {
|
||||
public:
|
||||
template <class _ParseContext>
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr typename _ParseContext::iterator parse(_ParseContext& __ctx) {
|
||||
@ -58,34 +58,34 @@ public:
|
||||
|
||||
// Signed integral types.
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<signed char, _CharT> : public __formatter_integer<_CharT> {};
|
||||
struct formatter<signed char, _CharT> : public __formatter_integer<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<short, _CharT> : public __formatter_integer<_CharT> {};
|
||||
struct formatter<short, _CharT> : public __formatter_integer<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<int, _CharT> : public __formatter_integer<_CharT> {};
|
||||
struct formatter<int, _CharT> : public __formatter_integer<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<long, _CharT> : public __formatter_integer<_CharT> {};
|
||||
struct formatter<long, _CharT> : public __formatter_integer<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<long long, _CharT> : public __formatter_integer<_CharT> {};
|
||||
struct formatter<long long, _CharT> : public __formatter_integer<_CharT> {};
|
||||
# if _LIBCPP_HAS_INT128
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<__int128_t, _CharT> : public __formatter_integer<_CharT> {};
|
||||
struct formatter<__int128_t, _CharT> : public __formatter_integer<_CharT> {};
|
||||
# endif
|
||||
|
||||
// Unsigned integral types.
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<unsigned char, _CharT> : public __formatter_integer<_CharT> {};
|
||||
struct formatter<unsigned char, _CharT> : public __formatter_integer<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<unsigned short, _CharT> : public __formatter_integer<_CharT> {};
|
||||
struct formatter<unsigned short, _CharT> : public __formatter_integer<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<unsigned, _CharT> : public __formatter_integer<_CharT> {};
|
||||
struct formatter<unsigned, _CharT> : public __formatter_integer<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<unsigned long, _CharT> : public __formatter_integer<_CharT> {};
|
||||
struct formatter<unsigned long, _CharT> : public __formatter_integer<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<unsigned long long, _CharT> : public __formatter_integer<_CharT> {};
|
||||
struct formatter<unsigned long long, _CharT> : public __formatter_integer<_CharT> {};
|
||||
# if _LIBCPP_HAS_INT128
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<__uint128_t, _CharT> : public __formatter_integer<_CharT> {};
|
||||
struct formatter<__uint128_t, _CharT> : public __formatter_integer<_CharT> {};
|
||||
# endif
|
||||
|
||||
# if _LIBCPP_STD_VER >= 23
|
||||
|
@ -404,17 +404,17 @@ __format_integer(_Tp __value, _FormatContext& __ctx, __format_spec::__parsed_spe
|
||||
//
|
||||
|
||||
template <class _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS __bool_strings;
|
||||
struct __bool_strings;
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS __bool_strings<char> {
|
||||
struct __bool_strings<char> {
|
||||
static constexpr string_view __true{"true"};
|
||||
static constexpr string_view __false{"false"};
|
||||
};
|
||||
|
||||
# if _LIBCPP_HAS_WIDE_CHARACTERS
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS __bool_strings<wchar_t> {
|
||||
struct __bool_strings<wchar_t> {
|
||||
static constexpr wstring_view __true{L"true"};
|
||||
static constexpr wstring_view __false{L"false"};
|
||||
};
|
||||
|
@ -29,7 +29,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS __formatter_pointer {
|
||||
struct __formatter_pointer {
|
||||
public:
|
||||
template <class _ParseContext>
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr typename _ParseContext::iterator parse(_ParseContext& __ctx) {
|
||||
@ -59,11 +59,11 @@ public:
|
||||
// - template<> struct formatter<void*, charT>;
|
||||
// - template<> struct formatter<const void*, charT>;
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<nullptr_t, _CharT> : public __formatter_pointer<_CharT> {};
|
||||
struct formatter<nullptr_t, _CharT> : public __formatter_pointer<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<void*, _CharT> : public __formatter_pointer<_CharT> {};
|
||||
struct formatter<void*, _CharT> : public __formatter_pointer<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<const void*, _CharT> : public __formatter_pointer<_CharT> {};
|
||||
struct formatter<const void*, _CharT> : public __formatter_pointer<_CharT> {};
|
||||
|
||||
# if _LIBCPP_STD_VER >= 23
|
||||
template <>
|
||||
|
@ -29,7 +29,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS __formatter_string {
|
||||
struct __formatter_string {
|
||||
public:
|
||||
template <class _ParseContext>
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr typename _ParseContext::iterator parse(_ParseContext& __ctx) {
|
||||
@ -58,7 +58,7 @@ public:
|
||||
|
||||
// Formatter const char*.
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<const _CharT*, _CharT> : public __formatter_string<_CharT> {
|
||||
struct formatter<const _CharT*, _CharT> : public __formatter_string<_CharT> {
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_string<_CharT>;
|
||||
|
||||
template <class _FormatContext>
|
||||
@ -77,7 +77,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<const _CharT*, _CharT> : public __formatte
|
||||
|
||||
// Formatter char*.
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<_CharT*, _CharT> : public formatter<const _CharT*, _CharT> {
|
||||
struct formatter<_CharT*, _CharT> : public formatter<const _CharT*, _CharT> {
|
||||
using _Base _LIBCPP_NODEBUG = formatter<const _CharT*, _CharT>;
|
||||
|
||||
template <class _FormatContext>
|
||||
@ -88,7 +88,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<_CharT*, _CharT> : public formatter<const
|
||||
|
||||
// Formatter char[].
|
||||
template <__fmt_char_type _CharT, size_t _Size>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<_CharT[_Size], _CharT> : public __formatter_string<_CharT> {
|
||||
struct formatter<_CharT[_Size], _CharT> : public __formatter_string<_CharT> {
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_string<_CharT>;
|
||||
|
||||
template <class _FormatContext>
|
||||
@ -100,8 +100,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<_CharT[_Size], _CharT> : public __formatte
|
||||
|
||||
// Formatter std::string.
|
||||
template <__fmt_char_type _CharT, class _Traits, class _Allocator>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<basic_string<_CharT, _Traits, _Allocator>, _CharT>
|
||||
: public __formatter_string<_CharT> {
|
||||
struct formatter<basic_string<_CharT, _Traits, _Allocator>, _CharT> : public __formatter_string<_CharT> {
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_string<_CharT>;
|
||||
|
||||
template <class _FormatContext>
|
||||
@ -114,7 +113,7 @@ struct _LIBCPP_TEMPLATE_VIS formatter<basic_string<_CharT, _Traits, _Allocator>,
|
||||
|
||||
// Formatter std::string_view.
|
||||
template <__fmt_char_type _CharT, class _Traits>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<basic_string_view<_CharT, _Traits>, _CharT> : public __formatter_string<_CharT> {
|
||||
struct formatter<basic_string_view<_CharT, _Traits>, _CharT> : public __formatter_string<_CharT> {
|
||||
using _Base _LIBCPP_NODEBUG = __formatter_string<_CharT>;
|
||||
|
||||
template <class _FormatContext>
|
||||
|
@ -36,7 +36,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 23
|
||||
|
||||
template <__fmt_char_type _CharT, class _Tuple, formattable<_CharT>... _Args>
|
||||
struct _LIBCPP_TEMPLATE_VIS __formatter_tuple {
|
||||
struct __formatter_tuple {
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr void set_separator(basic_string_view<_CharT> __separator) noexcept {
|
||||
__separator_ = __separator;
|
||||
}
|
||||
@ -136,12 +136,10 @@ private:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT, formattable<_CharT>... _Args>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<pair<_Args...>, _CharT>
|
||||
: public __formatter_tuple<_CharT, pair<_Args...>, _Args...> {};
|
||||
struct formatter<pair<_Args...>, _CharT> : public __formatter_tuple<_CharT, pair<_Args...>, _Args...> {};
|
||||
|
||||
template <__fmt_char_type _CharT, formattable<_CharT>... _Args>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<tuple<_Args...>, _CharT>
|
||||
: public __formatter_tuple<_CharT, tuple<_Args...>, _Args...> {};
|
||||
struct formatter<tuple<_Args...>, _CharT> : public __formatter_tuple<_CharT, tuple<_Args...>, _Args...> {};
|
||||
|
||||
#endif // _LIBCPP_STD_VER >= 23
|
||||
|
||||
|
@ -335,7 +335,7 @@ static_assert(is_trivially_copyable_v<__parsed_specifications<wchar_t>>);
|
||||
/// set to zero. That way they can be repurposed if a future revision of the
|
||||
/// Standards adds new fields to std-format-spec.
|
||||
template <class _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS __parser {
|
||||
class __parser {
|
||||
public:
|
||||
// Parses the format specification.
|
||||
//
|
||||
|
@ -52,7 +52,7 @@ _LIBCPP_DIAGNOSTIC_POP
|
||||
// There is no definition of this struct, it's purely intended to be used to
|
||||
// generate diagnostics.
|
||||
template <class _Rp>
|
||||
struct _LIBCPP_TEMPLATE_VIS __instantiated_the_primary_template_of_format_kind;
|
||||
struct __instantiated_the_primary_template_of_format_kind;
|
||||
|
||||
template <class _Rp>
|
||||
constexpr range_format format_kind = [] {
|
||||
@ -88,12 +88,12 @@ inline constexpr range_format format_kind<_Rp> = [] {
|
||||
}();
|
||||
|
||||
template <range_format _Kp, ranges::input_range _Rp, class _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS __range_default_formatter;
|
||||
struct __range_default_formatter;
|
||||
|
||||
// Required specializations
|
||||
|
||||
template <ranges::input_range _Rp, class _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS __range_default_formatter<range_format::sequence, _Rp, _CharT> {
|
||||
struct __range_default_formatter<range_format::sequence, _Rp, _CharT> {
|
||||
private:
|
||||
using __maybe_const_r _LIBCPP_NODEBUG = __fmt_maybe_const<_Rp, _CharT>;
|
||||
range_formatter<remove_cvref_t<ranges::range_reference_t<__maybe_const_r>>, _CharT> __underlying_;
|
||||
@ -120,7 +120,7 @@ public:
|
||||
};
|
||||
|
||||
template <ranges::input_range _Rp, class _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS __range_default_formatter<range_format::map, _Rp, _CharT> {
|
||||
struct __range_default_formatter<range_format::map, _Rp, _CharT> {
|
||||
private:
|
||||
using __maybe_const_map _LIBCPP_NODEBUG = __fmt_maybe_const<_Rp, _CharT>;
|
||||
using __element_type _LIBCPP_NODEBUG = remove_cvref_t<ranges::range_reference_t<__maybe_const_map>>;
|
||||
@ -148,7 +148,7 @@ public:
|
||||
};
|
||||
|
||||
template <ranges::input_range _Rp, class _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS __range_default_formatter<range_format::set, _Rp, _CharT> {
|
||||
struct __range_default_formatter<range_format::set, _Rp, _CharT> {
|
||||
private:
|
||||
using __maybe_const_set _LIBCPP_NODEBUG = __fmt_maybe_const<_Rp, _CharT>;
|
||||
using __element_type _LIBCPP_NODEBUG = remove_cvref_t<ranges::range_reference_t<__maybe_const_set>>;
|
||||
@ -173,7 +173,7 @@ public:
|
||||
|
||||
template <range_format _Kp, ranges::input_range _Rp, class _CharT>
|
||||
requires(_Kp == range_format::string || _Kp == range_format::debug_string)
|
||||
struct _LIBCPP_TEMPLATE_VIS __range_default_formatter<_Kp, _Rp, _CharT> {
|
||||
struct __range_default_formatter<_Kp, _Rp, _CharT> {
|
||||
private:
|
||||
// This deviates from the Standard, there the exposition only type is
|
||||
// formatter<basic_string<charT>, charT> underlying_;
|
||||
@ -205,7 +205,7 @@ public:
|
||||
|
||||
template <ranges::input_range _Rp, class _CharT>
|
||||
requires(format_kind<_Rp> != range_format::disabled && formattable<ranges::range_reference_t<_Rp>, _CharT>)
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<_Rp, _CharT> : __range_default_formatter<format_kind<_Rp>, _Rp, _CharT> {};
|
||||
struct formatter<_Rp, _CharT> : __range_default_formatter<format_kind<_Rp>, _Rp, _CharT> {};
|
||||
|
||||
#endif // _LIBCPP_STD_VER >= 23
|
||||
|
||||
|
@ -39,7 +39,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _Tp, class _CharT = char>
|
||||
requires same_as<remove_cvref_t<_Tp>, _Tp> && formattable<_Tp, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS range_formatter {
|
||||
struct range_formatter {
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr void set_separator(basic_string_view<_CharT> __separator) noexcept {
|
||||
__separator_ = __separator;
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION)
|
||||
|
||||
template <class _Arg1, class _Arg2, class _Result>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX11 binary_function {
|
||||
struct _LIBCPP_DEPRECATED_IN_CXX11 binary_function {
|
||||
typedef _Arg1 first_argument_type;
|
||||
typedef _Arg2 second_argument_type;
|
||||
typedef _Result result_type;
|
||||
|
@ -22,7 +22,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER <= 17 || defined(_LIBCPP_ENABLE_CXX20_REMOVED_NEGATORS)
|
||||
|
||||
template <class _Predicate>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 binary_negate
|
||||
class _LIBCPP_DEPRECATED_IN_CXX17 binary_negate
|
||||
: public __binary_function<typename _Predicate::first_argument_type,
|
||||
typename _Predicate::second_argument_type,
|
||||
bool> {
|
||||
|
@ -22,7 +22,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS)
|
||||
|
||||
template <class _Operation>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX11 binder1st
|
||||
class _LIBCPP_DEPRECATED_IN_CXX11 binder1st
|
||||
: public __unary_function<typename _Operation::second_argument_type, typename _Operation::result_type> {
|
||||
protected:
|
||||
_Operation op;
|
||||
|
@ -22,7 +22,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS)
|
||||
|
||||
template <class _Operation>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX11 binder2nd
|
||||
class _LIBCPP_DEPRECATED_IN_CXX11 binder2nd
|
||||
: public __unary_function<typename _Operation::first_argument_type, typename _Operation::result_type> {
|
||||
protected:
|
||||
_Operation op;
|
||||
|
@ -88,7 +88,7 @@ public:
|
||||
template <class _RandomAccessIterator1,
|
||||
class _Hash = hash<typename iterator_traits<_RandomAccessIterator1>::value_type>,
|
||||
class _BinaryPredicate = equal_to<>>
|
||||
class _LIBCPP_TEMPLATE_VIS boyer_moore_searcher {
|
||||
class boyer_moore_searcher {
|
||||
private:
|
||||
using difference_type = typename std::iterator_traits<_RandomAccessIterator1>::difference_type;
|
||||
using value_type = typename std::iterator_traits<_RandomAccessIterator1>::value_type;
|
||||
@ -219,7 +219,7 @@ _LIBCPP_CTAD_SUPPORTED_FOR_TYPE(boyer_moore_searcher);
|
||||
template <class _RandomAccessIterator1,
|
||||
class _Hash = hash<typename iterator_traits<_RandomAccessIterator1>::value_type>,
|
||||
class _BinaryPredicate = equal_to<>>
|
||||
class _LIBCPP_TEMPLATE_VIS boyer_moore_horspool_searcher {
|
||||
class boyer_moore_horspool_searcher {
|
||||
private:
|
||||
using difference_type = typename iterator_traits<_RandomAccessIterator1>::difference_type;
|
||||
using value_type = typename iterator_traits<_RandomAccessIterator1>::value_type;
|
||||
|
@ -27,7 +27,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
// default searcher
|
||||
template <class _ForwardIterator, class _BinaryPredicate = equal_to<>>
|
||||
class _LIBCPP_TEMPLATE_VIS default_searcher {
|
||||
class default_searcher {
|
||||
public:
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20
|
||||
default_searcher(_ForwardIterator __f, _ForwardIterator __l, _BinaryPredicate __p = _BinaryPredicate())
|
||||
|
@ -86,7 +86,7 @@ _LIBCPP_DIAGNOSTIC_POP
|
||||
}
|
||||
|
||||
template <class _Fp>
|
||||
class _LIBCPP_TEMPLATE_VIS function; // undefined
|
||||
class function; // undefined
|
||||
|
||||
namespace __function {
|
||||
|
||||
@ -234,7 +234,7 @@ public:
|
||||
// __base provides an abstract interface for copyable functors.
|
||||
|
||||
template <class _Fp>
|
||||
class _LIBCPP_TEMPLATE_VIS __base;
|
||||
class __base;
|
||||
|
||||
template <class _Rp, class... _ArgTypes>
|
||||
class __base<_Rp(_ArgTypes...)> {
|
||||
@ -827,7 +827,7 @@ public:
|
||||
} // namespace __function
|
||||
|
||||
template <class _Rp, class... _ArgTypes>
|
||||
class _LIBCPP_TEMPLATE_VIS function<_Rp(_ArgTypes...)>
|
||||
class function<_Rp(_ArgTypes...)>
|
||||
: public __function::__maybe_derive_from_unary_function<_Rp(_ArgTypes...)>,
|
||||
public __function::__maybe_derive_from_binary_function<_Rp(_ArgTypes...)> {
|
||||
# ifndef _LIBCPP_ABI_OPTIMIZED_FUNCTION
|
||||
|
@ -334,7 +334,7 @@ _LIBCPP_HIDE_FROM_ABI inline size_t __hash_combine(size_t __lhs, size_t __rhs) _
|
||||
}
|
||||
|
||||
template <class _Tp>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<_Tp*> : public __unary_function<_Tp*, size_t> {
|
||||
struct hash<_Tp*> : public __unary_function<_Tp*, size_t> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(_Tp* __v) const _NOEXCEPT {
|
||||
union {
|
||||
_Tp* __t;
|
||||
@ -346,76 +346,76 @@ struct _LIBCPP_TEMPLATE_VIS hash<_Tp*> : public __unary_function<_Tp*, size_t> {
|
||||
};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<bool> : public __unary_function<bool, size_t> {
|
||||
struct hash<bool> : public __unary_function<bool, size_t> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(bool __v) const _NOEXCEPT { return static_cast<size_t>(__v); }
|
||||
};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<char> : public __unary_function<char, size_t> {
|
||||
struct hash<char> : public __unary_function<char, size_t> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(char __v) const _NOEXCEPT { return static_cast<size_t>(__v); }
|
||||
};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<signed char> : public __unary_function<signed char, size_t> {
|
||||
struct hash<signed char> : public __unary_function<signed char, size_t> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(signed char __v) const _NOEXCEPT { return static_cast<size_t>(__v); }
|
||||
};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<unsigned char> : public __unary_function<unsigned char, size_t> {
|
||||
struct hash<unsigned char> : public __unary_function<unsigned char, size_t> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(unsigned char __v) const _NOEXCEPT { return static_cast<size_t>(__v); }
|
||||
};
|
||||
|
||||
#if _LIBCPP_HAS_CHAR8_T
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<char8_t> : public __unary_function<char8_t, size_t> {
|
||||
struct hash<char8_t> : public __unary_function<char8_t, size_t> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(char8_t __v) const _NOEXCEPT { return static_cast<size_t>(__v); }
|
||||
};
|
||||
#endif // _LIBCPP_HAS_CHAR8_T
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<char16_t> : public __unary_function<char16_t, size_t> {
|
||||
struct hash<char16_t> : public __unary_function<char16_t, size_t> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(char16_t __v) const _NOEXCEPT { return static_cast<size_t>(__v); }
|
||||
};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<char32_t> : public __unary_function<char32_t, size_t> {
|
||||
struct hash<char32_t> : public __unary_function<char32_t, size_t> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(char32_t __v) const _NOEXCEPT { return static_cast<size_t>(__v); }
|
||||
};
|
||||
|
||||
#if _LIBCPP_HAS_WIDE_CHARACTERS
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<wchar_t> : public __unary_function<wchar_t, size_t> {
|
||||
struct hash<wchar_t> : public __unary_function<wchar_t, size_t> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(wchar_t __v) const _NOEXCEPT { return static_cast<size_t>(__v); }
|
||||
};
|
||||
#endif // _LIBCPP_HAS_WIDE_CHARACTERS
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<short> : public __unary_function<short, size_t> {
|
||||
struct hash<short> : public __unary_function<short, size_t> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(short __v) const _NOEXCEPT { return static_cast<size_t>(__v); }
|
||||
};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<unsigned short> : public __unary_function<unsigned short, size_t> {
|
||||
struct hash<unsigned short> : public __unary_function<unsigned short, size_t> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(unsigned short __v) const _NOEXCEPT { return static_cast<size_t>(__v); }
|
||||
};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<int> : public __unary_function<int, size_t> {
|
||||
struct hash<int> : public __unary_function<int, size_t> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(int __v) const _NOEXCEPT { return static_cast<size_t>(__v); }
|
||||
};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<unsigned int> : public __unary_function<unsigned int, size_t> {
|
||||
struct hash<unsigned int> : public __unary_function<unsigned int, size_t> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(unsigned int __v) const _NOEXCEPT { return static_cast<size_t>(__v); }
|
||||
};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<long> : public __unary_function<long, size_t> {
|
||||
struct hash<long> : public __unary_function<long, size_t> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(long __v) const _NOEXCEPT { return static_cast<size_t>(__v); }
|
||||
};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<unsigned long> : public __unary_function<unsigned long, size_t> {
|
||||
struct hash<unsigned long> : public __unary_function<unsigned long, size_t> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(unsigned long __v) const _NOEXCEPT {
|
||||
static_assert(sizeof(size_t) >= sizeof(unsigned long),
|
||||
"This would be a terrible hash function on a platform where size_t is smaller than unsigned long");
|
||||
@ -424,23 +424,23 @@ struct _LIBCPP_TEMPLATE_VIS hash<unsigned long> : public __unary_function<unsign
|
||||
};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<long long> : public __scalar_hash<long long> {};
|
||||
struct hash<long long> : public __scalar_hash<long long> {};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<unsigned long long> : public __scalar_hash<unsigned long long> {};
|
||||
struct hash<unsigned long long> : public __scalar_hash<unsigned long long> {};
|
||||
|
||||
#if _LIBCPP_HAS_INT128
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<__int128_t> : public __scalar_hash<__int128_t> {};
|
||||
struct hash<__int128_t> : public __scalar_hash<__int128_t> {};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<__uint128_t> : public __scalar_hash<__uint128_t> {};
|
||||
struct hash<__uint128_t> : public __scalar_hash<__uint128_t> {};
|
||||
|
||||
#endif
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<float> : public __scalar_hash<float> {
|
||||
struct hash<float> : public __scalar_hash<float> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(float __v) const _NOEXCEPT {
|
||||
// -0.0 and 0.0 should return same hash
|
||||
if (__v == 0.0f)
|
||||
@ -450,7 +450,7 @@ struct _LIBCPP_TEMPLATE_VIS hash<float> : public __scalar_hash<float> {
|
||||
};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<double> : public __scalar_hash<double> {
|
||||
struct hash<double> : public __scalar_hash<double> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(double __v) const _NOEXCEPT {
|
||||
// -0.0 and 0.0 should return same hash
|
||||
if (__v == 0.0)
|
||||
@ -460,7 +460,7 @@ struct _LIBCPP_TEMPLATE_VIS hash<double> : public __scalar_hash<double> {
|
||||
};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<long double> : public __scalar_hash<long double> {
|
||||
struct hash<long double> : public __scalar_hash<long double> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(long double __v) const _NOEXCEPT {
|
||||
// -0.0 and 0.0 should return same hash
|
||||
if (__v == 0.0L)
|
||||
@ -502,26 +502,26 @@ struct _LIBCPP_TEMPLATE_VIS hash<long double> : public __scalar_hash<long double
|
||||
};
|
||||
|
||||
template <class _Tp, bool = is_enum<_Tp>::value>
|
||||
struct _LIBCPP_TEMPLATE_VIS __enum_hash : public __unary_function<_Tp, size_t> {
|
||||
struct __enum_hash : public __unary_function<_Tp, size_t> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(_Tp __v) const _NOEXCEPT {
|
||||
typedef typename underlying_type<_Tp>::type type;
|
||||
return hash<type>()(static_cast<type>(__v));
|
||||
}
|
||||
};
|
||||
template <class _Tp>
|
||||
struct _LIBCPP_TEMPLATE_VIS __enum_hash<_Tp, false> {
|
||||
struct __enum_hash<_Tp, false> {
|
||||
__enum_hash() = delete;
|
||||
__enum_hash(__enum_hash const&) = delete;
|
||||
__enum_hash& operator=(__enum_hash const&) = delete;
|
||||
};
|
||||
|
||||
template <class _Tp>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash : public __enum_hash<_Tp> {};
|
||||
struct hash : public __enum_hash<_Tp> {};
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<nullptr_t> : public __unary_function<nullptr_t, size_t> {
|
||||
struct hash<nullptr_t> : public __unary_function<nullptr_t, size_t> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(nullptr_t) const _NOEXCEPT { return 662607004ull; }
|
||||
};
|
||||
#endif
|
||||
|
@ -23,7 +23,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS)
|
||||
|
||||
template <class _Sp, class _Tp>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX11 mem_fun_t : public __unary_function<_Tp*, _Sp> {
|
||||
class _LIBCPP_DEPRECATED_IN_CXX11 mem_fun_t : public __unary_function<_Tp*, _Sp> {
|
||||
_Sp (_Tp::*__p_)();
|
||||
|
||||
public:
|
||||
@ -32,7 +32,7 @@ public:
|
||||
};
|
||||
|
||||
template <class _Sp, class _Tp, class _Ap>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX11 mem_fun1_t : public __binary_function<_Tp*, _Ap, _Sp> {
|
||||
class _LIBCPP_DEPRECATED_IN_CXX11 mem_fun1_t : public __binary_function<_Tp*, _Ap, _Sp> {
|
||||
_Sp (_Tp::*__p_)(_Ap);
|
||||
|
||||
public:
|
||||
@ -51,7 +51,7 @@ _LIBCPP_DEPRECATED_IN_CXX11 inline _LIBCPP_HIDE_FROM_ABI mem_fun1_t<_Sp, _Tp, _A
|
||||
}
|
||||
|
||||
template <class _Sp, class _Tp>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX11 mem_fun_ref_t : public __unary_function<_Tp, _Sp> {
|
||||
class _LIBCPP_DEPRECATED_IN_CXX11 mem_fun_ref_t : public __unary_function<_Tp, _Sp> {
|
||||
_Sp (_Tp::*__p_)();
|
||||
|
||||
public:
|
||||
@ -60,7 +60,7 @@ public:
|
||||
};
|
||||
|
||||
template <class _Sp, class _Tp, class _Ap>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX11 mem_fun1_ref_t : public __binary_function<_Tp, _Ap, _Sp> {
|
||||
class _LIBCPP_DEPRECATED_IN_CXX11 mem_fun1_ref_t : public __binary_function<_Tp, _Ap, _Sp> {
|
||||
_Sp (_Tp::*__p_)(_Ap);
|
||||
|
||||
public:
|
||||
@ -80,7 +80,7 @@ mem_fun_ref(_Sp (_Tp::*__f)(_Ap)) {
|
||||
}
|
||||
|
||||
template <class _Sp, class _Tp>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX11 const_mem_fun_t : public __unary_function<const _Tp*, _Sp> {
|
||||
class _LIBCPP_DEPRECATED_IN_CXX11 const_mem_fun_t : public __unary_function<const _Tp*, _Sp> {
|
||||
_Sp (_Tp::*__p_)() const;
|
||||
|
||||
public:
|
||||
@ -89,8 +89,7 @@ public:
|
||||
};
|
||||
|
||||
template <class _Sp, class _Tp, class _Ap>
|
||||
class _LIBCPP_TEMPLATE_VIS
|
||||
_LIBCPP_DEPRECATED_IN_CXX11 const_mem_fun1_t : public __binary_function<const _Tp*, _Ap, _Sp> {
|
||||
class _LIBCPP_DEPRECATED_IN_CXX11 const_mem_fun1_t : public __binary_function<const _Tp*, _Ap, _Sp> {
|
||||
_Sp (_Tp::*__p_)(_Ap) const;
|
||||
|
||||
public:
|
||||
@ -110,7 +109,7 @@ mem_fun(_Sp (_Tp::*__f)(_Ap) const) {
|
||||
}
|
||||
|
||||
template <class _Sp, class _Tp>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX11 const_mem_fun_ref_t : public __unary_function<_Tp, _Sp> {
|
||||
class _LIBCPP_DEPRECATED_IN_CXX11 const_mem_fun_ref_t : public __unary_function<_Tp, _Sp> {
|
||||
_Sp (_Tp::*__p_)() const;
|
||||
|
||||
public:
|
||||
@ -119,7 +118,7 @@ public:
|
||||
};
|
||||
|
||||
template <class _Sp, class _Tp, class _Ap>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX11 const_mem_fun1_ref_t : public __binary_function<_Tp, _Ap, _Sp> {
|
||||
class _LIBCPP_DEPRECATED_IN_CXX11 const_mem_fun1_ref_t : public __binary_function<_Tp, _Ap, _Sp> {
|
||||
_Sp (_Tp::*__p_)(_Ap) const;
|
||||
|
||||
public:
|
||||
|
@ -31,7 +31,7 @@ template <class _Tp = void>
|
||||
#else
|
||||
template <class _Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS plus : __binary_function<_Tp, _Tp, _Tp> {
|
||||
struct plus : __binary_function<_Tp, _Tp, _Tp> {
|
||||
typedef _Tp __result_type; // used by valarray
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI _Tp operator()(const _Tp& __x, const _Tp& __y) const {
|
||||
return __x + __y;
|
||||
@ -49,7 +49,7 @@ inline const bool __desugars_to_v<__plus_tag, plus<void>, _Tp, _Up> = true;
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS plus<void> {
|
||||
struct plus<void> {
|
||||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_T1&& __t, _T2&& __u) const
|
||||
noexcept(noexcept(std::forward<_T1>(__t) + std::forward<_T2>(__u))) //
|
||||
@ -65,7 +65,7 @@ template <class _Tp = void>
|
||||
#else
|
||||
template <class _Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS minus : __binary_function<_Tp, _Tp, _Tp> {
|
||||
struct minus : __binary_function<_Tp, _Tp, _Tp> {
|
||||
typedef _Tp __result_type; // used by valarray
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI _Tp operator()(const _Tp& __x, const _Tp& __y) const {
|
||||
return __x - __y;
|
||||
@ -75,7 +75,7 @@ _LIBCPP_CTAD_SUPPORTED_FOR_TYPE(minus);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS minus<void> {
|
||||
struct minus<void> {
|
||||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_T1&& __t, _T2&& __u) const
|
||||
noexcept(noexcept(std::forward<_T1>(__t) - std::forward<_T2>(__u))) //
|
||||
@ -91,7 +91,7 @@ template <class _Tp = void>
|
||||
#else
|
||||
template <class _Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS multiplies : __binary_function<_Tp, _Tp, _Tp> {
|
||||
struct multiplies : __binary_function<_Tp, _Tp, _Tp> {
|
||||
typedef _Tp __result_type; // used by valarray
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI _Tp operator()(const _Tp& __x, const _Tp& __y) const {
|
||||
return __x * __y;
|
||||
@ -101,7 +101,7 @@ _LIBCPP_CTAD_SUPPORTED_FOR_TYPE(multiplies);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS multiplies<void> {
|
||||
struct multiplies<void> {
|
||||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_T1&& __t, _T2&& __u) const
|
||||
noexcept(noexcept(std::forward<_T1>(__t) * std::forward<_T2>(__u))) //
|
||||
@ -117,7 +117,7 @@ template <class _Tp = void>
|
||||
#else
|
||||
template <class _Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS divides : __binary_function<_Tp, _Tp, _Tp> {
|
||||
struct divides : __binary_function<_Tp, _Tp, _Tp> {
|
||||
typedef _Tp __result_type; // used by valarray
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI _Tp operator()(const _Tp& __x, const _Tp& __y) const {
|
||||
return __x / __y;
|
||||
@ -127,7 +127,7 @@ _LIBCPP_CTAD_SUPPORTED_FOR_TYPE(divides);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS divides<void> {
|
||||
struct divides<void> {
|
||||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_T1&& __t, _T2&& __u) const
|
||||
noexcept(noexcept(std::forward<_T1>(__t) / std::forward<_T2>(__u))) //
|
||||
@ -143,7 +143,7 @@ template <class _Tp = void>
|
||||
#else
|
||||
template <class _Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS modulus : __binary_function<_Tp, _Tp, _Tp> {
|
||||
struct modulus : __binary_function<_Tp, _Tp, _Tp> {
|
||||
typedef _Tp __result_type; // used by valarray
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI _Tp operator()(const _Tp& __x, const _Tp& __y) const {
|
||||
return __x % __y;
|
||||
@ -153,7 +153,7 @@ _LIBCPP_CTAD_SUPPORTED_FOR_TYPE(modulus);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS modulus<void> {
|
||||
struct modulus<void> {
|
||||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_T1&& __t, _T2&& __u) const
|
||||
noexcept(noexcept(std::forward<_T1>(__t) % std::forward<_T2>(__u))) //
|
||||
@ -169,7 +169,7 @@ template <class _Tp = void>
|
||||
#else
|
||||
template <class _Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS negate : __unary_function<_Tp, _Tp> {
|
||||
struct negate : __unary_function<_Tp, _Tp> {
|
||||
typedef _Tp __result_type; // used by valarray
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI _Tp operator()(const _Tp& __x) const { return -__x; }
|
||||
};
|
||||
@ -177,7 +177,7 @@ _LIBCPP_CTAD_SUPPORTED_FOR_TYPE(negate);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS negate<void> {
|
||||
struct negate<void> {
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_Tp&& __x) const
|
||||
noexcept(noexcept(-std::forward<_Tp>(__x))) //
|
||||
@ -195,7 +195,7 @@ template <class _Tp = void>
|
||||
#else
|
||||
template <class _Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS bit_and : __binary_function<_Tp, _Tp, _Tp> {
|
||||
struct bit_and : __binary_function<_Tp, _Tp, _Tp> {
|
||||
typedef _Tp __result_type; // used by valarray
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI _Tp operator()(const _Tp& __x, const _Tp& __y) const {
|
||||
return __x & __y;
|
||||
@ -205,7 +205,7 @@ _LIBCPP_CTAD_SUPPORTED_FOR_TYPE(bit_and);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS bit_and<void> {
|
||||
struct bit_and<void> {
|
||||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_T1&& __t, _T2&& __u) const
|
||||
noexcept(noexcept(std::forward<_T1>(__t) &
|
||||
@ -218,13 +218,13 @@ struct _LIBCPP_TEMPLATE_VIS bit_and<void> {
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <class _Tp = void>
|
||||
struct _LIBCPP_TEMPLATE_VIS bit_not : __unary_function<_Tp, _Tp> {
|
||||
struct bit_not : __unary_function<_Tp, _Tp> {
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI _Tp operator()(const _Tp& __x) const { return ~__x; }
|
||||
};
|
||||
_LIBCPP_CTAD_SUPPORTED_FOR_TYPE(bit_not);
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS bit_not<void> {
|
||||
struct bit_not<void> {
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_Tp&& __x) const
|
||||
noexcept(noexcept(~std::forward<_Tp>(__x))) //
|
||||
@ -240,7 +240,7 @@ template <class _Tp = void>
|
||||
#else
|
||||
template <class _Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS bit_or : __binary_function<_Tp, _Tp, _Tp> {
|
||||
struct bit_or : __binary_function<_Tp, _Tp, _Tp> {
|
||||
typedef _Tp __result_type; // used by valarray
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI _Tp operator()(const _Tp& __x, const _Tp& __y) const {
|
||||
return __x | __y;
|
||||
@ -250,7 +250,7 @@ _LIBCPP_CTAD_SUPPORTED_FOR_TYPE(bit_or);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS bit_or<void> {
|
||||
struct bit_or<void> {
|
||||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_T1&& __t, _T2&& __u) const
|
||||
noexcept(noexcept(std::forward<_T1>(__t) | std::forward<_T2>(__u))) //
|
||||
@ -266,7 +266,7 @@ template <class _Tp = void>
|
||||
#else
|
||||
template <class _Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS bit_xor : __binary_function<_Tp, _Tp, _Tp> {
|
||||
struct bit_xor : __binary_function<_Tp, _Tp, _Tp> {
|
||||
typedef _Tp __result_type; // used by valarray
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI _Tp operator()(const _Tp& __x, const _Tp& __y) const {
|
||||
return __x ^ __y;
|
||||
@ -276,7 +276,7 @@ _LIBCPP_CTAD_SUPPORTED_FOR_TYPE(bit_xor);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS bit_xor<void> {
|
||||
struct bit_xor<void> {
|
||||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_T1&& __t, _T2&& __u) const
|
||||
noexcept(noexcept(std::forward<_T1>(__t) ^ std::forward<_T2>(__u))) //
|
||||
@ -294,7 +294,7 @@ template <class _Tp = void>
|
||||
#else
|
||||
template <class _Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS equal_to : __binary_function<_Tp, _Tp, bool> {
|
||||
struct equal_to : __binary_function<_Tp, _Tp, bool> {
|
||||
typedef bool __result_type; // used by valarray
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI bool operator()(const _Tp& __x, const _Tp& __y) const {
|
||||
return __x == __y;
|
||||
@ -304,7 +304,7 @@ _LIBCPP_CTAD_SUPPORTED_FOR_TYPE(equal_to);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS equal_to<void> {
|
||||
struct equal_to<void> {
|
||||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_T1&& __t, _T2&& __u) const
|
||||
noexcept(noexcept(std::forward<_T1>(__t) == std::forward<_T2>(__u))) //
|
||||
@ -329,7 +329,7 @@ template <class _Tp = void>
|
||||
#else
|
||||
template <class _Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS not_equal_to : __binary_function<_Tp, _Tp, bool> {
|
||||
struct not_equal_to : __binary_function<_Tp, _Tp, bool> {
|
||||
typedef bool __result_type; // used by valarray
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI bool operator()(const _Tp& __x, const _Tp& __y) const {
|
||||
return __x != __y;
|
||||
@ -339,7 +339,7 @@ _LIBCPP_CTAD_SUPPORTED_FOR_TYPE(not_equal_to);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS not_equal_to<void> {
|
||||
struct not_equal_to<void> {
|
||||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_T1&& __t, _T2&& __u) const
|
||||
noexcept(noexcept(std::forward<_T1>(__t) != std::forward<_T2>(__u))) //
|
||||
@ -351,7 +351,7 @@ struct _LIBCPP_TEMPLATE_VIS not_equal_to<void> {
|
||||
#endif
|
||||
|
||||
template <class _Tp>
|
||||
struct _LIBCPP_TEMPLATE_VIS less : __binary_function<_Tp, _Tp, bool> {
|
||||
struct less : __binary_function<_Tp, _Tp, bool> {
|
||||
typedef bool __result_type; // used by valarray
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI bool operator()(const _Tp& __x, const _Tp& __y) const {
|
||||
return __x < __y;
|
||||
@ -367,7 +367,7 @@ inline const bool __desugars_to_v<__totally_ordered_less_tag, less<_Tp>, _Tp, _T
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS less<void> {
|
||||
struct less<void> {
|
||||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_T1&& __t, _T2&& __u) const
|
||||
noexcept(noexcept(std::forward<_T1>(__t) < std::forward<_T2>(__u))) //
|
||||
@ -389,7 +389,7 @@ template <class _Tp = void>
|
||||
#else
|
||||
template <class _Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS less_equal : __binary_function<_Tp, _Tp, bool> {
|
||||
struct less_equal : __binary_function<_Tp, _Tp, bool> {
|
||||
typedef bool __result_type; // used by valarray
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI bool operator()(const _Tp& __x, const _Tp& __y) const {
|
||||
return __x <= __y;
|
||||
@ -399,7 +399,7 @@ _LIBCPP_CTAD_SUPPORTED_FOR_TYPE(less_equal);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS less_equal<void> {
|
||||
struct less_equal<void> {
|
||||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_T1&& __t, _T2&& __u) const
|
||||
noexcept(noexcept(std::forward<_T1>(__t) <= std::forward<_T2>(__u))) //
|
||||
@ -415,7 +415,7 @@ template <class _Tp = void>
|
||||
#else
|
||||
template <class _Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS greater_equal : __binary_function<_Tp, _Tp, bool> {
|
||||
struct greater_equal : __binary_function<_Tp, _Tp, bool> {
|
||||
typedef bool __result_type; // used by valarray
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI bool operator()(const _Tp& __x, const _Tp& __y) const {
|
||||
return __x >= __y;
|
||||
@ -425,7 +425,7 @@ _LIBCPP_CTAD_SUPPORTED_FOR_TYPE(greater_equal);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS greater_equal<void> {
|
||||
struct greater_equal<void> {
|
||||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_T1&& __t, _T2&& __u) const
|
||||
noexcept(noexcept(std::forward<_T1>(__t) >=
|
||||
@ -441,7 +441,7 @@ template <class _Tp = void>
|
||||
#else
|
||||
template <class _Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS greater : __binary_function<_Tp, _Tp, bool> {
|
||||
struct greater : __binary_function<_Tp, _Tp, bool> {
|
||||
typedef bool __result_type; // used by valarray
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI bool operator()(const _Tp& __x, const _Tp& __y) const {
|
||||
return __x > __y;
|
||||
@ -454,7 +454,7 @@ inline const bool __desugars_to_v<__greater_tag, greater<_Tp>, _Tp, _Tp> = true;
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS greater<void> {
|
||||
struct greater<void> {
|
||||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_T1&& __t, _T2&& __u) const
|
||||
noexcept(noexcept(std::forward<_T1>(__t) > std::forward<_T2>(__u))) //
|
||||
@ -475,7 +475,7 @@ template <class _Tp = void>
|
||||
#else
|
||||
template <class _Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS logical_and : __binary_function<_Tp, _Tp, bool> {
|
||||
struct logical_and : __binary_function<_Tp, _Tp, bool> {
|
||||
typedef bool __result_type; // used by valarray
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI bool operator()(const _Tp& __x, const _Tp& __y) const {
|
||||
return __x && __y;
|
||||
@ -485,7 +485,7 @@ _LIBCPP_CTAD_SUPPORTED_FOR_TYPE(logical_and);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS logical_and<void> {
|
||||
struct logical_and<void> {
|
||||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_T1&& __t, _T2&& __u) const
|
||||
noexcept(noexcept(std::forward<_T1>(__t) && std::forward<_T2>(__u))) //
|
||||
@ -501,7 +501,7 @@ template <class _Tp = void>
|
||||
#else
|
||||
template <class _Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS logical_not : __unary_function<_Tp, bool> {
|
||||
struct logical_not : __unary_function<_Tp, bool> {
|
||||
typedef bool __result_type; // used by valarray
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI bool operator()(const _Tp& __x) const { return !__x; }
|
||||
};
|
||||
@ -509,7 +509,7 @@ _LIBCPP_CTAD_SUPPORTED_FOR_TYPE(logical_not);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS logical_not<void> {
|
||||
struct logical_not<void> {
|
||||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_Tp&& __x) const
|
||||
noexcept(noexcept(!std::forward<_Tp>(__x))) //
|
||||
@ -525,7 +525,7 @@ template <class _Tp = void>
|
||||
#else
|
||||
template <class _Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS logical_or : __binary_function<_Tp, _Tp, bool> {
|
||||
struct logical_or : __binary_function<_Tp, _Tp, bool> {
|
||||
typedef bool __result_type; // used by valarray
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI bool operator()(const _Tp& __x, const _Tp& __y) const {
|
||||
return __x || __y;
|
||||
@ -535,7 +535,7 @@ _LIBCPP_CTAD_SUPPORTED_FOR_TYPE(logical_or);
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS logical_or<void> {
|
||||
struct logical_or<void> {
|
||||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX14 _LIBCPP_HIDE_FROM_ABI auto operator()(_T1&& __t, _T2&& __u) const
|
||||
noexcept(noexcept(std::forward<_T1>(__t) || std::forward<_T2>(__u))) //
|
||||
|
@ -22,8 +22,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS)
|
||||
|
||||
template <class _Arg1, class _Arg2, class _Result>
|
||||
class _LIBCPP_TEMPLATE_VIS
|
||||
_LIBCPP_DEPRECATED_IN_CXX11 pointer_to_binary_function : public __binary_function<_Arg1, _Arg2, _Result> {
|
||||
class _LIBCPP_DEPRECATED_IN_CXX11 pointer_to_binary_function : public __binary_function<_Arg1, _Arg2, _Result> {
|
||||
_Result (*__f_)(_Arg1, _Arg2);
|
||||
|
||||
public:
|
||||
|
@ -22,8 +22,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS)
|
||||
|
||||
template <class _Arg, class _Result>
|
||||
class _LIBCPP_TEMPLATE_VIS
|
||||
_LIBCPP_DEPRECATED_IN_CXX11 pointer_to_unary_function : public __unary_function<_Arg, _Result> {
|
||||
class _LIBCPP_DEPRECATED_IN_CXX11 pointer_to_unary_function : public __unary_function<_Arg, _Result> {
|
||||
_Result (*__f_)(_Arg);
|
||||
|
||||
public:
|
||||
|
@ -31,7 +31,7 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _Tp>
|
||||
class _LIBCPP_TEMPLATE_VIS reference_wrapper : public __weak_result_type<_Tp> {
|
||||
class reference_wrapper : public __weak_result_type<_Tp> {
|
||||
public:
|
||||
// types
|
||||
typedef _Tp type;
|
||||
|
@ -20,7 +20,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION)
|
||||
|
||||
template <class _Arg, class _Result>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX11 unary_function {
|
||||
struct _LIBCPP_DEPRECATED_IN_CXX11 unary_function {
|
||||
typedef _Arg argument_type;
|
||||
typedef _Result result_type;
|
||||
};
|
||||
|
@ -22,8 +22,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER <= 17 || defined(_LIBCPP_ENABLE_CXX20_REMOVED_NEGATORS)
|
||||
|
||||
template <class _Predicate>
|
||||
class _LIBCPP_TEMPLATE_VIS
|
||||
_LIBCPP_DEPRECATED_IN_CXX17 unary_negate : public __unary_function<typename _Predicate::argument_type, bool> {
|
||||
class _LIBCPP_DEPRECATED_IN_CXX17 unary_negate : public __unary_function<typename _Predicate::argument_type, bool> {
|
||||
_Predicate __pred_;
|
||||
|
||||
public:
|
||||
|
@ -20,7 +20,7 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _Tp, size_t _Size>
|
||||
struct _LIBCPP_TEMPLATE_VIS array;
|
||||
struct array;
|
||||
|
||||
template <size_t _Ip, class _Tp, size_t _Size>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 _Tp& get(array<_Tp, _Size>&) _NOEXCEPT;
|
||||
|
@ -19,7 +19,7 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _Tp>
|
||||
class _LIBCPP_TEMPLATE_VIS complex;
|
||||
class complex;
|
||||
|
||||
#if _LIBCPP_STD_VER >= 26
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _Tp, class _Allocator = allocator<_Tp> >
|
||||
class _LIBCPP_TEMPLATE_VIS deque;
|
||||
class deque;
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
|
@ -22,14 +22,14 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <class _Context>
|
||||
class _LIBCPP_TEMPLATE_VIS basic_format_arg;
|
||||
class basic_format_arg;
|
||||
|
||||
template <class _OutIt, class _CharT>
|
||||
requires output_iterator<_OutIt, const _CharT&>
|
||||
class _LIBCPP_TEMPLATE_VIS basic_format_context;
|
||||
class basic_format_context;
|
||||
|
||||
template <class _Tp, class _CharT = char>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter;
|
||||
struct formatter;
|
||||
|
||||
#endif // _LIBCPP_STD_VER >= 20
|
||||
|
||||
|
@ -19,13 +19,13 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _CharT, class _Traits = char_traits<_CharT> >
|
||||
class _LIBCPP_TEMPLATE_VIS basic_filebuf;
|
||||
class basic_filebuf;
|
||||
template <class _CharT, class _Traits = char_traits<_CharT> >
|
||||
class _LIBCPP_TEMPLATE_VIS basic_ifstream;
|
||||
class basic_ifstream;
|
||||
template <class _CharT, class _Traits = char_traits<_CharT> >
|
||||
class _LIBCPP_TEMPLATE_VIS basic_ofstream;
|
||||
class basic_ofstream;
|
||||
template <class _CharT, class _Traits = char_traits<_CharT> >
|
||||
class _LIBCPP_TEMPLATE_VIS basic_fstream;
|
||||
class basic_fstream;
|
||||
|
||||
using filebuf = basic_filebuf<char>;
|
||||
using ifstream = basic_ifstream<char>;
|
||||
|
@ -22,13 +22,13 @@ template <class _Tp = void>
|
||||
#else
|
||||
template <class _Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS less;
|
||||
struct less;
|
||||
|
||||
template <class>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash;
|
||||
struct hash;
|
||||
|
||||
template <class>
|
||||
class _LIBCPP_TEMPLATE_VIS reference_wrapper;
|
||||
class reference_wrapper;
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
|
@ -21,7 +21,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
class _LIBCPP_EXPORTED_FROM_ABI ios_base;
|
||||
|
||||
template <class _CharT, class _Traits = char_traits<_CharT> >
|
||||
class _LIBCPP_TEMPLATE_VIS basic_ios;
|
||||
class basic_ios;
|
||||
|
||||
using ios = basic_ios<char>;
|
||||
#if _LIBCPP_HAS_WIDE_CHARACTERS
|
||||
|
@ -19,10 +19,10 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _CharT, class _Traits = char_traits<_CharT> >
|
||||
class _LIBCPP_TEMPLATE_VIS basic_istream;
|
||||
class basic_istream;
|
||||
|
||||
template <class _CharT, class _Traits = char_traits<_CharT> >
|
||||
class _LIBCPP_TEMPLATE_VIS basic_iostream;
|
||||
class basic_iostream;
|
||||
|
||||
using istream = basic_istream<char>;
|
||||
using iostream = basic_iostream<char>;
|
||||
|
@ -21,10 +21,10 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _Key, class _Tp, class _Compare = less<_Key>, class _Allocator = allocator<pair<const _Key, _Tp> > >
|
||||
class _LIBCPP_TEMPLATE_VIS map;
|
||||
class map;
|
||||
|
||||
template <class _Key, class _Tp, class _Compare = less<_Key>, class _Allocator = allocator<pair<const _Key, _Tp> > >
|
||||
class _LIBCPP_TEMPLATE_VIS multimap;
|
||||
class multimap;
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
|
@ -18,10 +18,10 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _Tp>
|
||||
class _LIBCPP_TEMPLATE_VIS allocator;
|
||||
class allocator;
|
||||
|
||||
template <class _Tp>
|
||||
class _LIBCPP_TEMPLATE_VIS shared_ptr;
|
||||
class shared_ptr;
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
|
@ -21,7 +21,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
namespace pmr {
|
||||
template <class _ValueType>
|
||||
class _LIBCPP_AVAILABILITY_PMR _LIBCPP_TEMPLATE_VIS polymorphic_allocator;
|
||||
class _LIBCPP_AVAILABILITY_PMR polymorphic_allocator;
|
||||
} // namespace pmr
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
@ -19,7 +19,7 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _CharT, class _Traits = char_traits<_CharT> >
|
||||
class _LIBCPP_TEMPLATE_VIS basic_ostream;
|
||||
class basic_ostream;
|
||||
|
||||
using ostream = basic_ostream<char>;
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class, class>
|
||||
struct _LIBCPP_TEMPLATE_VIS pair;
|
||||
struct pair;
|
||||
|
||||
template <size_t _Ip, class _T1, class _T2>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 typename tuple_element<_Ip, pair<_T1, _T2> >::type&
|
||||
|
@ -21,10 +21,10 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _Tp, class _Container = deque<_Tp> >
|
||||
class _LIBCPP_TEMPLATE_VIS queue;
|
||||
class queue;
|
||||
|
||||
template <class _Tp, class _Container = vector<_Tp>, class _Compare = less<typename _Container::value_type> >
|
||||
class _LIBCPP_TEMPLATE_VIS priority_queue;
|
||||
class priority_queue;
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
|
@ -20,10 +20,10 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _Key, class _Compare = less<_Key>, class _Allocator = allocator<_Key> >
|
||||
class _LIBCPP_TEMPLATE_VIS set;
|
||||
class set;
|
||||
|
||||
template <class _Key, class _Compare = less<_Key>, class _Allocator = allocator<_Key> >
|
||||
class _LIBCPP_TEMPLATE_VIS multiset;
|
||||
class multiset;
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
|
@ -20,14 +20,14 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _CharT, class _Traits = char_traits<_CharT>, class _Allocator = allocator<_CharT> >
|
||||
class _LIBCPP_TEMPLATE_VIS basic_stringbuf;
|
||||
class basic_stringbuf;
|
||||
|
||||
template <class _CharT, class _Traits = char_traits<_CharT>, class _Allocator = allocator<_CharT> >
|
||||
class _LIBCPP_TEMPLATE_VIS basic_istringstream;
|
||||
class basic_istringstream;
|
||||
template <class _CharT, class _Traits = char_traits<_CharT>, class _Allocator = allocator<_CharT> >
|
||||
class _LIBCPP_TEMPLATE_VIS basic_ostringstream;
|
||||
class basic_ostringstream;
|
||||
template <class _CharT, class _Traits = char_traits<_CharT>, class _Allocator = allocator<_CharT> >
|
||||
class _LIBCPP_TEMPLATE_VIS basic_stringstream;
|
||||
class basic_stringstream;
|
||||
|
||||
using stringbuf = basic_stringbuf<char>;
|
||||
using istringstream = basic_istringstream<char>;
|
||||
|
@ -19,7 +19,7 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _Tp, class _Container = deque<_Tp> >
|
||||
class _LIBCPP_TEMPLATE_VIS stack;
|
||||
class stack;
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _CharT, class _Traits = char_traits<_CharT> >
|
||||
class _LIBCPP_TEMPLATE_VIS basic_streambuf;
|
||||
class basic_streambuf;
|
||||
|
||||
using streambuf = basic_streambuf<char>;
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS char_traits;
|
||||
struct char_traits;
|
||||
template <>
|
||||
struct char_traits<char>;
|
||||
|
||||
@ -40,7 +40,7 @@ struct char_traits<wchar_t>;
|
||||
#endif
|
||||
|
||||
template <class _CharT, class _Traits = char_traits<_CharT>, class _Allocator = allocator<_CharT> >
|
||||
class _LIBCPP_TEMPLATE_VIS basic_string;
|
||||
class basic_string;
|
||||
|
||||
using string = basic_string<char>;
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _CharT, class _Traits = char_traits<_CharT> >
|
||||
class _LIBCPP_TEMPLATE_VIS basic_string_view;
|
||||
class basic_string_view;
|
||||
|
||||
typedef basic_string_view<char> string_view;
|
||||
#if _LIBCPP_HAS_CHAR8_T
|
||||
|
@ -28,7 +28,7 @@ enum class subrange_kind : bool { unsized, sized };
|
||||
|
||||
template <input_or_output_iterator _Iter, sentinel_for<_Iter> _Sent, subrange_kind _Kind>
|
||||
requires(_Kind == subrange_kind::sized || !sized_sentinel_for<_Sent, _Iter>)
|
||||
class _LIBCPP_TEMPLATE_VIS subrange;
|
||||
class subrange;
|
||||
|
||||
template <size_t _Index, class _Iter, class _Sent, subrange_kind _Kind>
|
||||
requires((_Index == 0 && copyable<_Iter>) || _Index == 1)
|
||||
|
@ -19,15 +19,15 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <size_t, class>
|
||||
struct _LIBCPP_TEMPLATE_VIS tuple_element;
|
||||
struct tuple_element;
|
||||
|
||||
#ifndef _LIBCPP_CXX03_LANG
|
||||
|
||||
template <class...>
|
||||
class _LIBCPP_TEMPLATE_VIS tuple;
|
||||
class tuple;
|
||||
|
||||
template <class>
|
||||
struct _LIBCPP_TEMPLATE_VIS tuple_size;
|
||||
struct tuple_size;
|
||||
|
||||
template <size_t _Ip, class... _Tp>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 typename tuple_element<_Ip, tuple<_Tp...> >::type&
|
||||
|
@ -21,16 +21,16 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
|
||||
template <class... _Types>
|
||||
class _LIBCPP_TEMPLATE_VIS variant;
|
||||
class variant;
|
||||
|
||||
template <class _Tp>
|
||||
struct _LIBCPP_TEMPLATE_VIS variant_size;
|
||||
struct variant_size;
|
||||
|
||||
template <class _Tp>
|
||||
inline constexpr size_t variant_size_v = variant_size<_Tp>::value;
|
||||
|
||||
template <size_t _Ip, class _Tp>
|
||||
struct _LIBCPP_TEMPLATE_VIS variant_alternative;
|
||||
struct variant_alternative;
|
||||
|
||||
template <size_t _Ip, class _Tp>
|
||||
using variant_alternative_t = typename variant_alternative<_Ip, _Tp>::type;
|
||||
|
@ -19,7 +19,7 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _Tp, class _Alloc = allocator<_Tp> >
|
||||
class _LIBCPP_TEMPLATE_VIS vector;
|
||||
class vector;
|
||||
|
||||
template <class _Allocator>
|
||||
class vector<bool, _Allocator>;
|
||||
|
@ -154,17 +154,17 @@ template <class _Tp, class _Hash, class _Equal, class _Alloc>
|
||||
class __hash_table;
|
||||
|
||||
template <class _NodePtr>
|
||||
class _LIBCPP_TEMPLATE_VIS __hash_iterator;
|
||||
class __hash_iterator;
|
||||
template <class _ConstNodePtr>
|
||||
class _LIBCPP_TEMPLATE_VIS __hash_const_iterator;
|
||||
class __hash_const_iterator;
|
||||
template <class _NodePtr>
|
||||
class _LIBCPP_TEMPLATE_VIS __hash_local_iterator;
|
||||
class __hash_local_iterator;
|
||||
template <class _ConstNodePtr>
|
||||
class _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator;
|
||||
class __hash_const_local_iterator;
|
||||
template <class _HashIterator>
|
||||
class _LIBCPP_TEMPLATE_VIS __hash_map_iterator;
|
||||
class __hash_map_iterator;
|
||||
template <class _HashIterator>
|
||||
class _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator;
|
||||
class __hash_map_const_iterator;
|
||||
|
||||
template <class _Tp>
|
||||
struct __hash_key_value_types {
|
||||
@ -273,7 +273,7 @@ struct __make_hash_node_types {
|
||||
};
|
||||
|
||||
template <class _NodePtr>
|
||||
class _LIBCPP_TEMPLATE_VIS __hash_iterator {
|
||||
class __hash_iterator {
|
||||
typedef __hash_node_types<_NodePtr> _NodeTypes;
|
||||
typedef _NodePtr __node_pointer;
|
||||
typedef typename _NodeTypes::__next_pointer __next_pointer;
|
||||
@ -327,17 +327,17 @@ private:
|
||||
template <class, class, class, class>
|
||||
friend class __hash_table;
|
||||
template <class>
|
||||
friend class _LIBCPP_TEMPLATE_VIS __hash_const_iterator;
|
||||
friend class __hash_const_iterator;
|
||||
template <class>
|
||||
friend class _LIBCPP_TEMPLATE_VIS __hash_map_iterator;
|
||||
friend class __hash_map_iterator;
|
||||
template <class, class, class, class, class>
|
||||
friend class _LIBCPP_TEMPLATE_VIS unordered_map;
|
||||
friend class unordered_map;
|
||||
template <class, class, class, class, class>
|
||||
friend class _LIBCPP_TEMPLATE_VIS unordered_multimap;
|
||||
friend class unordered_multimap;
|
||||
};
|
||||
|
||||
template <class _NodePtr>
|
||||
class _LIBCPP_TEMPLATE_VIS __hash_const_iterator {
|
||||
class __hash_const_iterator {
|
||||
static_assert(!is_const<typename pointer_traits<_NodePtr>::element_type>::value, "");
|
||||
typedef __hash_node_types<_NodePtr> _NodeTypes;
|
||||
typedef _NodePtr __node_pointer;
|
||||
@ -395,15 +395,15 @@ private:
|
||||
template <class, class, class, class>
|
||||
friend class __hash_table;
|
||||
template <class>
|
||||
friend class _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator;
|
||||
friend class __hash_map_const_iterator;
|
||||
template <class, class, class, class, class>
|
||||
friend class _LIBCPP_TEMPLATE_VIS unordered_map;
|
||||
friend class unordered_map;
|
||||
template <class, class, class, class, class>
|
||||
friend class _LIBCPP_TEMPLATE_VIS unordered_multimap;
|
||||
friend class unordered_multimap;
|
||||
};
|
||||
|
||||
template <class _NodePtr>
|
||||
class _LIBCPP_TEMPLATE_VIS __hash_local_iterator {
|
||||
class __hash_local_iterator {
|
||||
typedef __hash_node_types<_NodePtr> _NodeTypes;
|
||||
typedef _NodePtr __node_pointer;
|
||||
typedef typename _NodeTypes::__next_pointer __next_pointer;
|
||||
@ -468,13 +468,13 @@ private:
|
||||
template <class, class, class, class>
|
||||
friend class __hash_table;
|
||||
template <class>
|
||||
friend class _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator;
|
||||
friend class __hash_const_local_iterator;
|
||||
template <class>
|
||||
friend class _LIBCPP_TEMPLATE_VIS __hash_map_iterator;
|
||||
friend class __hash_map_iterator;
|
||||
};
|
||||
|
||||
template <class _ConstNodePtr>
|
||||
class _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator {
|
||||
class __hash_const_local_iterator {
|
||||
typedef __hash_node_types<_ConstNodePtr> _NodeTypes;
|
||||
typedef _ConstNodePtr __node_pointer;
|
||||
typedef typename _NodeTypes::__next_pointer __next_pointer;
|
||||
@ -553,7 +553,7 @@ private:
|
||||
template <class, class, class, class>
|
||||
friend class __hash_table;
|
||||
template <class>
|
||||
friend class _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator;
|
||||
friend class __hash_map_const_iterator;
|
||||
};
|
||||
|
||||
template <class _Alloc>
|
||||
@ -1021,9 +1021,9 @@ private:
|
||||
_LIBCPP_HIDE_FROM_ABI __next_pointer __detach() _NOEXCEPT;
|
||||
|
||||
template <class, class, class, class, class>
|
||||
friend class _LIBCPP_TEMPLATE_VIS unordered_map;
|
||||
friend class unordered_map;
|
||||
template <class, class, class, class, class>
|
||||
friend class _LIBCPP_TEMPLATE_VIS unordered_multimap;
|
||||
friend class unordered_multimap;
|
||||
};
|
||||
|
||||
template <class _Tp, class _Hash, class _Equal, class _Alloc>
|
||||
|
@ -20,7 +20,7 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _StateT>
|
||||
class _LIBCPP_TEMPLATE_VIS fpos {
|
||||
class fpos {
|
||||
private:
|
||||
_StateT __st_;
|
||||
streamoff __off_;
|
||||
|
@ -28,7 +28,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
_LIBCPP_SUPPRESS_DEPRECATED_PUSH
|
||||
template <class _Container>
|
||||
class _LIBCPP_TEMPLATE_VIS back_insert_iterator
|
||||
class back_insert_iterator
|
||||
#if _LIBCPP_STD_VER <= 14 || !defined(_LIBCPP_ABI_NO_ITERATOR_BASES)
|
||||
: public iterator<output_iterator_tag, void, void, void, void>
|
||||
#endif
|
||||
|
@ -28,7 +28,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
_LIBCPP_SUPPRESS_DEPRECATED_PUSH
|
||||
template <class _Container>
|
||||
class _LIBCPP_TEMPLATE_VIS front_insert_iterator
|
||||
class front_insert_iterator
|
||||
#if _LIBCPP_STD_VER <= 14 || !defined(_LIBCPP_ABI_NO_ITERATOR_BASES)
|
||||
: public iterator<output_iterator_tag, void, void, void, void>
|
||||
#endif
|
||||
|
@ -37,7 +37,7 @@ using __insert_iterator_iter_t _LIBCPP_NODEBUG = typename _Container::iterator;
|
||||
|
||||
_LIBCPP_SUPPRESS_DEPRECATED_PUSH
|
||||
template <class _Container>
|
||||
class _LIBCPP_TEMPLATE_VIS insert_iterator
|
||||
class insert_iterator
|
||||
#if _LIBCPP_STD_VER <= 14 || !defined(_LIBCPP_ABI_NO_ITERATOR_BASES)
|
||||
: public iterator<output_iterator_tag, void, void, void, void>
|
||||
#endif
|
||||
|
@ -27,7 +27,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
_LIBCPP_SUPPRESS_DEPRECATED_PUSH
|
||||
template <class _Tp, class _CharT = char, class _Traits = char_traits<_CharT>, class _Distance = ptrdiff_t>
|
||||
class _LIBCPP_TEMPLATE_VIS istream_iterator
|
||||
class istream_iterator
|
||||
#if _LIBCPP_STD_VER <= 14 || !defined(_LIBCPP_ABI_NO_ITERATOR_BASES)
|
||||
: public iterator<input_iterator_tag, _Tp, _Distance, const _Tp*, const _Tp&>
|
||||
#endif
|
||||
|
@ -27,7 +27,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
_LIBCPP_SUPPRESS_DEPRECATED_PUSH
|
||||
template <class _CharT, class _Traits>
|
||||
class _LIBCPP_TEMPLATE_VIS istreambuf_iterator
|
||||
class istreambuf_iterator
|
||||
#if _LIBCPP_STD_VER <= 14 || !defined(_LIBCPP_ABI_NO_ITERATOR_BASES)
|
||||
: public iterator<input_iterator_tag, _CharT, typename _Traits::off_type, _CharT*, _CharT>
|
||||
#endif
|
||||
|
@ -20,7 +20,7 @@
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _Category, class _Tp, class _Distance = ptrdiff_t, class _Pointer = _Tp*, class _Reference = _Tp&>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 iterator {
|
||||
struct _LIBCPP_DEPRECATED_IN_CXX17 iterator {
|
||||
typedef _Tp value_type;
|
||||
typedef _Distance difference_type;
|
||||
typedef _Pointer pointer;
|
||||
|
@ -61,15 +61,15 @@ using iter_reference_t = decltype(*std::declval<_Tp&>());
|
||||
#endif // _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <class _Iter>
|
||||
struct _LIBCPP_TEMPLATE_VIS iterator_traits;
|
||||
struct iterator_traits;
|
||||
|
||||
struct _LIBCPP_TEMPLATE_VIS input_iterator_tag {};
|
||||
struct _LIBCPP_TEMPLATE_VIS output_iterator_tag {};
|
||||
struct _LIBCPP_TEMPLATE_VIS forward_iterator_tag : public input_iterator_tag {};
|
||||
struct _LIBCPP_TEMPLATE_VIS bidirectional_iterator_tag : public forward_iterator_tag {};
|
||||
struct _LIBCPP_TEMPLATE_VIS random_access_iterator_tag : public bidirectional_iterator_tag {};
|
||||
struct input_iterator_tag {};
|
||||
struct output_iterator_tag {};
|
||||
struct forward_iterator_tag : public input_iterator_tag {};
|
||||
struct bidirectional_iterator_tag : public forward_iterator_tag {};
|
||||
struct random_access_iterator_tag : public bidirectional_iterator_tag {};
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
struct _LIBCPP_TEMPLATE_VIS contiguous_iterator_tag : public random_access_iterator_tag {};
|
||||
struct contiguous_iterator_tag : public random_access_iterator_tag {};
|
||||
#endif
|
||||
|
||||
template <class _Iter>
|
||||
@ -372,7 +372,7 @@ struct __iterator_traits<_Iter, true>
|
||||
// the client expects instead of failing at compile time.
|
||||
|
||||
template <class _Iter>
|
||||
struct _LIBCPP_TEMPLATE_VIS iterator_traits : __iterator_traits<_Iter, __has_iterator_typedefs<_Iter>::value> {
|
||||
struct iterator_traits : __iterator_traits<_Iter, __has_iterator_typedefs<_Iter>::value> {
|
||||
using __primary_template _LIBCPP_NODEBUG = iterator_traits;
|
||||
};
|
||||
#endif // _LIBCPP_STD_VER >= 20
|
||||
@ -381,7 +381,7 @@ template <class _Tp>
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
requires is_object_v<_Tp>
|
||||
#endif
|
||||
struct _LIBCPP_TEMPLATE_VIS iterator_traits<_Tp*> {
|
||||
struct iterator_traits<_Tp*> {
|
||||
typedef ptrdiff_t difference_type;
|
||||
typedef __remove_cv_t<_Tp> value_type;
|
||||
typedef _Tp* pointer;
|
||||
|
@ -64,7 +64,7 @@ concept __move_iter_comparable = requires {
|
||||
#endif // _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <class _Iter>
|
||||
class _LIBCPP_TEMPLATE_VIS move_iterator
|
||||
class move_iterator
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
: public __move_iter_category_base<_Iter>
|
||||
#endif
|
||||
|
@ -27,7 +27,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <semiregular _Sent>
|
||||
class _LIBCPP_TEMPLATE_VIS move_sentinel {
|
||||
class move_sentinel {
|
||||
public:
|
||||
_LIBCPP_HIDE_FROM_ABI move_sentinel() = default;
|
||||
|
||||
|
@ -26,7 +26,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
_LIBCPP_SUPPRESS_DEPRECATED_PUSH
|
||||
template <class _Tp, class _CharT = char, class _Traits = char_traits<_CharT> >
|
||||
class _LIBCPP_TEMPLATE_VIS ostream_iterator
|
||||
class ostream_iterator
|
||||
#if _LIBCPP_STD_VER <= 14 || !defined(_LIBCPP_ABI_NO_ITERATOR_BASES)
|
||||
: public iterator<output_iterator_tag, void, void, void, void>
|
||||
#endif
|
||||
|
@ -27,7 +27,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
_LIBCPP_SUPPRESS_DEPRECATED_PUSH
|
||||
template <class _CharT, class _Traits>
|
||||
class _LIBCPP_TEMPLATE_VIS ostreambuf_iterator
|
||||
class ostreambuf_iterator
|
||||
#if _LIBCPP_STD_VER <= 14 || !defined(_LIBCPP_ABI_NO_ITERATOR_BASES)
|
||||
: public iterator<output_iterator_tag, void, void, void, void>
|
||||
#endif
|
||||
|
@ -48,7 +48,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
_LIBCPP_SUPPRESS_DEPRECATED_PUSH
|
||||
template <class _Iter>
|
||||
class _LIBCPP_TEMPLATE_VIS reverse_iterator
|
||||
class reverse_iterator
|
||||
#if _LIBCPP_STD_VER <= 14 || !defined(_LIBCPP_ABI_NO_ITERATOR_BASES)
|
||||
: public iterator<typename iterator_traits<_Iter>::iterator_category,
|
||||
typename iterator_traits<_Iter>::value_type,
|
||||
|
@ -112,9 +112,9 @@ private:
|
||||
template <class _CharT, class _Traits>
|
||||
friend class basic_string_view;
|
||||
template <class _Tp, class _Alloc>
|
||||
friend class _LIBCPP_TEMPLATE_VIS vector;
|
||||
friend class vector;
|
||||
template <class _Tp, size_t>
|
||||
friend class _LIBCPP_TEMPLATE_VIS span;
|
||||
friend class span;
|
||||
template <class _Tp, size_t _Size>
|
||||
friend struct array;
|
||||
};
|
||||
@ -236,7 +236,7 @@ struct __libcpp_is_contiguous_iterator<__wrap_iter<_It> > : true_type {};
|
||||
#endif
|
||||
|
||||
template <class _It>
|
||||
struct _LIBCPP_TEMPLATE_VIS pointer_traits<__wrap_iter<_It> > {
|
||||
struct pointer_traits<__wrap_iter<_It> > {
|
||||
typedef __wrap_iter<_It> pointer;
|
||||
typedef typename pointer_traits<_It>::element_type element_type;
|
||||
typedef typename pointer_traits<_It>::difference_type difference_type;
|
||||
|
@ -179,7 +179,7 @@ inline _LIBCPP_HIDE_FROM_ABI const _Facet& use_facet(const locale& __l) {
|
||||
// template <class _CharT> class collate;
|
||||
|
||||
template <class _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS collate : public locale::facet {
|
||||
class collate : public locale::facet {
|
||||
public:
|
||||
typedef _CharT char_type;
|
||||
typedef basic_string<char_type> string_type;
|
||||
@ -251,7 +251,7 @@ extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS collate<wchar_t>;
|
||||
// template <class CharT> class collate_byname;
|
||||
|
||||
template <class _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS collate_byname;
|
||||
class collate_byname;
|
||||
|
||||
template <>
|
||||
class _LIBCPP_EXPORTED_FROM_ABI collate_byname<char> : public collate<char> {
|
||||
@ -448,7 +448,7 @@ public:
|
||||
};
|
||||
|
||||
template <class _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS ctype;
|
||||
class ctype;
|
||||
|
||||
# if _LIBCPP_HAS_WIDE_CHARACTERS
|
||||
template <>
|
||||
@ -615,7 +615,7 @@ protected:
|
||||
// template <class CharT> class ctype_byname;
|
||||
|
||||
template <class _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS ctype_byname;
|
||||
class ctype_byname;
|
||||
|
||||
template <>
|
||||
class _LIBCPP_EXPORTED_FROM_ABI ctype_byname<char> : public ctype<char> {
|
||||
@ -741,7 +741,7 @@ public:
|
||||
// template <class internT, class externT, class stateT> class codecvt;
|
||||
|
||||
template <class _InternT, class _ExternT, class _StateT>
|
||||
class _LIBCPP_TEMPLATE_VIS codecvt;
|
||||
class codecvt;
|
||||
|
||||
// template <> class codecvt<char, char, mbstate_t>
|
||||
|
||||
@ -1234,7 +1234,7 @@ protected:
|
||||
// template <class _InternT, class _ExternT, class _StateT> class codecvt_byname
|
||||
|
||||
template <class _InternT, class _ExternT, class _StateT>
|
||||
class _LIBCPP_TEMPLATE_VIS codecvt_byname : public codecvt<_InternT, _ExternT, _StateT> {
|
||||
class codecvt_byname : public codecvt<_InternT, _ExternT, _StateT> {
|
||||
public:
|
||||
_LIBCPP_HIDE_FROM_ABI explicit codecvt_byname(const char* __nm, size_t __refs = 0)
|
||||
: codecvt<_InternT, _ExternT, _StateT>(__nm, __refs) {}
|
||||
@ -1410,7 +1410,7 @@ struct _LIBCPP_EXPORTED_FROM_ABI __widen_from_utf8<32> : public codecvt<char32_t
|
||||
// template <class charT> class numpunct
|
||||
|
||||
template <class _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS numpunct;
|
||||
class numpunct;
|
||||
|
||||
template <>
|
||||
class _LIBCPP_EXPORTED_FROM_ABI numpunct<char> : public locale::facet {
|
||||
@ -1475,7 +1475,7 @@ protected:
|
||||
// template <class charT> class numpunct_byname
|
||||
|
||||
template <class _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS numpunct_byname;
|
||||
class numpunct_byname;
|
||||
|
||||
template <>
|
||||
class _LIBCPP_EXPORTED_FROM_ABI numpunct_byname<char> : public numpunct<char> {
|
||||
|
@ -38,7 +38,7 @@ class allocator;
|
||||
// These specializations shouldn't be marked _LIBCPP_DEPRECATED_IN_CXX17.
|
||||
// Specializing allocator<void> is deprecated, but not using it.
|
||||
template <>
|
||||
class _LIBCPP_TEMPLATE_VIS allocator<void> {
|
||||
class allocator<void> {
|
||||
public:
|
||||
_LIBCPP_DEPRECATED_IN_CXX17 typedef void* pointer;
|
||||
_LIBCPP_DEPRECATED_IN_CXX17 typedef const void* const_pointer;
|
||||
@ -77,7 +77,7 @@ struct __non_trivial_if<true, _Unique> {
|
||||
// allocator<void> trivial in C++20.
|
||||
|
||||
template <class _Tp>
|
||||
class _LIBCPP_TEMPLATE_VIS allocator : private __non_trivial_if<!is_void<_Tp>::value, allocator<_Tp> > {
|
||||
class allocator : private __non_trivial_if<!is_void<_Tp>::value, allocator<_Tp> > {
|
||||
static_assert(!is_const<_Tp>::value, "std::allocator does not support const types");
|
||||
static_assert(!is_volatile<_Tp>::value, "std::allocator does not support volatile types");
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
struct _LIBCPP_TEMPLATE_VIS allocator_arg_t {
|
||||
struct allocator_arg_t {
|
||||
explicit allocator_arg_t() = default;
|
||||
};
|
||||
|
||||
|
@ -224,7 +224,7 @@ _LIBCPP_CTAD_SUPPORTED_FOR_TYPE(allocation_result);
|
||||
#endif // _LIBCPP_STD_VER
|
||||
|
||||
template <class _Alloc>
|
||||
struct _LIBCPP_TEMPLATE_VIS allocator_traits {
|
||||
struct allocator_traits {
|
||||
using allocator_type = _Alloc;
|
||||
using value_type = typename allocator_type::value_type;
|
||||
using pointer = __pointer<value_type, allocator_type>;
|
||||
|
@ -26,7 +26,7 @@ struct _LIBCPP_DEPRECATED_IN_CXX11 auto_ptr_ref {
|
||||
};
|
||||
|
||||
template <class _Tp>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX11 auto_ptr {
|
||||
class _LIBCPP_DEPRECATED_IN_CXX11 auto_ptr {
|
||||
private:
|
||||
_Tp* __ptr_;
|
||||
|
||||
@ -80,7 +80,7 @@ public:
|
||||
};
|
||||
|
||||
template <>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX11 auto_ptr<void> {
|
||||
class _LIBCPP_DEPRECATED_IN_CXX11 auto_ptr<void> {
|
||||
public:
|
||||
typedef void element_type;
|
||||
};
|
||||
|
@ -35,7 +35,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 23
|
||||
|
||||
template <class _Smart, class _Pointer, class... _Args>
|
||||
class _LIBCPP_TEMPLATE_VIS inout_ptr_t {
|
||||
class inout_ptr_t {
|
||||
static_assert(!__is_specialization_v<_Smart, shared_ptr>, "std::shared_ptr<> is not supported with std::inout_ptr.");
|
||||
|
||||
public:
|
||||
|
@ -34,7 +34,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 23
|
||||
|
||||
template <class _Smart, class _Pointer, class... _Args>
|
||||
class _LIBCPP_TEMPLATE_VIS out_ptr_t {
|
||||
class out_ptr_t {
|
||||
static_assert(!__is_specialization_v<_Smart, shared_ptr> || sizeof...(_Args) > 0,
|
||||
"Using std::shared_ptr<> without a deleter in std::out_ptr is not supported.");
|
||||
|
||||
|
@ -146,10 +146,10 @@ public:
|
||||
};
|
||||
|
||||
template <class _Ptr>
|
||||
struct _LIBCPP_TEMPLATE_VIS pointer_traits : __pointer_traits_impl<_Ptr> {};
|
||||
struct pointer_traits : __pointer_traits_impl<_Ptr> {};
|
||||
|
||||
template <class _Tp>
|
||||
struct _LIBCPP_TEMPLATE_VIS pointer_traits<_Tp*> {
|
||||
struct pointer_traits<_Tp*> {
|
||||
typedef _Tp* pointer;
|
||||
typedef _Tp element_type;
|
||||
typedef ptrdiff_t difference_type;
|
||||
|
@ -30,7 +30,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
_LIBCPP_SUPPRESS_DEPRECATED_PUSH
|
||||
template <class _OutputIterator, class _Tp>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 raw_storage_iterator
|
||||
class _LIBCPP_DEPRECATED_IN_CXX17 raw_storage_iterator
|
||||
# if _LIBCPP_STD_VER <= 14 || !defined(_LIBCPP_ABI_NO_ITERATOR_BASES)
|
||||
: public iterator<output_iterator_tag, void, void, void, void>
|
||||
# endif
|
||||
|
@ -90,7 +90,7 @@ public:
|
||||
}
|
||||
|
||||
template <class _Tp>
|
||||
class _LIBCPP_TEMPLATE_VIS weak_ptr;
|
||||
class weak_ptr;
|
||||
|
||||
template <class _Tp, class _Dp, class _Alloc>
|
||||
class __shared_ptr_pointer : public __shared_weak_count {
|
||||
@ -218,7 +218,7 @@ private:
|
||||
|
||||
struct __shared_ptr_dummy_rebind_allocator_type;
|
||||
template <>
|
||||
class _LIBCPP_TEMPLATE_VIS allocator<__shared_ptr_dummy_rebind_allocator_type> {
|
||||
class allocator<__shared_ptr_dummy_rebind_allocator_type> {
|
||||
public:
|
||||
template <class _Other>
|
||||
struct rebind {
|
||||
@ -227,7 +227,7 @@ public:
|
||||
};
|
||||
|
||||
template <class _Tp>
|
||||
class _LIBCPP_TEMPLATE_VIS enable_shared_from_this;
|
||||
class enable_shared_from_this;
|
||||
|
||||
// http://eel.is/c++draft/util.sharedptr#util.smartptr.shared.general-6
|
||||
// A pointer type Y* is said to be compatible with a pointer type T*
|
||||
@ -304,7 +304,7 @@ using __shared_ptr_nullptr_deleter_ctor_reqs _LIBCPP_NODEBUG =
|
||||
#endif
|
||||
|
||||
template <class _Tp>
|
||||
class _LIBCPP_SHARED_PTR_TRIVIAL_ABI _LIBCPP_TEMPLATE_VIS shared_ptr {
|
||||
class _LIBCPP_SHARED_PTR_TRIVIAL_ABI shared_ptr {
|
||||
struct __nullptr_sfinae_tag {};
|
||||
|
||||
public:
|
||||
@ -711,9 +711,9 @@ private:
|
||||
struct __shared_ptr_default_delete<_Yp[], _Un> : default_delete<_Yp[]> {};
|
||||
|
||||
template <class _Up>
|
||||
friend class _LIBCPP_TEMPLATE_VIS shared_ptr;
|
||||
friend class shared_ptr;
|
||||
template <class _Up>
|
||||
friend class _LIBCPP_TEMPLATE_VIS weak_ptr;
|
||||
friend class weak_ptr;
|
||||
};
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
@ -1202,7 +1202,7 @@ inline _LIBCPP_HIDE_FROM_ABI _Dp* get_deleter(const shared_ptr<_Tp>& __p) _NOEXC
|
||||
#endif // _LIBCPP_HAS_RTTI
|
||||
|
||||
template <class _Tp>
|
||||
class _LIBCPP_SHARED_PTR_TRIVIAL_ABI _LIBCPP_TEMPLATE_VIS weak_ptr {
|
||||
class _LIBCPP_SHARED_PTR_TRIVIAL_ABI weak_ptr {
|
||||
public:
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
typedef remove_extent_t<_Tp> element_type;
|
||||
@ -1263,9 +1263,9 @@ public:
|
||||
}
|
||||
|
||||
template <class _Up>
|
||||
friend class _LIBCPP_TEMPLATE_VIS weak_ptr;
|
||||
friend class weak_ptr;
|
||||
template <class _Up>
|
||||
friend class _LIBCPP_TEMPLATE_VIS shared_ptr;
|
||||
friend class shared_ptr;
|
||||
};
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
@ -1383,7 +1383,7 @@ struct owner_less;
|
||||
#endif
|
||||
|
||||
template <class _Tp>
|
||||
struct _LIBCPP_TEMPLATE_VIS owner_less<shared_ptr<_Tp> > : __binary_function<shared_ptr<_Tp>, shared_ptr<_Tp>, bool> {
|
||||
struct owner_less<shared_ptr<_Tp> > : __binary_function<shared_ptr<_Tp>, shared_ptr<_Tp>, bool> {
|
||||
_LIBCPP_HIDE_FROM_ABI bool operator()(shared_ptr<_Tp> const& __x, shared_ptr<_Tp> const& __y) const _NOEXCEPT {
|
||||
return __x.owner_before(__y);
|
||||
}
|
||||
@ -1396,7 +1396,7 @@ struct _LIBCPP_TEMPLATE_VIS owner_less<shared_ptr<_Tp> > : __binary_function<sha
|
||||
};
|
||||
|
||||
template <class _Tp>
|
||||
struct _LIBCPP_TEMPLATE_VIS owner_less<weak_ptr<_Tp> > : __binary_function<weak_ptr<_Tp>, weak_ptr<_Tp>, bool> {
|
||||
struct owner_less<weak_ptr<_Tp> > : __binary_function<weak_ptr<_Tp>, weak_ptr<_Tp>, bool> {
|
||||
_LIBCPP_HIDE_FROM_ABI bool operator()(weak_ptr<_Tp> const& __x, weak_ptr<_Tp> const& __y) const _NOEXCEPT {
|
||||
return __x.owner_before(__y);
|
||||
}
|
||||
@ -1410,7 +1410,7 @@ struct _LIBCPP_TEMPLATE_VIS owner_less<weak_ptr<_Tp> > : __binary_function<weak_
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS owner_less<void> {
|
||||
struct owner_less<void> {
|
||||
template <class _Tp, class _Up>
|
||||
_LIBCPP_HIDE_FROM_ABI bool operator()(shared_ptr<_Tp> const& __x, shared_ptr<_Up> const& __y) const _NOEXCEPT {
|
||||
return __x.owner_before(__y);
|
||||
@ -1432,7 +1432,7 @@ struct _LIBCPP_TEMPLATE_VIS owner_less<void> {
|
||||
#endif
|
||||
|
||||
template <class _Tp>
|
||||
class _LIBCPP_TEMPLATE_VIS enable_shared_from_this {
|
||||
class enable_shared_from_this {
|
||||
mutable weak_ptr<_Tp> __weak_this_;
|
||||
|
||||
protected:
|
||||
@ -1456,10 +1456,10 @@ public:
|
||||
};
|
||||
|
||||
template <class _Tp>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash;
|
||||
struct hash;
|
||||
|
||||
template <class _Tp>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<shared_ptr<_Tp> > {
|
||||
struct hash<shared_ptr<_Tp> > {
|
||||
#if _LIBCPP_STD_VER <= 17 || defined(_LIBCPP_ENABLE_CXX20_REMOVED_BINDER_TYPEDEFS)
|
||||
_LIBCPP_DEPRECATED_IN_CXX17 typedef shared_ptr<_Tp> argument_type;
|
||||
_LIBCPP_DEPRECATED_IN_CXX17 typedef size_t result_type;
|
||||
|
@ -62,7 +62,7 @@ _LIBCPP_PUSH_MACROS
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _Tp>
|
||||
struct _LIBCPP_TEMPLATE_VIS default_delete {
|
||||
struct default_delete {
|
||||
static_assert(!is_function<_Tp>::value, "default_delete cannot be instantiated for function types");
|
||||
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR default_delete() _NOEXCEPT = default;
|
||||
@ -78,7 +78,7 @@ struct _LIBCPP_TEMPLATE_VIS default_delete {
|
||||
};
|
||||
|
||||
template <class _Tp>
|
||||
struct _LIBCPP_TEMPLATE_VIS default_delete<_Tp[]> {
|
||||
struct default_delete<_Tp[]> {
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR default_delete() _NOEXCEPT = default;
|
||||
|
||||
template <class _Up, __enable_if_t<is_convertible<_Up (*)[], _Tp (*)[]>::value, int> = 0>
|
||||
@ -126,7 +126,7 @@ struct __unique_ptr_deleter_sfinae<_Deleter&> {
|
||||
#endif
|
||||
|
||||
template <class _Tp, class _Dp = default_delete<_Tp> >
|
||||
class _LIBCPP_UNIQUE_PTR_TRIVIAL_ABI _LIBCPP_TEMPLATE_VIS unique_ptr {
|
||||
class _LIBCPP_UNIQUE_PTR_TRIVIAL_ABI unique_ptr {
|
||||
public:
|
||||
typedef _Tp element_type;
|
||||
typedef _Dp deleter_type;
|
||||
@ -393,7 +393,7 @@ private:
|
||||
};
|
||||
|
||||
template <class _Tp, class _Dp>
|
||||
class _LIBCPP_UNIQUE_PTR_TRIVIAL_ABI _LIBCPP_TEMPLATE_VIS unique_ptr<_Tp[], _Dp> {
|
||||
class _LIBCPP_UNIQUE_PTR_TRIVIAL_ABI unique_ptr<_Tp[], _Dp> {
|
||||
public:
|
||||
typedef _Tp element_type;
|
||||
typedef _Dp deleter_type;
|
||||
@ -783,13 +783,13 @@ void make_unique_for_overwrite(_Args&&...) = delete;
|
||||
#endif // _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <class _Tp>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash;
|
||||
struct hash;
|
||||
|
||||
template <class _Tp, class _Dp>
|
||||
#ifdef _LIBCPP_CXX03_LANG
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<unique_ptr<_Tp, _Dp> >
|
||||
struct hash<unique_ptr<_Tp, _Dp> >
|
||||
#else
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<__enable_hash_helper< unique_ptr<_Tp, _Dp>, typename unique_ptr<_Tp, _Dp>::pointer> >
|
||||
struct hash<__enable_hash_helper< unique_ptr<_Tp, _Dp>, typename unique_ptr<_Tp, _Dp>::pointer> >
|
||||
#endif
|
||||
{
|
||||
#if _LIBCPP_STD_VER <= 17 || defined(_LIBCPP_ENABLE_CXX20_REMOVED_BINDER_TYPEDEFS)
|
||||
|
@ -40,7 +40,7 @@ template <class _Tp, class _Alloc>
|
||||
struct __uses_allocator<_Tp, _Alloc, false> : public false_type {};
|
||||
|
||||
template <class _Tp, class _Alloc>
|
||||
struct _LIBCPP_TEMPLATE_VIS uses_allocator : public __uses_allocator<_Tp, _Alloc> {};
|
||||
struct uses_allocator : public __uses_allocator<_Tp, _Alloc> {};
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
template <class _Tp, class _Alloc>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user