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