OGS
DynamicSpan.h
Go to the documentation of this file.
1
10
#pragma once
11
12
#include <cstddef>
13
14
namespace
BaseLib
15
{
16
template
<
typename
T>
17
struct
DynamicSpan
18
{
19
template
<
typename
Iterator>
20
DynamicSpan
(Iterator data_, std::size_t
size
)
21
:
data
{&*data_
/* manually convert iterator to pointer */
},
size_
{
size
}
22
{
23
}
24
25
T*
begin
()
const
{
return
data
; }
26
T*
end
()
const
{
return
data
+
size_
; }
27
std::size_t
size
()
const
{
return
size_
; }
28
T&
operator[]
(std::size_t i)
const
{
return
data
[i]; }
29
30
T*
data
;
31
32
private
:
33
std::size_t
size_
;
34
};
35
36
template
<
typename
T>
37
DynamicSpan
(T*, std::size_t) ->
DynamicSpan<T>
;
38
}
// namespace BaseLib
BaseLib
Definition:
TestDefinition.h:19
BaseLib::DynamicSpan
DynamicSpan(T *, std::size_t) -> DynamicSpan< T >
BaseLib::DynamicSpan
Definition:
DynamicSpan.h:18
BaseLib::DynamicSpan::DynamicSpan
DynamicSpan(Iterator data_, std::size_t size)
Definition:
DynamicSpan.h:20
BaseLib::DynamicSpan::begin
T * begin() const
Definition:
DynamicSpan.h:25
BaseLib::DynamicSpan::operator[]
T & operator[](std::size_t i) const
Definition:
DynamicSpan.h:28
BaseLib::DynamicSpan::data
T * data
Definition:
DynamicSpan.h:30
BaseLib::DynamicSpan::end
T * end() const
Definition:
DynamicSpan.h:26
BaseLib::DynamicSpan::size
std::size_t size() const
Definition:
DynamicSpan.h:27
BaseLib::DynamicSpan::size_
std::size_t size_
Definition:
DynamicSpan.h:33
BaseLib
DynamicSpan.h
Generated by
1.9.3