mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-27 07:31:28 +00:00
[libc++] Remove availability markup for std::format
std::format is currently experimental, so there is technically no deployment target requirement for it (since the only symbols required for it are in `libc++experimental.a`). However, some parts of std::format depend indirectly on the floating point std::to_chars implementation, which does have deployment target requirements. This patch removes all the availability format for std::format and updates the XFAILs in the tests to properly explain why they fail on old deployment targets, when they do. It also changes a couple of tests to avoid depending on floating-point std::to_chars when it isn't fundamental to the test. Finally, some tests are marked as XFAIL but I added a comment saying TODO FMT This test should not require std::to_chars(floating-point) These tests do not fundamentally depend on floating-point std::to_chars, however they end up failing because calling std::format even without a floating-point argument to format will end up requiring floating-point std::to_chars. I believe this is an implementation artifact that could be avoided in all cases where we know the format string at compile-time. In the tests, I added the TODO comment only to the places where we could do better and actually avoid relying on floating-point std::to_chars because we know the format string at compile-time. Differential Revision: https://reviews.llvm.org/D134598
This commit is contained in:
parent
77ed8311a6
commit
3d334df587
@ -149,13 +149,6 @@
|
||||
// # define _LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_latch
|
||||
// # define _LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_semaphore
|
||||
|
||||
// This controls the availability of the C++20 format library.
|
||||
// The library is in development and not ABI stable yet. P2216 is
|
||||
// retroactively accepted in C++20. This paper contains ABI breaking
|
||||
// changes.
|
||||
# define _LIBCPP_AVAILABILITY_FORMAT
|
||||
// # define _LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_format
|
||||
|
||||
// This controls whether the library claims to provide a default verbose
|
||||
// termination function, and consequently whether the headers will try
|
||||
// to use it when the mechanism isn't overriden at compile-time.
|
||||
@ -259,10 +252,6 @@
|
||||
# define _LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_semaphore
|
||||
# endif
|
||||
|
||||
# define _LIBCPP_AVAILABILITY_FORMAT \
|
||||
__attribute__((unavailable))
|
||||
# define _LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_format
|
||||
|
||||
# define _LIBCPP_HAS_NO_VERBOSE_ABORT_IN_LIBRARY
|
||||
|
||||
#else
|
||||
|
@ -542,7 +542,7 @@ __format_chrono(const _Tp& __value,
|
||||
} // namespace __formatter
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT __formatter_chrono {
|
||||
struct _LIBCPP_TEMPLATE_VIS __formatter_chrono {
|
||||
public:
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr auto __parse(
|
||||
basic_format_parse_context<_CharT>& __parse_ctx, __format_spec::__fields __fields, __format_spec::__flags __flags)
|
||||
@ -582,7 +582,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<chrono::day, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::day, _CharT>
|
||||
: public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base = __formatter_chrono<_CharT>;
|
||||
@ -594,7 +594,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<chrono::month, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month, _CharT>
|
||||
: public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base = __formatter_chrono<_CharT>;
|
||||
@ -606,7 +606,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<chrono::year, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year, _CharT>
|
||||
: public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base = __formatter_chrono<_CharT>;
|
||||
@ -618,7 +618,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<chrono::weekday, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::weekday, _CharT>
|
||||
: public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base = __formatter_chrono<_CharT>;
|
||||
@ -630,7 +630,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<chrono::weekday_indexed, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::weekday_indexed, _CharT>
|
||||
: public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base = __formatter_chrono<_CharT>;
|
||||
@ -642,7 +642,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<chrono::weekday_last, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::weekday_last, _CharT>
|
||||
: public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base = __formatter_chrono<_CharT>;
|
||||
@ -654,7 +654,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<chrono::month_day, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month_day, _CharT>
|
||||
: public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base = __formatter_chrono<_CharT>;
|
||||
@ -666,7 +666,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<chrono::month_day_last, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month_day_last, _CharT>
|
||||
: public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base = __formatter_chrono<_CharT>;
|
||||
@ -678,7 +678,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<chrono::month_weekday, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month_weekday, _CharT>
|
||||
: public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base = __formatter_chrono<_CharT>;
|
||||
@ -690,7 +690,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<chrono::month_weekday_last, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::month_weekday_last, _CharT>
|
||||
: public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base = __formatter_chrono<_CharT>;
|
||||
@ -702,7 +702,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<chrono::year_month, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month, _CharT>
|
||||
: public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base = __formatter_chrono<_CharT>;
|
||||
@ -714,7 +714,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<chrono::year_month_day, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month_day, _CharT>
|
||||
: public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base = __formatter_chrono<_CharT>;
|
||||
@ -726,7 +726,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<chrono::year_month_day_last, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month_day_last, _CharT>
|
||||
: public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base = __formatter_chrono<_CharT>;
|
||||
@ -738,7 +738,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<chrono::year_month_weekday, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month_weekday, _CharT>
|
||||
: public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base = __formatter_chrono<_CharT>;
|
||||
@ -750,7 +750,7 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<chrono::year_month_weekday_last, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<chrono::year_month_weekday_last, _CharT>
|
||||
: public __formatter_chrono<_CharT> {
|
||||
public:
|
||||
using _Base = __formatter_chrono<_CharT>;
|
||||
|
@ -93,7 +93,7 @@ _LIBCPP_HIDE_FROM_ABI auto __units_suffix() {
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits, class _Rep, class _Period>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT basic_ostream<_CharT, _Traits>&
|
||||
_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __os, const duration<_Rep, _Period>& __d) {
|
||||
basic_ostringstream<_CharT, _Traits> __s;
|
||||
__s.flags(__os.flags());
|
||||
@ -104,8 +104,7 @@ operator<<(basic_ostream<_CharT, _Traits>& __os, const duration<_Rep, _Period>&
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __os, const day& __d) {
|
||||
_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const day& __d) {
|
||||
return __os << (__d.ok() ? std::format(_LIBCPP_STATICALLY_WIDEN(_CharT, "{:%d}"), __d)
|
||||
// Note this error differs from the wording of the Standard. The
|
||||
// Standard wording doesn't work well on AIX or Windows. There
|
||||
@ -117,7 +116,7 @@ operator<<(basic_ostream<_CharT, _Traits>& __os, const day& __d) {
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT basic_ostream<_CharT, _Traits>&
|
||||
_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __os, const month& __m) {
|
||||
return __os << (__m.ok() ? std::format(__os.getloc(), _LIBCPP_STATICALLY_WIDEN(_CharT, "{:L%b}"), __m)
|
||||
: std::format(__os.getloc(),
|
||||
@ -126,14 +125,14 @@ operator<<(basic_ostream<_CharT, _Traits>& __os, const month& __m) {
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT basic_ostream<_CharT, _Traits>&
|
||||
_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __os, const year& __y) {
|
||||
return __os << (__y.ok() ? std::format(_LIBCPP_STATICALLY_WIDEN(_CharT, "{:%Y}"), __y)
|
||||
: std::format(_LIBCPP_STATICALLY_WIDEN(_CharT, "{:%Y} is not a valid year"), __y));
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT basic_ostream<_CharT, _Traits>&
|
||||
_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __os, const weekday& __wd) {
|
||||
return __os << (__wd.ok() ? std::format(__os.getloc(), _LIBCPP_STATICALLY_WIDEN(_CharT, "{:L%a}"), __wd)
|
||||
: std::format(__os.getloc(), // TODO FMT Standard mandated locale isn't used.
|
||||
@ -142,7 +141,7 @@ operator<<(basic_ostream<_CharT, _Traits>& __os, const weekday& __wd) {
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT basic_ostream<_CharT, _Traits>&
|
||||
_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __os, const weekday_indexed& __wdi) {
|
||||
auto __i = __wdi.index();
|
||||
return __os << (__i >= 1 && __i <= 5
|
||||
@ -154,13 +153,13 @@ operator<<(basic_ostream<_CharT, _Traits>& __os, const weekday_indexed& __wdi) {
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT basic_ostream<_CharT, _Traits>&
|
||||
_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __os, const weekday_last& __wdl) {
|
||||
return __os << std::format(__os.getloc(), _LIBCPP_STATICALLY_WIDEN(_CharT, "{:L}[last]"), __wdl.weekday());
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT basic_ostream<_CharT, _Traits>&
|
||||
_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __os, const month_day& __md) {
|
||||
// TODO FMT The Standard allows 30th of February to be printed.
|
||||
// It would be nice to show an error message instead.
|
||||
@ -168,47 +167,47 @@ operator<<(basic_ostream<_CharT, _Traits>& __os, const month_day& __md) {
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT basic_ostream<_CharT, _Traits>&
|
||||
_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __os, const month_day_last& __mdl) {
|
||||
return __os << std::format(__os.getloc(), _LIBCPP_STATICALLY_WIDEN(_CharT, "{:L}/last"), __mdl.month());
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT basic_ostream<_CharT, _Traits>&
|
||||
_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __os, const month_weekday& __mwd) {
|
||||
return __os << std::format(
|
||||
__os.getloc(), _LIBCPP_STATICALLY_WIDEN(_CharT, "{:L}/{:L}"), __mwd.month(), __mwd.weekday_indexed());
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT basic_ostream<_CharT, _Traits>&
|
||||
_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __os, const month_weekday_last& __mwdl) {
|
||||
return __os << std::format(
|
||||
__os.getloc(), _LIBCPP_STATICALLY_WIDEN(_CharT, "{:L}/{:L}"), __mwdl.month(), __mwdl.weekday_last());
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT basic_ostream<_CharT, _Traits>&
|
||||
_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __os, const year_month& __ym) {
|
||||
return __os << std::format(__os.getloc(), _LIBCPP_STATICALLY_WIDEN(_CharT, "{}/{:L}"), __ym.year(), __ym.month());
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT basic_ostream<_CharT, _Traits>&
|
||||
_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __os, const year_month_day& __ymd) {
|
||||
return __os << (__ymd.ok() ? std::format(_LIBCPP_STATICALLY_WIDEN(_CharT, "{:%F}"), __ymd)
|
||||
: std::format(_LIBCPP_STATICALLY_WIDEN(_CharT, "{:%F} is not a valid date"), __ymd));
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT basic_ostream<_CharT, _Traits>&
|
||||
_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __os, const year_month_day_last& __ymdl) {
|
||||
return __os << std::format(
|
||||
__os.getloc(), _LIBCPP_STATICALLY_WIDEN(_CharT, "{}/{:L}"), __ymdl.year(), __ymdl.month_day_last());
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT basic_ostream<_CharT, _Traits>&
|
||||
_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __os, const year_month_weekday& __ymwd) {
|
||||
return __os << std::format(
|
||||
__os.getloc(),
|
||||
@ -219,7 +218,7 @@ operator<<(basic_ostream<_CharT, _Traits>& __os, const year_month_weekday& __ymw
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT basic_ostream<_CharT, _Traits>&
|
||||
_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __os, const year_month_weekday_last& __ymwdl) {
|
||||
return __os << std::format(
|
||||
__os.getloc(),
|
||||
@ -230,7 +229,7 @@ operator<<(basic_ostream<_CharT, _Traits>& __os, const year_month_weekday_last&
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits, class _Duration>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT basic_ostream<_CharT, _Traits>&
|
||||
_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __os, const hh_mm_ss<_Duration> __hms) {
|
||||
return __os << std::format(__os.getloc(), _LIBCPP_STATICALLY_WIDEN(_CharT, "{:L%T}"), __hms);
|
||||
}
|
||||
|
@ -37,7 +37,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 _LIBCPP_AVAILABILITY_FORMAT __formatter_container_adaptor {
|
||||
struct _LIBCPP_TEMPLATE_VIS __formatter_container_adaptor {
|
||||
private:
|
||||
using __maybe_const_container = __fmt_maybe_const<typename _Adaptor::container_type, _CharT>;
|
||||
using __maybe_const_adaptor = __maybe_const<is_const_v<__maybe_const_container>, _Adaptor>;
|
||||
@ -57,15 +57,15 @@ public:
|
||||
};
|
||||
|
||||
template <class _CharT, class _Tp, formattable<_CharT> _Container>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<queue<_Tp, _Container>, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS 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 _LIBCPP_AVAILABILITY_FORMAT formatter<priority_queue<_Tp, _Container, _Compare>, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS 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 _LIBCPP_AVAILABILITY_FORMAT formatter<stack<_Tp, _Container>, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<stack<_Tp, _Container>, _CharT>
|
||||
: public __formatter_container_adaptor<stack<_Tp, _Container>, _CharT> {};
|
||||
|
||||
#endif //_LIBCPP_STD_VER >= 23
|
||||
|
@ -95,7 +95,7 @@ constexpr __arg_t __get_packed_type(uint64_t __types, size_t __id) {
|
||||
// This function is not user obervable, so it can directly use the non-standard
|
||||
// types of the "variant". See __arg_t for more details.
|
||||
template <class _Visitor, class _Context>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT decltype(auto)
|
||||
_LIBCPP_HIDE_FROM_ABI decltype(auto)
|
||||
__visit_format_arg(_Visitor&& __vis, basic_format_arg<_Context> __arg) {
|
||||
switch (__arg.__type_) {
|
||||
case __format::__arg_t::__none:
|
||||
@ -225,7 +225,7 @@ public:
|
||||
};
|
||||
|
||||
template <class _Context>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT basic_format_arg {
|
||||
class _LIBCPP_TEMPLATE_VIS basic_format_arg {
|
||||
public:
|
||||
class _LIBCPP_TEMPLATE_VIS handle;
|
||||
|
||||
@ -277,7 +277,7 @@ private:
|
||||
// This function is user facing, so it must wrap the non-standard types of
|
||||
// the "variant" in a handle to stay conforming. See __arg_t for more details.
|
||||
template <class _Visitor, class _Context>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT decltype(auto)
|
||||
_LIBCPP_HIDE_FROM_ABI decltype(auto)
|
||||
visit_format_arg(_Visitor&& __vis, basic_format_arg<_Context> __arg) {
|
||||
switch (__arg.__type_) {
|
||||
# ifndef _LIBCPP_HAS_NO_INT128
|
||||
|
@ -27,7 +27,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <class _Context>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT basic_format_args {
|
||||
class _LIBCPP_TEMPLATE_VIS basic_format_args {
|
||||
public:
|
||||
_LIBCPP_HIDE_FROM_ABI basic_format_args() noexcept = default;
|
||||
|
||||
|
@ -41,7 +41,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _OutIt, class _CharT>
|
||||
requires output_iterator<_OutIt, const _CharT&>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT basic_format_context;
|
||||
class _LIBCPP_TEMPLATE_VIS basic_format_context;
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_LOCALIZATION
|
||||
/**
|
||||
@ -80,7 +80,6 @@ requires output_iterator<_OutIt, const _CharT&>
|
||||
class
|
||||
// clang-format off
|
||||
_LIBCPP_TEMPLATE_VIS
|
||||
_LIBCPP_AVAILABILITY_FORMAT
|
||||
_LIBCPP_PREFERRED_NAME(format_context)
|
||||
_LIBCPP_IF_WIDE_CHARACTERS(_LIBCPP_PREFERRED_NAME(wformat_context))
|
||||
// clang-format on
|
||||
@ -162,7 +161,7 @@ private:
|
||||
// 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 _LIBCPP_AVAILABILITY_FORMAT
|
||||
class _LIBCPP_TEMPLATE_VIS
|
||||
basic_format_context<typename __format::__retarget_buffer<_CharT>::__iterator, _CharT> {
|
||||
public:
|
||||
using iterator = typename __format::__retarget_buffer<_CharT>::__iterator;
|
||||
|
@ -344,7 +344,7 @@ struct _LIBCPP_TEMPLATE_VIS basic_format_string {
|
||||
_Context{__types_.data(), __handles_.data(), sizeof...(_Args)});
|
||||
}
|
||||
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT constexpr basic_string_view<_CharT> get() const noexcept {
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr basic_string_view<_CharT> get() const noexcept {
|
||||
return __str_;
|
||||
}
|
||||
|
||||
@ -409,21 +409,21 @@ requires(output_iterator<_OutIt, const _CharT&>) _LIBCPP_HIDE_FROM_ABI _OutIt
|
||||
// https://reviews.llvm.org/D110499#inline-1180704
|
||||
// TODO FMT Evaluate whether we want to file a Clang bug report regarding this.
|
||||
template <output_iterator<const char&> _OutIt>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT _OutIt
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _OutIt
|
||||
vformat_to(_OutIt __out_it, string_view __fmt, format_args __args) {
|
||||
return _VSTD::__vformat_to(_VSTD::move(__out_it), __fmt, __args);
|
||||
}
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
|
||||
template <output_iterator<const wchar_t&> _OutIt>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT _OutIt
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _OutIt
|
||||
vformat_to(_OutIt __out_it, wstring_view __fmt, wformat_args __args) {
|
||||
return _VSTD::__vformat_to(_VSTD::move(__out_it), __fmt, __args);
|
||||
}
|
||||
#endif
|
||||
|
||||
template <output_iterator<const char&> _OutIt, class... _Args>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT _OutIt
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _OutIt
|
||||
format_to(_OutIt __out_it, format_string<_Args...> __fmt, _Args&&... __args) {
|
||||
return _VSTD::vformat_to(_VSTD::move(__out_it), __fmt.get(),
|
||||
_VSTD::make_format_args(__args...));
|
||||
@ -431,14 +431,17 @@ format_to(_OutIt __out_it, format_string<_Args...> __fmt, _Args&&... __args) {
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
|
||||
template <output_iterator<const wchar_t&> _OutIt, class... _Args>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT _OutIt
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _OutIt
|
||||
format_to(_OutIt __out_it, wformat_string<_Args...> __fmt, _Args&&... __args) {
|
||||
return _VSTD::vformat_to(_VSTD::move(__out_it), __fmt.get(),
|
||||
_VSTD::make_wformat_args(__args...));
|
||||
}
|
||||
#endif
|
||||
|
||||
_LIBCPP_ALWAYS_INLINE inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT string
|
||||
// TODO FMT This needs to be a template or std::to_chars(floating-point) availability markup
|
||||
// fires too eagerly, see http://llvm.org/PR61563.
|
||||
template <class = void>
|
||||
_LIBCPP_ALWAYS_INLINE inline _LIBCPP_HIDE_FROM_ABI string
|
||||
vformat(string_view __fmt, format_args __args) {
|
||||
string __res;
|
||||
_VSTD::vformat_to(_VSTD::back_inserter(__res), __fmt, __args);
|
||||
@ -446,7 +449,10 @@ vformat(string_view __fmt, format_args __args) {
|
||||
}
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
|
||||
_LIBCPP_ALWAYS_INLINE inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT wstring
|
||||
// TODO FMT This needs to be a template or std::to_chars(floating-point) availability markup
|
||||
// fires too eagerly, see http://llvm.org/PR61563.
|
||||
template <class = void>
|
||||
_LIBCPP_ALWAYS_INLINE inline _LIBCPP_HIDE_FROM_ABI wstring
|
||||
vformat(wstring_view __fmt, wformat_args __args) {
|
||||
wstring __res;
|
||||
_VSTD::vformat_to(_VSTD::back_inserter(__res), __fmt, __args);
|
||||
@ -455,14 +461,14 @@ vformat(wstring_view __fmt, wformat_args __args) {
|
||||
#endif
|
||||
|
||||
template <class... _Args>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT string format(format_string<_Args...> __fmt,
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI string format(format_string<_Args...> __fmt,
|
||||
_Args&&... __args) {
|
||||
return _VSTD::vformat(__fmt.get(), _VSTD::make_format_args(__args...));
|
||||
}
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
|
||||
template <class... _Args>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT wstring
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI wstring
|
||||
format(wformat_string<_Args...> __fmt, _Args&&... __args) {
|
||||
return _VSTD::vformat(__fmt.get(), _VSTD::make_wformat_args(__args...));
|
||||
}
|
||||
@ -479,14 +485,14 @@ _LIBCPP_HIDE_FROM_ABI format_to_n_result<_OutIt> __vformat_to_n(_OutIt __out_it,
|
||||
}
|
||||
|
||||
template <output_iterator<const char&> _OutIt, class... _Args>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT format_to_n_result<_OutIt>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI format_to_n_result<_OutIt>
|
||||
format_to_n(_OutIt __out_it, iter_difference_t<_OutIt> __n, format_string<_Args...> __fmt, _Args&&... __args) {
|
||||
return _VSTD::__vformat_to_n<format_context>(_VSTD::move(__out_it), __n, __fmt.get(), _VSTD::make_format_args(__args...));
|
||||
}
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
|
||||
template <output_iterator<const wchar_t&> _OutIt, class... _Args>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT format_to_n_result<_OutIt>
|
||||
_LIBCPP_HIDE_FROM_ABI format_to_n_result<_OutIt>
|
||||
format_to_n(_OutIt __out_it, iter_difference_t<_OutIt> __n, wformat_string<_Args...> __fmt,
|
||||
_Args&&... __args) {
|
||||
return _VSTD::__vformat_to_n<wformat_context>(_VSTD::move(__out_it), __n, __fmt.get(), _VSTD::make_wformat_args(__args...));
|
||||
@ -502,14 +508,14 @@ _LIBCPP_HIDE_FROM_ABI size_t __vformatted_size(basic_string_view<_CharT> __fmt,
|
||||
}
|
||||
|
||||
template <class... _Args>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT size_t
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI size_t
|
||||
formatted_size(format_string<_Args...> __fmt, _Args&&... __args) {
|
||||
return _VSTD::__vformatted_size(__fmt.get(), basic_format_args{_VSTD::make_format_args(__args...)});
|
||||
}
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
|
||||
template <class... _Args>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT size_t
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI size_t
|
||||
formatted_size(wformat_string<_Args...> __fmt, _Args&&... __args) {
|
||||
return _VSTD::__vformatted_size(__fmt.get(), basic_format_args{_VSTD::make_wformat_args(__args...)});
|
||||
}
|
||||
@ -536,7 +542,7 @@ requires(output_iterator<_OutIt, const _CharT&>) _LIBCPP_HIDE_FROM_ABI _OutIt
|
||||
}
|
||||
|
||||
template <output_iterator<const char&> _OutIt>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT _OutIt vformat_to(
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _OutIt vformat_to(
|
||||
_OutIt __out_it, locale __loc, string_view __fmt, format_args __args) {
|
||||
return _VSTD::__vformat_to(_VSTD::move(__out_it), _VSTD::move(__loc), __fmt,
|
||||
__args);
|
||||
@ -544,7 +550,7 @@ _LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT _OutIt v
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
|
||||
template <output_iterator<const wchar_t&> _OutIt>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT _OutIt vformat_to(
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _OutIt vformat_to(
|
||||
_OutIt __out_it, locale __loc, wstring_view __fmt, wformat_args __args) {
|
||||
return _VSTD::__vformat_to(_VSTD::move(__out_it), _VSTD::move(__loc), __fmt,
|
||||
__args);
|
||||
@ -552,7 +558,7 @@ _LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT _OutIt v
|
||||
#endif
|
||||
|
||||
template <output_iterator<const char&> _OutIt, class... _Args>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT _OutIt
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _OutIt
|
||||
format_to(_OutIt __out_it, locale __loc, format_string<_Args...> __fmt, _Args&&... __args) {
|
||||
return _VSTD::vformat_to(_VSTD::move(__out_it), _VSTD::move(__loc), __fmt.get(),
|
||||
_VSTD::make_format_args(__args...));
|
||||
@ -560,14 +566,17 @@ format_to(_OutIt __out_it, locale __loc, format_string<_Args...> __fmt, _Args&&.
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
|
||||
template <output_iterator<const wchar_t&> _OutIt, class... _Args>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT _OutIt
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _OutIt
|
||||
format_to(_OutIt __out_it, locale __loc, wformat_string<_Args...> __fmt, _Args&&... __args) {
|
||||
return _VSTD::vformat_to(_VSTD::move(__out_it), _VSTD::move(__loc), __fmt.get(),
|
||||
_VSTD::make_wformat_args(__args...));
|
||||
}
|
||||
#endif
|
||||
|
||||
_LIBCPP_ALWAYS_INLINE inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT string
|
||||
// TODO FMT This needs to be a template or std::to_chars(floating-point) availability markup
|
||||
// fires too eagerly, see http://llvm.org/PR61563.
|
||||
template <class = void>
|
||||
_LIBCPP_ALWAYS_INLINE inline _LIBCPP_HIDE_FROM_ABI string
|
||||
vformat(locale __loc, string_view __fmt, format_args __args) {
|
||||
string __res;
|
||||
_VSTD::vformat_to(_VSTD::back_inserter(__res), _VSTD::move(__loc), __fmt,
|
||||
@ -576,7 +585,10 @@ vformat(locale __loc, string_view __fmt, format_args __args) {
|
||||
}
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
|
||||
_LIBCPP_ALWAYS_INLINE inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT wstring
|
||||
// TODO FMT This needs to be a template or std::to_chars(floating-point) availability markup
|
||||
// fires too eagerly, see http://llvm.org/PR61563.
|
||||
template <class = void>
|
||||
_LIBCPP_ALWAYS_INLINE inline _LIBCPP_HIDE_FROM_ABI wstring
|
||||
vformat(locale __loc, wstring_view __fmt, wformat_args __args) {
|
||||
wstring __res;
|
||||
_VSTD::vformat_to(_VSTD::back_inserter(__res), _VSTD::move(__loc), __fmt,
|
||||
@ -586,7 +598,7 @@ vformat(locale __loc, wstring_view __fmt, wformat_args __args) {
|
||||
#endif
|
||||
|
||||
template <class... _Args>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT string format(locale __loc,
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI string format(locale __loc,
|
||||
format_string<_Args...> __fmt,
|
||||
_Args&&... __args) {
|
||||
return _VSTD::vformat(_VSTD::move(__loc), __fmt.get(),
|
||||
@ -595,7 +607,7 @@ _LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT string f
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
|
||||
template <class... _Args>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT wstring
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI wstring
|
||||
format(locale __loc, wformat_string<_Args...> __fmt, _Args&&... __args) {
|
||||
return _VSTD::vformat(_VSTD::move(__loc), __fmt.get(),
|
||||
_VSTD::make_wformat_args(__args...));
|
||||
@ -614,7 +626,7 @@ _LIBCPP_HIDE_FROM_ABI format_to_n_result<_OutIt> __vformat_to_n(_OutIt __out_it,
|
||||
}
|
||||
|
||||
template <output_iterator<const char&> _OutIt, class... _Args>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT format_to_n_result<_OutIt>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI format_to_n_result<_OutIt>
|
||||
format_to_n(_OutIt __out_it, iter_difference_t<_OutIt> __n, locale __loc, format_string<_Args...> __fmt,
|
||||
_Args&&... __args) {
|
||||
return _VSTD::__vformat_to_n<format_context>(_VSTD::move(__out_it), __n, _VSTD::move(__loc), __fmt.get(),
|
||||
@ -623,7 +635,7 @@ format_to_n(_OutIt __out_it, iter_difference_t<_OutIt> __n, locale __loc, format
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
|
||||
template <output_iterator<const wchar_t&> _OutIt, class... _Args>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT format_to_n_result<_OutIt>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI format_to_n_result<_OutIt>
|
||||
format_to_n(_OutIt __out_it, iter_difference_t<_OutIt> __n, locale __loc, wformat_string<_Args...> __fmt,
|
||||
_Args&&... __args) {
|
||||
return _VSTD::__vformat_to_n<wformat_context>(_VSTD::move(__out_it), __n, _VSTD::move(__loc), __fmt.get(),
|
||||
@ -641,14 +653,14 @@ _LIBCPP_HIDE_FROM_ABI size_t __vformatted_size(locale __loc, basic_string_view<_
|
||||
}
|
||||
|
||||
template <class... _Args>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT size_t
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI size_t
|
||||
formatted_size(locale __loc, format_string<_Args...> __fmt, _Args&&... __args) {
|
||||
return _VSTD::__vformatted_size(_VSTD::move(__loc), __fmt.get(), basic_format_args{_VSTD::make_format_args(__args...)});
|
||||
}
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
|
||||
template <class... _Args>
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FORMAT size_t
|
||||
_LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI size_t
|
||||
formatted_size(locale __loc, wformat_string<_Args...> __fmt, _Args&&... __args) {
|
||||
return _VSTD::__vformatted_size(_VSTD::move(__loc), __fmt.get(), basic_format_args{_VSTD::make_wformat_args(__args...)});
|
||||
}
|
||||
|
@ -23,14 +23,14 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <class _Context>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT basic_format_arg;
|
||||
class _LIBCPP_TEMPLATE_VIS basic_format_arg;
|
||||
|
||||
template <class _OutIt, class _CharT>
|
||||
requires output_iterator<_OutIt, const _CharT&>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT basic_format_context;
|
||||
class _LIBCPP_TEMPLATE_VIS basic_format_context;
|
||||
|
||||
template <class _Tp, class _CharT = char>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter;
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter;
|
||||
|
||||
#endif //_LIBCPP_STD_VER >= 20
|
||||
|
||||
|
@ -24,7 +24,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <class _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT basic_format_parse_context {
|
||||
class _LIBCPP_TEMPLATE_VIS basic_format_parse_context {
|
||||
public:
|
||||
using char_type = _CharT;
|
||||
using const_iterator = typename basic_string_view<_CharT>::const_iterator;
|
||||
|
@ -32,7 +32,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
/// - is_copy_assignable<F>, and
|
||||
/// - is_move_assignable<F>.
|
||||
template <class _Tp, class _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter {
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter {
|
||||
formatter() = delete;
|
||||
formatter(const formatter&) = delete;
|
||||
formatter& operator=(const formatter&) = delete;
|
||||
|
@ -36,7 +36,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<bool, _CharT> {
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<bool, _CharT> {
|
||||
public:
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr auto
|
||||
parse(basic_format_parse_context<_CharT>& __parse_ctx) -> decltype(__parse_ctx.begin()) {
|
||||
|
@ -31,7 +31,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT __formatter_char {
|
||||
struct _LIBCPP_TEMPLATE_VIS __formatter_char {
|
||||
public:
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr auto
|
||||
parse(basic_format_parse_context<_CharT>& __parse_ctx) -> decltype(__parse_ctx.begin()) {
|
||||
@ -74,14 +74,14 @@ public:
|
||||
};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<char, char> : public __formatter_char<char> {};
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<char, char> : public __formatter_char<char> {};
|
||||
|
||||
# ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<char, wchar_t> : public __formatter_char<wchar_t> {};
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<char, wchar_t> : public __formatter_char<wchar_t> {};
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<wchar_t, wchar_t> : public __formatter_char<wchar_t> {
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<wchar_t, wchar_t> : public __formatter_char<wchar_t> {
|
||||
};
|
||||
|
||||
# endif // _LIBCPP_HAS_NO_WIDE_CHARACTERS
|
||||
|
@ -739,13 +739,13 @@ public:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<float, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<float, _CharT>
|
||||
: public __formatter_floating_point<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<double, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<double, _CharT>
|
||||
: public __formatter_floating_point<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<long double, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<long double, _CharT>
|
||||
: public __formatter_floating_point<_CharT> {};
|
||||
|
||||
#endif //_LIBCPP_STD_VER >= 20
|
||||
|
@ -31,7 +31,7 @@
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT __formatter_integer {
|
||||
struct _LIBCPP_TEMPLATE_VIS __formatter_integer {
|
||||
|
||||
public:
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr auto
|
||||
@ -60,43 +60,43 @@ public:
|
||||
|
||||
// Signed integral types.
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<signed char, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<signed char, _CharT>
|
||||
: public __formatter_integer<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<short, _CharT> : public __formatter_integer<_CharT> {
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<short, _CharT> : public __formatter_integer<_CharT> {
|
||||
};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<int, _CharT> : public __formatter_integer<_CharT> {};
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<int, _CharT> : public __formatter_integer<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<long, _CharT> : public __formatter_integer<_CharT> {};
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<long, _CharT> : public __formatter_integer<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<long long, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<long long, _CharT>
|
||||
: public __formatter_integer<_CharT> {};
|
||||
# ifndef _LIBCPP_HAS_NO_INT128
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<__int128_t, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<__int128_t, _CharT>
|
||||
: public __formatter_integer<_CharT> {};
|
||||
# endif
|
||||
|
||||
// Unsigned integral types.
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<unsigned char, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<unsigned char, _CharT>
|
||||
: public __formatter_integer<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<unsigned short, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<unsigned short, _CharT>
|
||||
: public __formatter_integer<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<unsigned, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<unsigned, _CharT>
|
||||
: public __formatter_integer<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<unsigned long, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<unsigned long, _CharT>
|
||||
: public __formatter_integer<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<unsigned long long, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<unsigned long long, _CharT>
|
||||
: public __formatter_integer<_CharT> {};
|
||||
# ifndef _LIBCPP_HAS_NO_INT128
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<__uint128_t, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<__uint128_t, _CharT>
|
||||
: public __formatter_integer<_CharT> {};
|
||||
# endif
|
||||
|
||||
|
@ -55,13 +55,13 @@ public:
|
||||
// - template<> struct formatter<void*, charT>;
|
||||
// - template<> struct formatter<const void*, charT>;
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<nullptr_t, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<nullptr_t, _CharT>
|
||||
: public __formatter_pointer<_CharT> {};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<void*, _CharT> : public __formatter_pointer<_CharT> {
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<void*, _CharT> : public __formatter_pointer<_CharT> {
|
||||
};
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<const void*, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<const void*, _CharT>
|
||||
: public __formatter_pointer<_CharT> {};
|
||||
|
||||
#endif //_LIBCPP_STD_VER >= 20
|
||||
|
@ -57,7 +57,7 @@ public:
|
||||
|
||||
// Formatter const char*.
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<const _CharT*, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<const _CharT*, _CharT>
|
||||
: public __formatter_string<_CharT> {
|
||||
using _Base = __formatter_string<_CharT>;
|
||||
|
||||
@ -95,7 +95,7 @@ struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<const _CharT*,
|
||||
|
||||
// Formatter char*.
|
||||
template <__fmt_char_type _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<_CharT*, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<_CharT*, _CharT>
|
||||
: public formatter<const _CharT*, _CharT> {
|
||||
using _Base = formatter<const _CharT*, _CharT>;
|
||||
|
||||
@ -106,7 +106,7 @@ struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<_CharT*, _Char
|
||||
|
||||
// Formatter char[].
|
||||
template <__fmt_char_type _CharT, size_t _Size>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<_CharT[_Size], _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<_CharT[_Size], _CharT>
|
||||
: public __formatter_string<_CharT> {
|
||||
using _Base = __formatter_string<_CharT>;
|
||||
|
||||
@ -117,7 +117,7 @@ struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<_CharT[_Size],
|
||||
|
||||
// Formatter std::string.
|
||||
template <__fmt_char_type _CharT, class _Traits, class _Allocator>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<basic_string<_CharT, _Traits, _Allocator>, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<basic_string<_CharT, _Traits, _Allocator>, _CharT>
|
||||
: public __formatter_string<_CharT> {
|
||||
using _Base = __formatter_string<_CharT>;
|
||||
|
||||
@ -130,7 +130,7 @@ struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<basic_string<_
|
||||
|
||||
// Formatter std::string_view.
|
||||
template <__fmt_char_type _CharT, class _Traits>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<basic_string_view<_CharT, _Traits>, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<basic_string_view<_CharT, _Traits>, _CharT>
|
||||
: public __formatter_string<_CharT> {
|
||||
using _Base = __formatter_string<_CharT>;
|
||||
|
||||
|
@ -39,7 +39,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 23
|
||||
|
||||
template <__fmt_char_type _CharT, class _Tuple, formattable<_CharT>... _Args>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT __formatter_tuple {
|
||||
struct _LIBCPP_TEMPLATE_VIS __formatter_tuple {
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr void set_separator(basic_string_view<_CharT> __separator) noexcept {
|
||||
__separator_ = __separator;
|
||||
}
|
||||
@ -164,11 +164,11 @@ private:
|
||||
};
|
||||
|
||||
template <__fmt_char_type _CharT, formattable<_CharT>... _Args>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<pair<_Args...>, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<pair<_Args...>, _CharT>
|
||||
: public __formatter_tuple<_CharT, pair<_Args...>, _Args...> {};
|
||||
|
||||
template <__fmt_char_type _CharT, formattable<_CharT>... _Args>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<tuple<_Args...>, _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<tuple<_Args...>, _CharT>
|
||||
: public __formatter_tuple<_CharT, tuple<_Args...>, _Args...> {};
|
||||
|
||||
#endif //_LIBCPP_STD_VER >= 23
|
||||
|
@ -84,12 +84,12 @@ inline constexpr range_format format_kind<_Rp> = [] {
|
||||
}();
|
||||
|
||||
template <range_format _Kp, ranges::input_range _Rp, class _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT __range_default_formatter;
|
||||
struct _LIBCPP_TEMPLATE_VIS __range_default_formatter;
|
||||
|
||||
// Required specializations
|
||||
|
||||
template <ranges::input_range _Rp, class _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT __range_default_formatter<range_format::sequence, _Rp, _CharT> {
|
||||
struct _LIBCPP_TEMPLATE_VIS __range_default_formatter<range_format::sequence, _Rp, _CharT> {
|
||||
private:
|
||||
using __maybe_const_r = __fmt_maybe_const<_Rp, _CharT>;
|
||||
range_formatter<remove_cvref_t<ranges::range_reference_t<__maybe_const_r>>, _CharT> __underlying_;
|
||||
@ -115,7 +115,7 @@ public:
|
||||
};
|
||||
|
||||
template <ranges::input_range _Rp, class _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT __range_default_formatter<range_format::map, _Rp, _CharT> {
|
||||
struct _LIBCPP_TEMPLATE_VIS __range_default_formatter<range_format::map, _Rp, _CharT> {
|
||||
private:
|
||||
using __maybe_const_map = __fmt_maybe_const<_Rp, _CharT>;
|
||||
using __element_type = remove_cvref_t<ranges::range_reference_t<__maybe_const_map>>;
|
||||
@ -143,7 +143,7 @@ public:
|
||||
};
|
||||
|
||||
template <ranges::input_range _Rp, class _CharT>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT __range_default_formatter<range_format::set, _Rp, _CharT> {
|
||||
struct _LIBCPP_TEMPLATE_VIS __range_default_formatter<range_format::set, _Rp, _CharT> {
|
||||
private:
|
||||
using __maybe_const_set = __fmt_maybe_const<_Rp, _CharT>;
|
||||
using __element_type = remove_cvref_t<ranges::range_reference_t<__maybe_const_set>>;
|
||||
@ -168,14 +168,13 @@ 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 _LIBCPP_AVAILABILITY_FORMAT __range_default_formatter<_Kp, _Rp, _CharT> {
|
||||
struct _LIBCPP_TEMPLATE_VIS __range_default_formatter<_Kp, _Rp, _CharT> {
|
||||
__range_default_formatter() = delete; // TODO FMT Implement
|
||||
};
|
||||
|
||||
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 _LIBCPP_AVAILABILITY_FORMAT formatter<_Rp, _CharT>
|
||||
: __range_default_formatter<format_kind<_Rp>, _Rp, _CharT> {};
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<_Rp, _CharT> : __range_default_formatter<format_kind<_Rp>, _Rp, _CharT> {};
|
||||
|
||||
#endif //_LIBCPP_STD_VER >= 23
|
||||
|
||||
|
@ -40,7 +40,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 _LIBCPP_AVAILABILITY_FORMAT range_formatter {
|
||||
struct _LIBCPP_TEMPLATE_VIS range_formatter {
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr void set_separator(basic_string_view<_CharT> __separator) noexcept {
|
||||
__separator_ = __separator;
|
||||
}
|
||||
|
@ -3328,7 +3328,7 @@ inline constexpr bool __format::__enable_insertable<vector<wchar_t>> = true;
|
||||
template <class _Tp, class CharT>
|
||||
// Since is-vector-bool-reference is only used once it's inlined here.
|
||||
requires same_as<typename _Tp::__container, vector<bool, typename _Tp::__container::allocator_type>>
|
||||
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT formatter<_Tp, CharT> {
|
||||
struct _LIBCPP_TEMPLATE_VIS formatter<_Tp, CharT> {
|
||||
private:
|
||||
formatter<bool, CharT> __underlying_;
|
||||
|
||||
|
@ -11,9 +11,8 @@
|
||||
// TODO FMT Fix this test using GCC, it currently times out.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires the dylib support introduced in D92214.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{.+}}
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx11.{{.+}}
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// [container.adaptors.format]
|
||||
// For each of queue, priority_queue, and stack, the library provides the
|
||||
|
@ -11,9 +11,8 @@
|
||||
// TODO FMT Fix this test using GCC, it currently times out.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires the dylib support introduced in D92214.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{.+}}
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx11.{{.+}}
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// [container.adaptors.format]
|
||||
// For each of queue, priority_queue, and stack, the library provides the
|
||||
|
@ -11,10 +11,6 @@
|
||||
// TODO FMT Fix this test using GCC, it currently times out.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires the dylib support introduced in D92214.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{.+}}
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx11.{{.+}}
|
||||
|
||||
// [container.adaptors.format]
|
||||
// For each of queue, priority_queue, and stack, the library provides the
|
||||
// following formatter specialization where adaptor-type is the name of the
|
||||
|
@ -11,10 +11,6 @@
|
||||
// TODO FMT Fix this test using GCC, it currently times out.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires the dylib support introduced in D92214.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{.+}}
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx11.{{.+}}
|
||||
|
||||
// [container.adaptors.format]
|
||||
// For each of queue, priority_queue, and stack, the library provides the
|
||||
// following formatter specialization where adaptor-type is the name of the
|
||||
|
@ -11,6 +11,10 @@
|
||||
// TODO FMT Fix this test using GCC, it currently times out.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// <vector>
|
||||
|
||||
// template<class T, class charT>
|
||||
|
@ -11,9 +11,8 @@
|
||||
// TODO FMT Fix this test using GCC, it currently times out.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires the dylib support introduced in D92214.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{.+}}
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx11.{{.+}}
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// <vector>
|
||||
|
||||
|
@ -11,10 +11,6 @@
|
||||
// TODO FMT Fix this test using GCC, it currently times out.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires the dylib support introduced in D92214.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{.+}}
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx11.{{.+}}
|
||||
|
||||
// <vector>
|
||||
|
||||
// template<class T, class charT>
|
||||
|
@ -11,10 +11,6 @@
|
||||
// TODO FMT Fix this test using GCC, it currently times out.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires the dylib support introduced in D92214.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{.+}}
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx11.{{.+}}
|
||||
|
||||
// <vector>
|
||||
|
||||
// template<class T, class charT>
|
||||
|
@ -15,6 +15,10 @@
|
||||
// TODO FMT Evaluate gcc-12 status
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -16,6 +16,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -18,6 +18,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -15,6 +15,10 @@
|
||||
// TODO FMT Investigate Windows issues.
|
||||
// UNSUPPORTED: msvc, target={{.+}}-windows-gnu
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -18,6 +18,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -18,6 +18,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -13,6 +13,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -13,6 +13,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -10,6 +10,10 @@
|
||||
// UNSUPPORTED: no-localization
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -13,6 +13,10 @@
|
||||
// TODO FMT Investigate Windows issues.
|
||||
// UNSUPPORTED: msvc, target={{.+}}-windows-gnu
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -18,6 +18,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -16,6 +16,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -18,6 +18,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -16,6 +16,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -16,6 +16,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -15,6 +15,10 @@
|
||||
// TODO FMT Evaluate gcc-12 status
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -16,6 +16,9 @@
|
||||
// TODO FMT Investigate Windows issues.
|
||||
// UNSUPPORTED: msvc, target={{.+}}-windows-gnu
|
||||
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -14,6 +14,10 @@
|
||||
// TODO FMT Investigate Windows issues.
|
||||
// UNSUPPORTED: msvc, target={{.+}}-windows-gnu
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -16,6 +16,9 @@
|
||||
// TODO FMT Evaluate gcc-12 status
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -17,6 +17,9 @@
|
||||
|
||||
// XFAIL: LIBCXX-FREEBSD-FIXME
|
||||
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -11,6 +11,10 @@
|
||||
// UNSUPPORTED: no-localization
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -17,6 +17,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -14,6 +14,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -14,6 +14,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -14,6 +14,10 @@
|
||||
// TODO FMT Investigate Windows issues.
|
||||
// UNSUPPORTED: msvc, target={{.+}}-windows-gnu
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -17,6 +17,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -17,6 +17,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -14,6 +14,10 @@
|
||||
// TODO FMT Investigate Windows issues.
|
||||
// UNSUPPORTED: msvc, target={{.+}}-windows-gnu
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -14,6 +14,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -17,6 +17,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -14,6 +14,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -14,6 +14,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -12,6 +12,10 @@
|
||||
// TODO FMT It seems GCC uses too much memory in the CI and fails.
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.fr_FR.UTF-8
|
||||
// REQUIRES: locale.ja_JP.UTF-8
|
||||
|
||||
|
@ -22,10 +22,10 @@
|
||||
#include "test_macros.h"
|
||||
|
||||
int main(int, char**) {
|
||||
[[maybe_unused]] auto store = std::make_format_args(42, nullptr, false, 1.0);
|
||||
[[maybe_unused]] auto store = std::make_format_args(42, nullptr, false, 'x');
|
||||
|
||||
LIBCPP_STATIC_ASSERT(
|
||||
std::same_as<decltype(store), std::__format_arg_store<std::format_context, int, nullptr_t, bool, double>>);
|
||||
std::same_as<decltype(store), std::__format_arg_store<std::format_context, int, nullptr_t, bool, char>>);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -22,10 +22,10 @@
|
||||
#include "test_macros.h"
|
||||
|
||||
int main(int, char**) {
|
||||
[[maybe_unused]] auto store = std::make_wformat_args(42, nullptr, false, 1.0);
|
||||
[[maybe_unused]] auto store = std::make_wformat_args(42, nullptr, false, 'x');
|
||||
|
||||
LIBCPP_STATIC_ASSERT(
|
||||
std::same_as<decltype(store), std::__format_arg_store<std::wformat_context, int, nullptr_t, bool, double>>);
|
||||
std::same_as<decltype(store), std::__format_arg_store<std::wformat_context, int, nullptr_t, bool, char>>);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -8,9 +8,6 @@
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// This test requires the dylib support introduced in D92214.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14|15}}
|
||||
|
||||
// <format>
|
||||
|
||||
// template<class Visitor, class Context>
|
||||
|
@ -8,9 +8,6 @@
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// This test requires the dylib support introduced in D92214.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14|15}}
|
||||
|
||||
// <format>
|
||||
|
||||
// basic_format_arg<Context> get(size_t i) const noexcept;
|
||||
|
@ -9,9 +9,6 @@
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// This test requires the dylib support introduced in D92214.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14|15}}
|
||||
|
||||
// <format>
|
||||
|
||||
// class format_error;
|
||||
|
@ -33,14 +33,14 @@ void run() {
|
||||
(void)std::basic_format_string<char>{"{}"}; // expected-error-re {{call to consteval function{{.*}}is not a constant expression}}
|
||||
(void)std::basic_format_string<char, int>{"{0:{0}P}"}; // expected-error-re {{call to consteval function{{.*}}is not a constant expression}}
|
||||
(void)std::basic_format_string<char, int>{"{0:{0}}"};
|
||||
(void)std::basic_format_string<char, float>{"{0:{0}}"}; // expected-error-re {{call to consteval function{{.*}}is not a constant expression}}
|
||||
(void)std::basic_format_string<char, bool>{"{0:{0}}"}; // expected-error-re {{call to consteval function{{.*}}is not a constant expression}}
|
||||
(void)std::basic_format_string<char, int>{"{.3}"}; // expected-error-re {{call to consteval function{{.*}}is not a constant expression}}
|
||||
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
|
||||
(void)std::basic_format_string<wchar_t>{L"foo"};
|
||||
(void)std::basic_format_string<wchar_t>{L"{}"}; // expected-error-re {{call to consteval function{{.*}}is not a constant expression}}
|
||||
(void)std::basic_format_string<wchar_t, int>{L"{0:{0}P}"}; // expected-error-re {{call to consteval function{{.*}}is not a constant expression}}
|
||||
(void)std::basic_format_string<wchar_t, int>{L"{0:{0}}"};
|
||||
(void)std::basic_format_string<wchar_t, float>{L"{0:{0}}"}; // expected-error-re {{call to consteval function{{.*}}is not a constant expression}}
|
||||
(void)std::basic_format_string<wchar_t, bool>{L"{0:{0}}"}; // expected-error-re {{call to consteval function{{.*}}is not a constant expression}}
|
||||
(void)std::basic_format_string<wchar_t, int>{L"{.3}"}; // expected-error-re {{call to consteval function{{.*}}is not a constant expression}}
|
||||
#endif
|
||||
}
|
||||
|
@ -35,10 +35,10 @@ template <class CharT>
|
||||
constexpr bool test() {
|
||||
assert((std::basic_format_string<CharT>{CSTR("foo")}.get() == SV("foo")));
|
||||
assert((std::basic_format_string<CharT, int>{CSTR("{}")}.get() == SV("{}")));
|
||||
assert((std::basic_format_string<CharT, int, float>{CSTR("{} {:01.23L}")}.get() == SV("{} {:01.23L}")));
|
||||
assert((std::basic_format_string<CharT, int, char>{CSTR("{} {:*>6}")}.get() == SV("{} {:*>6}")));
|
||||
|
||||
// Embedded NUL character
|
||||
assert((std::basic_format_string<CharT, void*, double>{SV("{}\0{}")}.get() == SV("{}\0{}")));
|
||||
assert((std::basic_format_string<CharT, void*, bool>{SV("{}\0{}")}.get() == SV("{}\0{}")));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -29,12 +29,11 @@
|
||||
|
||||
static_assert(std::same_as<std::format_string<>, std::basic_format_string<char>>);
|
||||
static_assert(std::same_as<std::format_string<int>, std::basic_format_string<char, int>>);
|
||||
static_assert(std::same_as<std::format_string<int, float>, std::basic_format_string<char, int, float>>);
|
||||
static_assert(std::same_as<std::format_string<int, float, void*>, std::basic_format_string<char, int, float, void*>>);
|
||||
static_assert(std::same_as<std::format_string<int, bool>, std::basic_format_string<char, int, bool>>);
|
||||
static_assert(std::same_as<std::format_string<int, bool, void*>, std::basic_format_string<char, int, bool, void*>>);
|
||||
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
|
||||
static_assert(std::same_as<std::wformat_string<>, std::basic_format_string<wchar_t>>);
|
||||
static_assert(std::same_as<std::wformat_string<int>, std::basic_format_string<wchar_t, int>>);
|
||||
static_assert(std::same_as<std::wformat_string<int, float>, std::basic_format_string<wchar_t, int, float>>);
|
||||
static_assert(
|
||||
std::same_as<std::wformat_string<int, float, void*>, std::basic_format_string<wchar_t, int, float, void*>>);
|
||||
static_assert(std::same_as<std::wformat_string<int, bool>, std::basic_format_string<wchar_t, int, bool>>);
|
||||
static_assert(std::same_as<std::wformat_string<int, bool, void*>, std::basic_format_string<wchar_t, int, bool, void*>>);
|
||||
#endif
|
||||
|
@ -8,6 +8,9 @@
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// This test uses std::filesystem::path, which was introduced in macOS 10.15
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14}}
|
||||
|
||||
// <format>
|
||||
|
||||
// template<class T, class charT>
|
||||
@ -107,9 +110,7 @@ void test_P0645() {
|
||||
assert_is_formattable<__uint128_t, CharT>();
|
||||
#endif
|
||||
|
||||
assert_is_formattable<float, CharT>();
|
||||
assert_is_formattable<double, CharT>();
|
||||
assert_is_formattable<long double, CharT>();
|
||||
// floating-point types are tested in concept.formattable.float.compile.pass.cpp
|
||||
|
||||
assert_is_formattable<std::nullptr_t, CharT>();
|
||||
assert_is_formattable<void*, CharT>();
|
||||
|
@ -0,0 +1,58 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// <format>
|
||||
|
||||
// template<class T, class charT>
|
||||
// concept formattable = ...
|
||||
|
||||
#include <concepts>
|
||||
#include <format>
|
||||
|
||||
#include "test_macros.h"
|
||||
|
||||
template <class T, class CharT>
|
||||
void assert_is_not_formattable() {
|
||||
static_assert(!std::formattable<T, CharT>);
|
||||
}
|
||||
|
||||
template <class T, class CharT>
|
||||
void assert_is_formattable() {
|
||||
// Only formatters for CharT == char || CharT == wchar_t are enabled for the
|
||||
// standard formatters. When CharT is a different type the formatter should
|
||||
// be disabled.
|
||||
if constexpr (std::same_as<CharT, char>
|
||||
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
|
||||
|| std::same_as<CharT, wchar_t>
|
||||
#endif
|
||||
)
|
||||
static_assert(std::formattable<T, CharT>);
|
||||
else
|
||||
assert_is_not_formattable<T, CharT>();
|
||||
}
|
||||
|
||||
template <class CharT>
|
||||
void test() {
|
||||
assert_is_formattable<float, CharT>();
|
||||
assert_is_formattable<double, CharT>();
|
||||
assert_is_formattable<long double, CharT>();
|
||||
}
|
||||
|
||||
void test() {
|
||||
test<char>();
|
||||
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
|
||||
test<wchar_t>();
|
||||
#endif
|
||||
test<char8_t>();
|
||||
test<char16_t>();
|
||||
test<char32_t>();
|
||||
|
||||
test<int>();
|
||||
}
|
@ -8,6 +8,9 @@
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// <format>
|
||||
|
||||
// [format.formatter.spec]:
|
||||
|
@ -9,9 +9,6 @@
|
||||
// UNSUPPORTED: no-exceptions
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// This test requires the dylib support introduced in D92214.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14|15}}
|
||||
|
||||
// <format>
|
||||
|
||||
// constexpr void check_arg_id(size_t id);
|
||||
|
@ -9,9 +9,6 @@
|
||||
// UNSUPPORTED: no-exceptions
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// This test requires the dylib support introduced in D92214.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14|15}}
|
||||
|
||||
// <format>
|
||||
|
||||
// constexpr size_t next_arg_id();
|
||||
|
@ -10,6 +10,10 @@
|
||||
// TODO FMT Evaluate gcc-12 status
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// Tests whether a move only type can be formatted. This is required by
|
||||
// P2418R2 "Add support for std::generator-like types to std::format"
|
||||
|
||||
|
@ -11,6 +11,10 @@
|
||||
// Force unicode to be disabled.
|
||||
// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_HAS_NO_UNICODE
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// <format>
|
||||
|
||||
// Tests Unicode is ignored and handled as ASCII.
|
||||
|
@ -8,6 +8,10 @@
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// Force unicode to be disabled.
|
||||
// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_HAS_NO_UNICODE
|
||||
|
||||
|
@ -15,6 +15,10 @@
|
||||
// UNSUPPORTED: msvc, target={{.+}}-windows-gnu
|
||||
// UNSUPPORTED: LIBCXX-AIX-FIXME
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// <format>
|
||||
|
||||
// This test the debug string type for the formatter specializations for char
|
||||
|
@ -11,6 +11,9 @@
|
||||
// TODO FMT Evaluate gcc-12 status
|
||||
// UNSUPPORTED:gcc-12
|
||||
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// <format>
|
||||
|
||||
// template<class... Args>
|
||||
|
@ -9,6 +9,10 @@
|
||||
// UNSUPPORTED: no-localization
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// Basic test to validate ill-formed code is properly detected.
|
||||
|
||||
// <format>
|
||||
|
@ -10,6 +10,9 @@
|
||||
// TODO FMT Evaluate gcc-12 status
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// Note this formatter shows additional information when tests are failing.
|
||||
// This aids the development. Since other formatters fail in the same fashion
|
||||
// they don't have this additional output.
|
||||
|
@ -8,6 +8,10 @@
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// Basic test to validate ill-formed code is properly detected.
|
||||
|
||||
// <format>
|
||||
|
@ -11,6 +11,9 @@
|
||||
// TODO FMT Evaluate gcc-12 status
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// <format>
|
||||
|
||||
// template<class Out, class... Args>
|
||||
|
@ -9,6 +9,10 @@
|
||||
// UNSUPPORTED: no-localization
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// Basic test to validate ill-formed code is properly detected.
|
||||
|
||||
// <format>
|
||||
|
@ -10,6 +10,9 @@
|
||||
// TODO FMT Evaluate gcc-12 status
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// <format>
|
||||
|
||||
// template<class Out, class... Args>
|
||||
|
@ -8,6 +8,10 @@
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// <format>
|
||||
|
||||
// Basic test to validate ill-formed code is properly detected.
|
||||
|
@ -11,6 +11,9 @@
|
||||
// TODO FMT Evaluate gcc-12 status
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// <format>
|
||||
|
||||
// template<class Out, class... Args>
|
||||
|
@ -9,6 +9,10 @@
|
||||
// UNSUPPORTED: no-localization
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// Basic test to validate ill-formed code is properly detected.
|
||||
|
||||
// <format>
|
||||
|
@ -10,6 +10,9 @@
|
||||
// TODO FMT Evaluate gcc-12 status
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// <format>
|
||||
|
||||
// template<class Out, class... Args>
|
||||
|
@ -8,6 +8,10 @@
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// Basic test to validate ill-formed code is properly detected.
|
||||
|
||||
// <format>
|
||||
|
@ -11,6 +11,9 @@
|
||||
// TODO FMT Evaluate gcc-12 status
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// <format>
|
||||
|
||||
// template<class... Args>
|
||||
|
@ -9,6 +9,10 @@
|
||||
// UNSUPPORTED: no-localization
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// Basic test to validate ill-formed code is properly detected.
|
||||
|
||||
// <format>
|
||||
|
@ -10,6 +10,9 @@
|
||||
// TODO FMT Evaluate gcc-12 status
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// <format>
|
||||
|
||||
// template<class... Args>
|
||||
|
@ -8,6 +8,10 @@
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-format
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// Basic test to validate ill-formed code is properly detected.
|
||||
|
||||
// <format>
|
||||
|
@ -12,6 +12,9 @@
|
||||
// TODO FMT Evaluate gcc-12 status
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// REQUIRES: locale.en_US.UTF-8
|
||||
|
||||
// <format>
|
||||
|
@ -15,6 +15,10 @@
|
||||
// UNSUPPORTED msvc, target={{.+}}-windows-gnu
|
||||
// UNSUPPORTED: LIBCXX-AIX-FIXME
|
||||
|
||||
// TODO FMT This test should not require std::to_chars(floating-point)
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// <format>
|
||||
|
||||
// Tests the Unicode width support of the standard format specifiers.
|
||||
|
@ -11,6 +11,9 @@
|
||||
// TODO FMT Evaluate gcc-12 status
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// <format>
|
||||
|
||||
// string vformat(const locale& loc, string_view fmt, format_args args);
|
||||
|
@ -10,6 +10,9 @@
|
||||
// TODO FMT Evaluate gcc-12 status
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// <format>
|
||||
|
||||
// string vformat(string_view fmt, format_args args);
|
||||
|
@ -11,6 +11,9 @@
|
||||
// TODO FMT Evaluate gcc-12 status
|
||||
// UNSUPPORTED: gcc-12
|
||||
|
||||
// This test requires std::to_chars(floating-point), which is in the dylib
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx{{10.9|10.10|10.11|10.12|10.13|10.14|10.15|11.0}}
|
||||
|
||||
// <format>
|
||||
|
||||
// template<class Out>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user