libstdc++: Only use std::compare_three_way when concepts are supported
Clang now supports three-way comparisons. That causes both overloads of std::lexicographical_compare_three_way to be defined, but the second one uses std::compare_three_way which depends on concepts. Clang does not yet support concepts, so the second overload should also depend on __cpp_lib_concepts. * include/bits/stl_algobase.h (lexicographical_compare_three_way): Only define four-argument overload when __cpp_lib_concepts is defined. From-SVN: r279861
This commit is contained in:
parent
48182bd670
commit
b4e7013794
|
@ -1,3 +1,8 @@
|
|||
2020-01-03 Jonathan Wakely <jwakely@redhat.com>
|
||||
|
||||
* include/bits/stl_algobase.h (lexicographical_compare_three_way):
|
||||
Only define four-argument overload when __cpp_lib_concepts is defined.
|
||||
|
||||
2020-01-01 John David Anglin <danglin@gcc.gnu.org>
|
||||
|
||||
* config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
|
||||
|
|
|
@ -1751,6 +1751,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
|
|||
: __first2 != __last2 ? strong_ordering::less : strong_ordering::equal;
|
||||
}
|
||||
|
||||
#if __cpp_lib_concepts
|
||||
template<typename _InputIter1, typename _InputIter2>
|
||||
constexpr auto
|
||||
lexicographical_compare_three_way(_InputIter1 __first1,
|
||||
|
@ -1762,6 +1763,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
|
|||
__first2, __last2,
|
||||
compare_three_way{});
|
||||
}
|
||||
#endif // concepts
|
||||
#endif // three_way_comparison
|
||||
|
||||
template<typename _InputIterator1, typename _InputIterator2,
|
||||
|
|
Loading…
Reference in New Issue