25template<
typename Iterable,
27 typename =
decltype(
std::end (std::declval<Iterable>()))>
34 [[nodiscard]]
constexpr bool operator==(
const iterator& other)
const {
35 return iter == other.iter;
42 constexpr void operator++() {
47 return std::tie(i, *iter);
51 struct iterable_wrapper {
54 constexpr auto begin() {
57 constexpr auto end() {
62 return iterable_wrapper{std::forward<Iterable>(iterable)};
constexpr auto enumerate(Iterable &&iterable)
Heavily inspired by Nathan Reed's blog post: Python-Like enumerate() In C++17 http://reedbeta....
bool operator==(const Event &x, const Event &y)
constexpr uint128 operator*(const uint128 &a, const uint128 &b)
constexpr auto begin(const zstring_view &x)
constexpr auto end(const zstring_view &x)