Files
2026-07-11 22:27:48 +02:00

19 lines
479 B
C++

#pragma once
#include <ranges>
namespace core {
template<template<typename> typename ViewTemplate>
class view_closure : public std::ranges::range_adaptor_closure<view_closure<ViewTemplate>>
{
public:
template<std::ranges::viewable_range Range>
constexpr auto operator()(Range&& range) const
requires requires { ViewTemplate<std::views::all_t<Range>>{std::forward<Range>(range)}; }
{
return ViewTemplate<std::views::all_t<Range>>{std::forward<Range>(range)};
}
};
}