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;
505505# define _LIBCPP_HIDE_FROM_ABI_AFTER_V1 _LIBCPP_HIDE_FROM_ABI
506506# endif
507507
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-
515508// Clang modules take a significant compile time hit when pushing and popping diagnostics.
516509// Since all the headers are marked as system headers unless _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER is defined, we can
517510// 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;
522515 _LIBCPP_CLANG_DIAGNOSTIC_IGNORED(" -Wc++14-extensions" ) \
523516 _LIBCPP_CLANG_DIAGNOSTIC_IGNORED(" -Wc++17-extensions" ) \
524517 _LIBCPP_CLANG_DIAGNOSTIC_IGNORED(" -Wc++20-extensions" ) \
525- _LIBCPP_CLANG_DIAGNOSTIC_IGNORED_CXX23_EXTENSION \
518+ _LIBCPP_CLANG_DIAGNOSTIC_IGNORED( " -Wc++23-extensions " ) \
526519 _LIBCPP_GCC_DIAGNOSTIC_IGNORED(" -Wc++14-extensions" ) \
527520 _LIBCPP_GCC_DIAGNOSTIC_IGNORED(" -Wc++17-extensions" ) \
528521 _LIBCPP_GCC_DIAGNOSTIC_IGNORED(" -Wc++20-extensions" ) \
Original file line number Diff line number Diff line change @@ -209,21 +209,12 @@ struct pair
209209# endif
210210
211211# 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-
223212 template <__pair_like_no_subrange _PairLike>
224213 requires (is_constructible_v<first_type, decltype (std::get<0 >(std::declval<_PairLike &&>()))> &&
225214 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)
227218 : first(std::get<0 >(std::forward<_PairLike>(__p))), second(std::get<1 >(std::forward<_PairLike>(__p))) {}
228219# endif
229220
You can’t perform that action at this time.
0 commit comments