Sacado Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
template
Sacado_TemplateIterator.hpp
Go to the documentation of this file.
1
// $Id$
2
// $Source$
3
// @HEADER
4
// ***********************************************************************
5
//
6
// Sacado Package
7
// Copyright (2006) Sandia Corporation
8
//
9
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
10
// the U.S. Government retains certain rights in this software.
11
//
12
// This library is free software; you can redistribute it and/or modify
13
// it under the terms of the GNU Lesser General Public License as
14
// published by the Free Software Foundation; either version 2.1 of the
15
// License, or (at your option) any later version.
16
//
17
// This library is distributed in the hope that it will be useful, but
18
// WITHOUT ANY WARRANTY; without even the implied warranty of
19
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20
// Lesser General Public License for more details.
21
//
22
// You should have received a copy of the GNU Lesser General Public
23
// License along with this library; if not, write to the Free Software
24
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25
// USA
26
// Questions? Contact David M. Gay (dmgay@sandia.gov) or Eric T. Phipps
27
// (etphipp@sandia.gov).
28
//
29
// ***********************************************************************
30
// @HEADER
31
32
#ifndef SACADO_TEMPLATEITERATOR_HPP
33
#define SACADO_TEMPLATEITERATOR_HPP
34
35
#include <vector>
36
#include <iterator>
37
38
namespace
Sacado
{
39
48
template
<
typename
BaseT>
49
class
TemplateIterator
:
public
std::iterator<std::input_iterator_tag,
50
BaseT> {
51
public
:
52
54
TemplateIterator
(
55
typename
std::vector< Teuchos::RCP<BaseT> >::iterator p) :
56
object_iterator
(p) {}
57
58
// No default constructor
59
// Use default copy constructor and copy assignment
60
62
bool
operator==
(
const
TemplateIterator
& t)
const
{
63
return
object_iterator
== t.objectIterator;
64
}
65
67
bool
operator!=
(
const
TemplateIterator
& t)
const
{
68
return
object_iterator
!= t.
object_iterator
;
69
}
70
72
typename
Sacado::TemplateIterator<BaseT>::reference
73
operator*
()
const
{
74
return
*(*object_iterator);
75
}
76
78
typename
Sacado::TemplateIterator<BaseT>::pointer
79
operator->
()
const
{
80
return
&(*(*object_iterator));
81
}
82
84
TemplateIterator
&
operator++
() {
85
++
object_iterator
;
86
return
*
this
;
87
}
88
90
TemplateIterator
operator++
(
int
) {
91
TemplateIterator
tmp = *
this
;
92
++(*this);
93
return
tmp;
94
}
95
97
Teuchos::RCP<BaseT>
rcp
()
const
{
98
return
*
object_iterator
;
99
}
100
101
private
:
102
104
typename
std::vector< Teuchos::RCP<BaseT> >::iterator
object_iterator
;
105
106
};
107
116
template
<
typename
BaseT>
117
class
ConstTemplateIterator
:
public
std::iterator<std::input_iterator_tag,
118
BaseT> {
119
public
:
120
122
ConstTemplateIterator
(
123
typename
std::vector< Teuchos::RCP<BaseT> >::const_iterator p) :
124
object_iterator
(p) {}
125
126
// No default constructor
127
// Use default copy constructor and copy assignment
128
130
bool
operator==
(
const
ConstTemplateIterator
& t)
const
{
131
return
object_iterator
== t.objectIterator;
132
}
133
135
bool
operator!=
(
const
ConstTemplateIterator
& t)
const
{
136
return
object_iterator
!= t.
object_iterator
;
137
}
138
140
typename
Sacado::ConstTemplateIterator<BaseT>::reference
141
operator*
()
const
{
142
return
*(*object_iterator);
143
}
144
146
typename
Sacado::ConstTemplateIterator<BaseT>::pointer
147
operator->
()
const
{
148
return
&(*(*object_iterator));
149
}
150
152
ConstTemplateIterator
&
operator++
() {
153
++
object_iterator
;
154
return
*
this
;
155
}
156
158
ConstTemplateIterator
operator++
(
int
) {
159
ConstTemplateIterator
tmp = *
this
;
160
++(*this);
161
return
tmp;
162
}
163
165
Teuchos::RCP<BaseT>
rcp
()
const
{
166
return
*
object_iterator
;
167
}
168
169
private
:
170
172
typename
std::vector< Teuchos::RCP<BaseT> >::const_iterator
object_iterator
;
173
174
};
175
176
}
177
178
#endif
Sacado::ConstTemplateIterator
Definition
Sacado_TemplateIterator.hpp:118
Sacado::ConstTemplateIterator::operator->
Sacado::ConstTemplateIterator< BaseT >::pointer operator->() const
-> operator
Definition
Sacado_TemplateIterator.hpp:147
Sacado::ConstTemplateIterator::rcp
Teuchos::RCP< BaseT > rcp() const
Returns a reference counted pointer object.
Definition
Sacado_TemplateIterator.hpp:165
Sacado::ConstTemplateIterator::operator*
Sacado::ConstTemplateIterator< BaseT >::reference operator*() const
Dereference operator.
Definition
Sacado_TemplateIterator.hpp:141
Sacado::ConstTemplateIterator::operator++
ConstTemplateIterator operator++(int)
Postfix ++.
Definition
Sacado_TemplateIterator.hpp:158
Sacado::ConstTemplateIterator::operator++
ConstTemplateIterator & operator++()
Prefix ++.
Definition
Sacado_TemplateIterator.hpp:152
Sacado::ConstTemplateIterator::ConstTemplateIterator
ConstTemplateIterator(typename std::vector< Teuchos::RCP< BaseT > >::const_iterator p)
Constructor.
Definition
Sacado_TemplateIterator.hpp:122
Sacado::ConstTemplateIterator::operator==
bool operator==(const ConstTemplateIterator &t) const
Equal operator.
Definition
Sacado_TemplateIterator.hpp:130
Sacado::ConstTemplateIterator::object_iterator
std::vector< Teuchos::RCP< BaseT > >::const_iterator object_iterator
Underlying object iterator.
Definition
Sacado_TemplateIterator.hpp:172
Sacado::ConstTemplateIterator::operator!=
bool operator!=(const ConstTemplateIterator &t) const
Not equal operator.
Definition
Sacado_TemplateIterator.hpp:135
Sacado::TemplateIterator
Definition
Sacado_TemplateIterator.hpp:50
Sacado::TemplateIterator::operator==
bool operator==(const TemplateIterator &t) const
Equal operator.
Definition
Sacado_TemplateIterator.hpp:62
Sacado::TemplateIterator::TemplateIterator
TemplateIterator(typename std::vector< Teuchos::RCP< BaseT > >::iterator p)
Constructor.
Definition
Sacado_TemplateIterator.hpp:54
Sacado::TemplateIterator::rcp
Teuchos::RCP< BaseT > rcp() const
Returns a reference counted pointer object.
Definition
Sacado_TemplateIterator.hpp:97
Sacado::TemplateIterator::object_iterator
std::vector< Teuchos::RCP< BaseT > >::iterator object_iterator
Underlying object iterator.
Definition
Sacado_TemplateIterator.hpp:104
Sacado::TemplateIterator::operator++
TemplateIterator & operator++()
Prefix ++.
Definition
Sacado_TemplateIterator.hpp:84
Sacado::TemplateIterator::operator++
TemplateIterator operator++(int)
Postfix ++.
Definition
Sacado_TemplateIterator.hpp:90
Sacado::TemplateIterator::operator*
Sacado::TemplateIterator< BaseT >::reference operator*() const
Dereference operator.
Definition
Sacado_TemplateIterator.hpp:73
Sacado::TemplateIterator::operator->
Sacado::TemplateIterator< BaseT >::pointer operator->() const
-> operator
Definition
Sacado_TemplateIterator.hpp:79
Sacado::TemplateIterator::operator!=
bool operator!=(const TemplateIterator &t) const
Not equal operator.
Definition
Sacado_TemplateIterator.hpp:67
Sacado
Definition
Sacado_mpl_apply.hpp:39
Generated by
1.17.0