Iros
Loading...
Searching...
No Matches
weakly_incrementable.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/container/meta/iterator_ssize_type.h
"
4
#include "
di/meta/core.h
"
5
#include "
di/meta/language.h
"
6
#include "
di/meta/operations.h
"
7
8
namespace
di::concepts
{
9
template
<
typename
T>
10
concept
WeaklyIncrementable
=
Movable<T>
&&
requires
(T iter) {
11
typename
meta::IteratorSSizeType<T>
;
12
requires
SignedInteger<meta::IteratorSSizeType<T>
>;
13
{ ++iter } ->
SameAs<T&>
;
14
iter++;
15
};
16
}
di::concepts::Movable
Definition
operations.h:49
di::concepts::SameAs
Definition
core.h:114
di::concepts::SignedInteger
Definition
language.h:241
di::concepts::WeaklyIncrementable
Definition
weakly_incrementable.h:10
core.h
operations.h
language.h
iterator_ssize_type.h
di::concepts
Definition
any_storable.h:9
di::meta::IteratorSSizeType
decltype(container::iterator_ssize_type(types::in_place_type< meta::RemoveCVRef< T > >)) IteratorSSizeType
Definition
iterator_ssize_type.h:8
libs
di
include
di
container
concepts
weakly_incrementable.h
Generated by
1.13.0