OpenHantek
Toggle main menu visibility
Loading...
Searching...
No Matches
enumclass.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: GPL-2.0-or-later
2
3
#pragma once
4
5
template
<
typename
T, T first, T last >
class
Enum
{
6
public
:
7
class
Iterator
{
8
public
:
9
Iterator
(
int
value ) :
m_value
( value ) {}
10
11
T
operator*
(
void
)
const
{
return
T(
m_value
); }
12
13
void
operator++
(
void
) { ++
m_value
; }
14
15
bool
operator!=
(
Iterator
rhs ) {
return
m_value
!= rhs.
m_value
; }
16
17
private
:
18
int
m_value
;
19
};
20
};
21
22
template
<
typename
T, T first, T last >
typename
Enum< T, first, last >::Iterator
begin
(
Enum< T, first, last >
) {
23
return
typename
Enum< T, first, last >::Iterator
(
int
( first ) );
24
}
25
26
template
<
typename
T, T first, T last >
typename
Enum< T, first, last >::Iterator
end
(
Enum< T, first, last >
) {
27
return
typename
Enum< T, first, last >::Iterator
(
int
( last ) + 1 );
28
}
Enum::Iterator
Definition
enumclass.h:7
Enum::Iterator::Iterator
Iterator(int value)
Definition
enumclass.h:9
Enum::Iterator::m_value
int m_value
Definition
enumclass.h:18
Enum::Iterator::operator++
void operator++(void)
Definition
enumclass.h:13
Enum::Iterator::operator*
T operator*(void) const
Definition
enumclass.h:11
Enum::Iterator::operator!=
bool operator!=(Iterator rhs)
Definition
enumclass.h:15
Enum
Definition
enumclass.h:5
begin
Enum< T, first, last >::Iterator begin(Enum< T, first, last >)
Definition
enumclass.h:22
end
Enum< T, first, last >::Iterator end(Enum< T, first, last >)
Definition
enumclass.h:26
utils
enumclass.h
Generated by
1.17.0