Joedb
9.1.4
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
////////////////////////////////////////////////////////////////////////////
11
template
<
typename
T>
class
Span
12
////////////////////////////////////////////////////////////////////////////
13
{
14
private
:
15
T *p;
16
size_t
size;
17
18
public
:
19
Span
(T *p,
size_t
size): p(p), size(size)
20
{
21
}
22
23
T &
operator[]
(
size_t
i)
24
{
25
JOEDB_ASSERT
(i < size);
26
return
p[i];
27
}
28
29
const
T &
operator[]
(
size_t
i)
const
30
{
31
JOEDB_ASSERT
(i < size);
32
return
p[i];
33
}
34
35
size_t
get_size
()
const
36
{
37
return
size;
38
}
39
40
T *
begin
()
41
{
42
return
p;
43
}
44
45
T *
end
()
46
{
47
return
p + size;
48
}
49
50
const
T *
begin
()
const
51
{
52
return
p;
53
}
54
55
const
T *
end
()
const
56
{
57
return
p + size;
58
}
59
};
60
}
61
62
#endif
assert.h
joedb::Span
Definition
Span.h:13
joedb::Span::operator[]
T & operator[](size_t i)
Definition
Span.h:23
joedb::Span::end
T * end()
Definition
Span.h:45
joedb::Span::get_size
size_t get_size() const
Definition
Span.h:35
joedb::Span::end
const T * end() const
Definition
Span.h:55
joedb::Span::begin
const T * begin() const
Definition
Span.h:50
joedb::Span::Span
Span(T *p, size_t size)
Definition
Span.h:19
joedb::Span::begin
T * begin()
Definition
Span.h:40
joedb::Span::operator[]
const T & operator[](size_t i) const
Definition
Span.h:29
JOEDB_ASSERT
#define JOEDB_ASSERT(x)
Definition
assert.h:18
joedb
Definition
Blob.h:7
Generated by
1.9.8