acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
Loading...
Searching...
No Matches
list_node.h
1
// From list_base by camilo on 2022-09-12 20:10 <3ThomasBorregaardSorensen!!
2
#pragma once
3
4
5
//
6
//#include "list_iterator.h"
7
8
9
template
<
class
TYPE >
10
class
list_node
11
{
12
public
:
13
14
15
using
ITEM = TYPE;
16
using
ARG_ITEM = argument_of < TYPE >;
17
18
using
this_iterator = ::list_iterator < list_node < TYPE > * >;
19
20
21
this_iterator m_next;
22
this_iterator m_back;
23
TYPE m_element;
24
25
26
list_node(ARG_ITEM t) :
27
m_element(t)
28
{
29
30
}
31
32
list_node(ITEM && t) :
33
m_element(::transfer(t))
34
{
35
36
}
37
38
operator
TYPE & () {
return
m_element; }
39
operator
const
TYPE & ()
const
{
return
(
const
TYPE & ) m_element; }
40
41
42
auto
& back() {
return
m_back; }
43
auto
& back()
const
{
return
m_back; }
44
45
auto
& next() {
return
m_next; }
46
auto
& next()
const
{
return
m_next; }
47
48
49
auto
& item() {
return
m_element; }
50
auto
& item()
const
{
return
m_element; }
51
52
53
auto
& topic() {
return
m_element; }
54
auto
& topic()
const
{
return
m_element; }
55
56
57
auto
transfer_topic() { return ::transfer(m_element); }
58
59
60
auto
transfer() { return ::transfer(*
this
); }
61
62
63
};
64
65
66
prototype
collection
list_node.h
Generated by
1.17.0