acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
Loading...
Searching...
No Matches
std_iterator.h
1
#pragma once
2
3
4
// ITERATOR STUFF (from <iterator>)
5
// ITERATOR TAGS
6
struct
input_iterator_tag
7
{
// identifying tag for input iterators
8
};
9
10
struct
output_iterator_tag
11
{
// identifying tag for output iterators
12
};
13
14
struct
forward_iterator_tag
15
:
public
input_iterator_tag
,
output_iterator_tag
16
{
// identifying tag for forward iterators
17
};
18
19
struct
bidirectional_iterator_tag
20
:
public
forward_iterator_tag
21
{
// identifying tag for bidirectional iterators
22
};
23
24
struct
random_access_iterator_tag
25
:
public
bidirectional_iterator_tag
26
{
// identifying tag for random-access iterators
27
};
28
29
struct
_Int_iterator_tag
30
{
// identifying tag for integer types, not an iterator
31
};
32
33
// POINTER ITERATOR TAGS
34
struct
_Nonscalar_ptr_iterator_tag
35
{
// pointer to unknown type
36
};
37
struct
_Scalar_ptr_iterator_tag
38
{
// pointer to scalar type
39
};
40
41
42
// TEMPLATE CLASS iterator
43
template
<
class
_Category,
44
class
_Ty,
45
class
_Diff = ptrdiff_t,
46
class
_Pointer = _Ty*,
47
class
_Reference = _Ty&>
48
struct
iterator
49
{
// base type for all iterator classes
50
typedef
_Category iterator_category;
51
typedef
_Ty value_type;
52
typedef
_Diff difference_type;
53
typedef
_Diff distance_type;
// retained
54
typedef
_Pointer pointer;
55
typedef
_Reference matter;
56
};
_Int_iterator_tag
Definition
std_iterator.h:30
_Nonscalar_ptr_iterator_tag
Definition
std_iterator.h:35
_Scalar_ptr_iterator_tag
Definition
std_iterator.h:38
bidirectional_iterator_tag
Definition
std_iterator.h:21
forward_iterator_tag
Definition
std_iterator.h:16
input_iterator_tag
Definition
std_iterator.h:7
iterator
Definition
std_iterator.h:49
output_iterator_tag
Definition
std_iterator.h:11
random_access_iterator_tag
Definition
std_iterator.h:26
prototype
collection
std_iterator.h
Generated by
1.17.0