Iros
 
Loading...
Searching...
No Matches
default_accessor.h
Go to the documentation of this file.
1#pragma once
2
4#include "di/types/prelude.h"
5
6namespace di::vocab {
7template<typename Element>
9public:
11 using ElementType = Element;
14
15 DefaultAccessor() = default;
16
17 template<concepts::ConvertibleToNonSlicing<Element> OtherElement>
19
20 constexpr auto access(DataHandle p, size_t i) const -> Reference { return p[i]; }
21
22 constexpr auto offset(DataHandle p, size_t i) const -> DataHandle { return p + i; }
23};
24}
25
26namespace di {
27using vocab::DefaultAccessor;
28}
constexpr auto offset(DataHandle p, size_t i) const -> DataHandle
Definition default_accessor.h:22
Element ElementType
Definition default_accessor.h:11
constexpr DefaultAccessor(DefaultAccessor< OtherElement >)
Definition default_accessor.h:18
constexpr auto access(DataHandle p, size_t i) const -> Reference
Definition default_accessor.h:20
ElementType * DataHandle
Definition default_accessor.h:13
DefaultAccessor OffsetPolicy
Definition default_accessor.h:10
ElementType & Reference
Definition default_accessor.h:12
Definition lazy.h:165
Definition zstring_parser.h:9