Iros
Loading...
Searching...
No Matches
md_accessor.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/meta/common.h
"
4
#include "
di/meta/core.h
"
5
#include "
di/meta/operations.h
"
6
7
namespace
di::concepts
{
8
template
<
typename
T>
9
concept
MDAccessor
=
10
Copyable<T>
&&
11
requires
{
12
typename
T::ElementType;
13
typename
T::DataHandle;
14
typename
T::Reference;
15
typename
T::OffsetPolicy;
16
typename
T::OffsetPolicy::DataHandle;
17
} &&
Copyable<typename T::DataHandle>
&&
CommonReferenceWith<typename T::Reference&&, typename T::ElementType&>
&&
18
requires
(T
const
a,
typename
T::DataHandle p,
size_t
i) {
19
{ a.access(p, i) } -> SameAs<typename T::Reference>;
20
{ a.offset(p, i) } -> SameAs<typename T::OffsetPolicy::DataHandle>;
21
};
22
}
di::concepts::CommonReferenceWith
Definition
common.h:203
di::concepts::Copyable
Definition
operations.h:40
di::concepts::MDAccessor
Definition
md_accessor.h:9
core.h
operations.h
common.h
di::concepts
Definition
any_storable.h:9
libs
di
include
di
vocab
md
concepts
md_accessor.h
Generated by
1.13.0