P4C
The P4 Compiler
Loading...
Searching...
No Matches
slist.h
1
17
18
#ifndef BACKENDS_TOFINO_BF_ASM_SLIST_H_
19
#define BACKENDS_TOFINO_BF_ASM_SLIST_H_
20
21
template
<
class
T>
22
class
slist {
23
const
slist *next;
24
T value;
25
26
public
:
27
explicit
slist(T v) : next(
nullptr
), value(v) {}
28
slist(T v,
const
slist *n) : next(n), value(v) {}
29
typedef
T value_type;
30
class
iterator :
public
std::iterator<std::forward_iterator_tag, T> {
31
friend
class
slist;
32
const
slist *ptr;
33
iterator() : ptr(
nullptr
) {}
34
explicit
iterator(
const
slist *p) : ptr(p) {}
35
36
public
:
37
iterator &operator++() {
38
ptr = ptr->next;
39
return
*
this
;
40
}
41
bool
operator==(
const
iterator &a)
const
{
return
ptr == a.ptr; }
42
bool
operator!=(
const
iterator &a)
const
{
return
ptr != a.ptr; }
43
const
T &operator*()
const
{
return
ptr->value; }
44
const
T *operator->()
const
{
return
&ptr->value; }
45
};
46
typedef
iterator
const_iterator;
47
48
iterator
begin()
const
{
return
iterator
(
this
); }
49
iterator
end()
const
{
return
iterator
(); }
50
};
51
52
#endif
/* BACKENDS_TOFINO_BF_ASM_SLIST_H_ */
slist::iterator
Definition
slist.h:30
iterator
backends
tofino
bf-asm
slist.h
Generated by
1.13.2