acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
Loading...
Searching...
No Matches
string_iterator.h
1
//
2
// string_iterator.h
3
// acme
4
//
5
// Created by Camilo Sasuke Thomas Borregaard Soerensen on 08/06/22.
6
// Copyright (c) 2022 Camilo Sasuke Thomas Borregaard Soerensen. All rights reserved.
7
//
8
#pragma once
9
10
11
template
< prototype_
char
acter CHARACTER >
12
class
unicode_iterator
13
{
14
public
:
15
16
17
18
const
CHARACTER
* m_p;
19
20
const
CHARACTER
* m_psz;
21
22
23
unicode_iterator(
const
CHARACTER
* psz) : m_psz(psz) { }
24
unicode_iterator(
const
CHARACTER
* psz, character_count size) : m_psz(psz + size) { }
25
26
::wd32_character operator *();
27
unicode_iterator & operator ++();
28
unicode_iterator operator ++(::i32);
29
30
template
< prototype_
int
egral INTEGRAL >
31
unicode_iterator operator +(INTEGRAL i)
const
32
{
33
34
auto
iterator
= *
this
;
35
36
while
(i > 0)
37
{
38
39
iterator
++;
40
41
i--;
42
43
}
44
45
return
iterator
;
46
47
}
48
49
bool
operator == (
const
unicode_iterator & it)
const
{
return
m_psz == it.m_psz;}
50
51
bool
operator != (
const
unicode_iterator & it)
const
{
return
!operator==(it);}
52
53
54
const
CHARACTER
* c_str()
const
{
return
m_psz; }
55
56
57
};
CHARACTER
iterator
Definition
std_iterator.h:49
prototype
string
string_iterator.h
Generated by
1.17.0