fix(range): fix DeclVal() usage in range library
This commit is contained in:
parent
312cfe4097
commit
00be872d5c
@ -152,7 +152,7 @@ NODISCARD FORCEINLINE constexpr auto All(R&& InRange)
|
|||||||
/** Creates A view adapter that includes all elements of a range. */
|
/** Creates A view adapter that includes all elements of a range. */
|
||||||
NODISCARD FORCEINLINE constexpr auto All()
|
NODISCARD FORCEINLINE constexpr auto All()
|
||||||
{
|
{
|
||||||
return TAdaptorClosure([]<CViewableRange R> requires (requires { All(DeclVal<R&&>()); }) (R && Base)
|
return TAdaptorClosure([]<CViewableRange R> requires (requires { All(DeclVal<R>()); }) (R&& Base)
|
||||||
{
|
{
|
||||||
return All(Forward<R>(Base));
|
return All(Forward<R>(Base));
|
||||||
});
|
});
|
||||||
|
@ -165,7 +165,7 @@ NAMESPACE_END(Range)
|
|||||||
NAMESPACE_BEGIN(Range)
|
NAMESPACE_BEGIN(Range)
|
||||||
|
|
||||||
/** Creates A view adapter that consists of the elements of a range that satisfies a predicate. */
|
/** Creates A view adapter that consists of the elements of a range that satisfies a predicate. */
|
||||||
template <CViewableRange R, typename Pred> requires (requires { TFilterView(DeclVal<R&&>(), DeclVal<Pred&&>()); })
|
template <CViewableRange R, typename Pred> requires (requires { TFilterView(DeclVal<R>(), DeclVal<Pred>()); })
|
||||||
NODISCARD FORCEINLINE constexpr auto Filter(R&& Base, Pred&& Predicate)
|
NODISCARD FORCEINLINE constexpr auto Filter(R&& Base, Pred&& Predicate)
|
||||||
{
|
{
|
||||||
return TFilterView(Forward<R>(Base), Forward<Pred>(Predicate));
|
return TFilterView(Forward<R>(Base), Forward<Pred>(Predicate));
|
||||||
@ -175,7 +175,7 @@ NODISCARD FORCEINLINE constexpr auto Filter(R&& Base, Pred&& Predicate)
|
|||||||
template <typename Pred>
|
template <typename Pred>
|
||||||
NODISCARD FORCEINLINE constexpr auto Filter(Pred&& Predicate)
|
NODISCARD FORCEINLINE constexpr auto Filter(Pred&& Predicate)
|
||||||
{
|
{
|
||||||
return TAdaptorClosure([&Predicate]<CViewableRange R> requires (requires { Range::Filter(DeclVal<R&&>(), DeclVal<Pred&&>()); }) (R&& Base)
|
return TAdaptorClosure([&Predicate]<CViewableRange R> requires (requires { Range::Filter(DeclVal<R>(), DeclVal<Pred>()); }) (R&& Base)
|
||||||
{
|
{
|
||||||
return Range::Filter(Forward<R>(Base), Forward<Pred>(Predicate));
|
return Range::Filter(Forward<R>(Base), Forward<Pred>(Predicate));
|
||||||
});
|
});
|
||||||
|
@ -212,7 +212,7 @@ NAMESPACE_END(Range)
|
|||||||
NAMESPACE_BEGIN(Range)
|
NAMESPACE_BEGIN(Range)
|
||||||
|
|
||||||
/** Creates A view adapter of a sequence that applies a transformation function to each element. */
|
/** Creates A view adapter of a sequence that applies a transformation function to each element. */
|
||||||
template <CViewableRange R, typename F> requires (requires { TTransformView(DeclVal<R&&>(), DeclVal<F&&>()); })
|
template <CViewableRange R, typename F> requires (requires { TTransformView(DeclVal<R>(), DeclVal<F>()); })
|
||||||
NODISCARD FORCEINLINE constexpr auto Transform(R&& Base, F&& Func)
|
NODISCARD FORCEINLINE constexpr auto Transform(R&& Base, F&& Func)
|
||||||
{
|
{
|
||||||
return TTransformView(Forward<R>(Base), Forward<F>(Func));
|
return TTransformView(Forward<R>(Base), Forward<F>(Func));
|
||||||
@ -222,7 +222,7 @@ NODISCARD FORCEINLINE constexpr auto Transform(R&& Base, F&& Func)
|
|||||||
template <typename F>
|
template <typename F>
|
||||||
NODISCARD FORCEINLINE constexpr auto Transform(F&& Func)
|
NODISCARD FORCEINLINE constexpr auto Transform(F&& Func)
|
||||||
{
|
{
|
||||||
return TAdaptorClosure([&Func]<CViewableRange R> requires (requires { Range::Transform(DeclVal<R&&>(), DeclVal<F&&>()); }) (R&& Base)
|
return TAdaptorClosure([&Func]<CViewableRange R> requires (requires { Range::Transform(DeclVal<R>(), DeclVal<F>()); }) (R&& Base)
|
||||||
{
|
{
|
||||||
return Range::Transform(Forward<R>(Base), Forward<F>(Func));
|
return Range::Transform(Forward<R>(Base), Forward<F>(Func));
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user