Joedb
9.5.0
The Journal-Only Embedded Database
Loading...
Searching...
No Matches
src
joedb
Span.h
Go to the documentation of this file.
1
#ifndef joedb_Span_declared
2
#define joedb_Span_declared
3
4
#include "
joedb/error/assert.h
"
5
6
#include <stddef.h>
7
8
namespace
joedb
9
{
10
/// @ingroup joedb
11
template
<
typename
T>
class
Span
12
{
13
private
:
14
T *p;
15
size_t
size;
16
17
public
:
18
Span
(T *p,
size_t
size): p(p), size(size)
19
{
20
}
21
22
T &
operator[]
(
size_t
i)
23
{
24
JOEDB_DEBUG_ASSERT
(i < size);
25
return
p[i];
26
}
27
28
const
T &
operator[]
(
size_t
i)
const
29
{
30
JOEDB_DEBUG_ASSERT
(i < size);
31
return
p[i];
32
}
33
34
size_t
get_size
()
const
35
{
36
return
size;
37
}
38
39
T *
begin
()
40
{
41
return
p;
42
}
43
44
T *
end
()
45
{
46
return
p + size;
47
}
48
49
const
T *
begin
()
const
50
{
51
return
p;
52
}
53
54
const
T *
end
()
const
55
{
56
return
p + size;
57
}
58
};
59
}
60
61
#endif
assert.h
joedb::Span
Definition
Span.h:12
joedb::Span::operator[]
T & operator[](size_t i)
Definition
Span.h:22
joedb::Span::end
T * end()
Definition
Span.h:44
joedb::Span::get_size
size_t get_size() const
Definition
Span.h:34
joedb::Span::end
const T * end() const
Definition
Span.h:54
joedb::Span::begin
const T * begin() const
Definition
Span.h:49
joedb::Span::Span
Span(T *p, size_t size)
Definition
Span.h:18
joedb::Span::begin
T * begin()
Definition
Span.h:39
joedb::Span::operator[]
const T & operator[](size_t i) const
Definition
Span.h:28
JOEDB_DEBUG_ASSERT
#define JOEDB_DEBUG_ASSERT(x)
Definition
assert.h:20
joedb
Definition
Blob.h:7
Generated by
1.9.8