File tree Expand file tree Collapse file tree 2 files changed +4
-20
lines changed Expand file tree Collapse file tree 2 files changed +4
-20
lines changed Original file line number Diff line number Diff line change @@ -505,13 +505,6 @@ typedef __char32_t char32_t;
505
505
# define _LIBCPP_HIDE_FROM_ABI_AFTER_V1 _LIBCPP_HIDE_FROM_ABI
506
506
# endif
507
507
508
- // TODO: Remove this workaround once we drop support for Clang 16
509
- # if __has_warning("-Wc++23-extensions")
510
- # define _LIBCPP_CLANG_DIAGNOSTIC_IGNORED_CXX23_EXTENSION _LIBCPP_CLANG_DIAGNOSTIC_IGNORED (" -Wc++23-extensions" )
511
- # else
512
- # define _LIBCPP_CLANG_DIAGNOSTIC_IGNORED_CXX23_EXTENSION _LIBCPP_CLANG_DIAGNOSTIC_IGNORED (" -Wc++2b-extensions" )
513
- # endif
514
-
515
508
// Clang modules take a significant compile time hit when pushing and popping diagnostics.
516
509
// Since all the headers are marked as system headers unless _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER is defined, we can
517
510
// simply disable this pushing and popping when _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER isn't defined.
@@ -522,7 +515,7 @@ typedef __char32_t char32_t;
522
515
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED(" -Wc++14-extensions" ) \
523
516
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED(" -Wc++17-extensions" ) \
524
517
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED(" -Wc++20-extensions" ) \
525
- _LIBCPP_CLANG_DIAGNOSTIC_IGNORED_CXX23_EXTENSION \
518
+ _LIBCPP_CLANG_DIAGNOSTIC_IGNORED( " -Wc++23-extensions " ) \
526
519
_LIBCPP_GCC_DIAGNOSTIC_IGNORED(" -Wc++14-extensions" ) \
527
520
_LIBCPP_GCC_DIAGNOSTIC_IGNORED(" -Wc++17-extensions" ) \
528
521
_LIBCPP_GCC_DIAGNOSTIC_IGNORED(" -Wc++20-extensions" ) \
Original file line number Diff line number Diff line change @@ -209,21 +209,12 @@ struct pair
209
209
# endif
210
210
211
211
# if _LIBCPP_STD_VER >= 23
212
- // TODO: Remove this workaround in LLVM 20. The bug got fixed in Clang 18.
213
- // This is a workaround for http://llvm.org/PR60710. We should be able to remove it once Clang is fixed.
214
- template <class _PairLike >
215
- _LIBCPP_HIDE_FROM_ABI static constexpr bool __pair_like_explicit_wknd () {
216
- if constexpr (__pair_like_no_subrange<_PairLike>) {
217
- return !is_convertible_v<decltype (std::get<0 >(std::declval<_PairLike&&>())), first_type> ||
218
- !is_convertible_v<decltype (std::get<1 >(std::declval<_PairLike&&>())), second_type>;
219
- }
220
- return false ;
221
- }
222
-
223
212
template <__pair_like_no_subrange _PairLike>
224
213
requires (is_constructible_v<first_type, decltype (std::get<0 >(std::declval<_PairLike &&>()))> &&
225
214
is_constructible_v<second_type, decltype(std::get<1 >(std::declval<_PairLike &&>()))>)
226
- _LIBCPP_HIDE_FROM_ABI constexpr explicit(__pair_like_explicit_wknd<_PairLike>()) pair(_PairLike&& __p)
215
+ _LIBCPP_HIDE_FROM_ABI constexpr explicit(
216
+ !is_convertible_v<decltype (std::get<0 >(std::declval<_PairLike&&>())), first_type> ||
217
+ !is_convertible_v<decltype(std::get<1 >(std::declval<_PairLike&&>())), second_type>) pair(_PairLike&& __p)
227
218
: first(std::get<0 >(std::forward<_PairLike>(__p))), second(std::get<1 >(std::forward<_PairLike>(__p))) {}
228
219
# endif
229
220
You can’t perform that action at this time.
0 commit comments