Commit b4e70137 by Jonathan Wakely Committed by Jonathan Wakely

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
parent 48182bd6
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,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment