acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
Loading...
Searching...
No Matches
rear_iterator.h
1
//
2
// Created by camilo on 2025-08-12 16:28 <3ThomasBorregaardSørensen!!
3
//
4
#pragma once
5
6
7
template
<
typename
TYPE >
8
class
pointer_rear_iterator
9
{
10
public
:
11
12
13
using
ITEM = non_const < TYPE >;
14
using
ITEM_POINTER = ITEM *;
15
16
using
iterator = ::pointer_rear_iterator < ITEM >;
17
using
const_iterator = ::pointer_rear_iterator < const ITEM >;
18
19
20
TYPE* m_p;
21
22
23
pointer_rear_iterator() { m_p =
nullptr
; }
24
pointer_rear_iterator(
const
ITEM * p) { m_p = (TYPE *) p; }
25
pointer_rear_iterator(
const
iterator & i) { m_p = (TYPE *)i.m_p; }
26
pointer_rear_iterator(
const
const_iterator & i) { m_p = (TYPE *)i.m_p; }
27
28
29
auto
& operator *() {
return
*m_p; }
30
auto
& operator *()
const
{
return
*m_p; }
31
auto
operator ->() {
return
m_p; }
32
auto
operator ->()
const
{
return
m_p; }
33
34
pointer_rear_iterator & operator ++()
35
{
36
m_p--;
37
return
*
this
;
38
39
}
40
pointer_rear_iterator& operator --()
41
{
42
m_p++;
43
return
*
this
;
44
45
}
46
47
pointer_rear_iterator operator ++(::i32)
48
{
49
auto
p = *
this
;
50
m_p--;
51
52
return
p;
53
54
}
55
pointer_rear_iterator operator --(::i32)
56
{
57
auto
p = *
this
;
58
m_p++;
59
60
return
p;
61
62
}
63
template
< prototype_
int
egral INTEGRAL >
64
pointer_rear_iterator operator +(INTEGRAL i)
65
{
66
67
return
m_p - i;
68
69
}
70
template
< prototype_
int
egral INTEGRAL >
71
pointer_rear_iterator operator -(INTEGRAL i)
72
{
73
74
return
m_p + i;
75
76
}
77
78
template
< prototype_
int
egral INTEGRAL >
79
pointer_rear_iterator & operator +=(INTEGRAL i)
80
{
81
m_p -= i;
82
return
*
this
;
83
84
}
85
template
< prototype_
int
egral INTEGRAL >
86
pointer_rear_iterator & operator -=(INTEGRAL i)
87
{
88
m_p += i;
89
return
*
this
;
90
91
}
92
93
94
bool
operator ==(
const
pointer_rear_iterator& p)
const
{
return
m_p == p.m_p; }
95
bool
operator ==(
const
TYPE * p)
const
{
return
m_p == p; }
96
::std::strong_ordering operator <=>(
const
pointer_rear_iterator& p)
const
{
return
this->m_p <=> p.m_p; }
97
98
::collection::count operator - (
const
pointer_rear_iterator& p)
const
{
return
this->m_p - p.m_p; }
99
100
};
prototype
collection
rear_iterator.h
Generated by
1.17.0