libstdc++: Define __cpp_lib_three_way_comparison conditionally
authorJonathan Wakely <jwakely@redhat.com>
Mon, 6 Jan 2020 12:06:41 +0000 (12:06 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Mon, 6 Jan 2020 12:06:41 +0000 (12:06 +0000)
commitf31a99f7c1239d0bde7b1f60e664ee98020bd4e0
tree1602a60d22ed32fe44e32c4f65e93a489fdd944d
parent4ce43ba44d696c97e21e9fb98d4a60f2f1dd9a04
libstdc++: Define __cpp_lib_three_way_comparison conditionally

The contents of the <compare> header are not complete unless concepts
are supported, so the feature test macro should depend on the macro for
concepts.

As a result, the std::lexicographical_compare_three_way function will
not be defined unless concepts are supported, so there is no need to
check __cpp_lib_concepts before using concepts in those functions.

* include/bits/stl_algobase.h (__is_byte_iter, __min_cmp)
(lexicographical_compare_three_way): Do not depend on
__cpp_lib_concepts.
* include/std/version (__cpp_lib_three_way_comparison): Only define
when __cpp_lib_concepts is defined.
* libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.

From-SVN: r279896
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/stl_algobase.h
libstdc++-v3/include/std/version
libstdc++-v3/libsupc++/compare