#pragma once
|
|
#include <concepts>
|
|
|
|
template<typename T>
|
|
concept ForwardIteratorLike = requires(T a) {
|
|
{++a} -> auto;
|
|
{*a} -> auto;
|
|
};
|
|
|
|
template<typename T>
|
|
concept RangeLike = requires(T a) {
|
|
{a.begin()} -> ForwardIteratorLike;
|
|
{a.end()} -> ForwardIteratorLike;
|
|
};
|