Skip to content

Commit

Permalink
Unwrapping output iterators in range algorithms (#5015)
Browse files Browse the repository at this point in the history
  • Loading branch information
CaseyCarter authored Oct 17, 2024
1 parent 033a44a commit f2a381b
Show file tree
Hide file tree
Showing 5 changed files with 478 additions and 336 deletions.
5 changes: 4 additions & 1 deletion stl/inc/__msvc_iter_core.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -385,7 +385,7 @@ constexpr bool _Integer_class = requires {
};

template <class _Ty>
concept _Integer_like = _Is_nonbool_integral<remove_cv_t<_Ty>> || _Integer_class<_Ty>;
concept _Integer_like = _Is_nonbool_integral<_Ty> || _Integer_class<_Ty>;

template <class _Ty>
concept _Signed_integer_like = _Integer_like<_Ty> && static_cast<_Ty>(-1) < static_cast<_Ty>(0);
Expand Down Expand Up @@ -497,6 +497,9 @@ struct iterator_traits : _Iterator_traits_base<_Iter> {}; // get traits from ite

template <class _Ty>
struct iterator_traits<_Ty*> : _Iterator_traits_pointer_base<_Ty> {}; // get traits from pointer, if possible

template <class _Ty>
constexpr bool _Integer_like = _Is_nonbool_integral<_Ty>;
#endif // ^^^ !_HAS_CXX20 ^^^

_INLINE_VAR constexpr auto _Meta_npos = ~size_t{0};
Expand Down
Loading

0 comments on commit f2a381b

Please sign in to comment.