BALL
1.4.2
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
include
BALL
MATHS
LINALG
MATHS/LINALG/baseIterator.h
Go to the documentation of this file.
1
#ifndef BALL_LINALG_BASEITERATOR_H
2
#define BALL_LINALG_BASEITERATOR_H
3
4
namespace
BALL
5
{
6
16
template
<
typename
Container,
typename
DataType,
typename
Position,
typename
Traits>
17
class
BaseIterator
18
{
19
public
:
20
26
27
typedef
DataType
value_type
;
29
typedef
Position
difference_type
;
31
typedef
const
DataType*
pointer
;
33
typedef
const
DataType&
reference
;
35
typedef
Container
container_type
;
37
typedef
Traits
traits_type
;
39
typedef
std::input_iterator_tag
iterator_category
;
41
45
46
BaseIterator
() {}
47
49
BaseIterator
(
const
BaseIterator
& iterator)
50
:
traits_
(iterator.
traits_
)
51
{
52
}
53
55
~BaseIterator
() {}
57
61
66
BaseIterator
&
operator =
(
const
BaseIterator
& iterator)
67
{
68
traits_
= iterator.traits_;
69
return
*
this
;
70
}
71
73
void
swap
(
BaseIterator
& iterator) { std::swap(
traits_
, iterator.traits_); }
75
79
81
void
invalidate
() {
traits_
.invalidate(); }
82
84
void
setTraits
(
const
Traits& traits) {
traits_
= traits; }
85
87
const
Traits&
getTraits
()
const
{
return
traits_
; }
88
90
Traits&
getTraits
() {
return
traits_
; }
91
93
const
Container*
getContainer
()
const
{
return
traits_
.getContainer(); }
95
99
104
operator
const
Position
& ()
const
{
return
traits_
.getPosition(); }
105
107
reference
operator *
()
const
{
return
(
reference
)
traits_
.getData(); }
108
110
pointer
operator ->
()
const
{
return
(
pointer
)&
traits_
.getData(); }
112
116
118
bool
operator ==
(
const
BaseIterator
& iterator)
const
{
return
(
traits_
== iterator.traits_); }
119
121
bool
operator !=
(
const
BaseIterator
& iterator)
const
{
return
!(
traits_
== iterator.traits_); }
122
127
bool
isSingular
()
const
{
return
traits_
.isSingular(); }
128
132
bool
isValid
()
const
{
return
traits_
.isValid(); }
133
135
bool
operator +
()
const
{
return
traits_
.isValid(); }
136
138
bool
operator -
()
const
{
return
!
traits_
.isValid(); }
140
141
protected
:
142
146
BaseIterator
(
const
Container& container)
147
:
traits_
(container)
148
{
149
}
150
151
private
:
152
154
Traits
traits_
;
155
};
156
157
158
}
// namespace BALL
159
160
#endif // BALL_KERNEL_BASEITERATOR_H
Generated by
1.8.3.1