fix(miscellaneous): fix some iterator concepts and requires
This commit is contained in:
parent
d9f05d4241
commit
28367fe633
@ -210,13 +210,13 @@ FORCEINLINE void IndirectlySwap(I&& Iter, J&& Jter)
|
|||||||
Swap(*Iter, *Jter);
|
Swap(*Iter, *Jter);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename I, typename J>
|
template <typename I, typename J = I>
|
||||||
concept CIndirectlyCopyable = requires(const I Iter, const J Jter) { IndirectlyCopy(Iter, Jter); };
|
concept CIndirectlyCopyable = requires(const I Iter, const J Jter) { IndirectlyCopy(Iter, Jter); };
|
||||||
|
|
||||||
template <typename I, typename J>
|
template <typename I, typename J = I>
|
||||||
concept CIndirectlyMovable = requires(const I Iter, const J Jter) { IndirectlyMove(Iter, Jter); };
|
concept CIndirectlyMovable = requires(const I Iter, const J Jter) { IndirectlyMove(Iter, Jter); };
|
||||||
|
|
||||||
template <typename I, typename J>
|
template <typename I, typename J = I>
|
||||||
concept CIndirectlySwappable = CIndirectlyReadable<I> && CIndirectlyReadable<J>
|
concept CIndirectlySwappable = CIndirectlyReadable<I> && CIndirectlyReadable<J>
|
||||||
&& requires(const I Iter, const J Jter)
|
&& requires(const I Iter, const J Jter)
|
||||||
{
|
{
|
||||||
@ -361,7 +361,7 @@ public:
|
|||||||
|
|
||||||
NODISCARD FORCEINLINE constexpr TMoveIterator operator-(ptrdiff Offset) const requires (CRandomAccessIterator<IteratorType>) { TMoveIterator Temp = *this; Temp -= Offset; return Temp; }
|
NODISCARD FORCEINLINE constexpr TMoveIterator operator-(ptrdiff Offset) const requires (CRandomAccessIterator<IteratorType>) { TMoveIterator Temp = *this; Temp -= Offset; return Temp; }
|
||||||
|
|
||||||
NODISCARD friend FORCEINLINE constexpr ptrdiff operator-(const TMoveIterator& LHS, const TMoveIterator& RHS) { return LHS.Current - RHS.Current; }
|
NODISCARD friend FORCEINLINE constexpr ptrdiff operator-(const TMoveIterator& LHS, const TMoveIterator& RHS) requires (CSizedSentinelFor<I, I>) { return LHS.Current - RHS.Current; }
|
||||||
|
|
||||||
NODISCARD FORCEINLINE constexpr const IteratorType& GetBase() const& { return Current; }
|
NODISCARD FORCEINLINE constexpr const IteratorType& GetBase() const& { return Current; }
|
||||||
NODISCARD FORCEINLINE constexpr IteratorType GetBase() && { return MoveTemp(Current); }
|
NODISCARD FORCEINLINE constexpr IteratorType GetBase() && { return MoveTemp(Current); }
|
||||||
|
Loading…
Reference in New Issue
Block a user