We should not assume that std::iter_value_t etc. are defined
unconditionally for C++20 mode.
libstdc++-v3/ChangeLog:
PR libstdc++/104098
* include/bits/stl_iterator.h (reverse_iterator): Check
__cpp_lib_concepts instead of __cplusplus.
* @{
*/
-#if __cplusplus > 201703L && __cpp_lib_concepts
+#if __cpp_lib_concepts
namespace __detail
{
// Weaken iterator_category _Cat to _Limit if it is derived from that,
public:
typedef _Iterator iterator_type;
typedef typename __traits_type::pointer pointer;
-#if __cplusplus <= 201703L
+#if ! __cpp_lib_concepts
typedef typename __traits_type::difference_type difference_type;
typedef typename __traits_type::reference reference;
#else