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