gslcpp
Modern-C++ Wrapper for GSL
|
#include <v-iterator.hpp>
Classes | |
struct | element |
Generic declaration for struct that gives type of vector's element. More... | |
struct | element< false > |
Specialization for non-constant type of element for vector. More... | |
struct | element< true > |
Specialization for constant type of element of vector. More... | |
Public Types | |
using | difference_type = std::ptrdiff_t |
Type of difference of two iterators. | |
using | pointer = E * |
Type of pointer to element in container. | |
using | value_type = E |
Type of element in container. | |
using | reference = E & |
Type of reference to element in container. | |
using | iterator_category = std::random_access_iterator_tag |
Indicate, to standard library, that iterator is random-access. | |
Public Member Functions | |
v_iterator (V &vi, difference_type off) | |
Construct instance of iterator. More... | |
reference | operator* () const |
Dereference iterator. More... | |
reference | operator[] (difference_type i) const |
Dereference element at offset from element pointed to by iterator. More... | |
v_iterator & | operator++ () |
Increment offset of element pointed to. More... | |
v_iterator | operator++ (int) |
Increment offset of element pointed to. More... | |
v_iterator & | operator-- () |
Decrement offset of element pointed to. More... | |
v_iterator | operator-- (int) |
Decrement offset of element pointed to. More... | |
v_iterator & | operator+= (difference_type n) |
For positive n , increase, by n , offset of element pointed to. More... | |
v_iterator & | operator-= (difference_type n) |
For positive n , decrease, by n , offset of element pointed to. More... | |
template<typename I > | |
difference_type | operator- (v_iterator< I > const &i) const |
Difference in offset between two iterators. More... | |
template<typename B > | |
bool | operator== (v_iterator< B > const &b) const |
Compare two iterators for equality. More... | |
template<typename B > | |
bool | operator!= (v_iterator< B > const &b) const |
Compare two iterators for inequality. More... | |
template<typename B > | |
bool | operator< (v_iterator< B > const &b) const |
Compare two iterators for ordering. More... | |
template<typename B > | |
bool | operator> (v_iterator< B > const &b) const |
Compare two iterators for ordering. More... | |
template<typename B > | |
bool | operator<= (v_iterator< B > const &b) const |
Compare two iterators for ordering. More... | |
template<typename B > | |
bool | operator>= (v_iterator< B > const &b) const |
Compare two iterators for ordering. More... | |
Private Types | |
using | E = typename element< std::is_const_v< V > >::type |
Type of element for vector. More... | |
Private Member Functions | |
template<typename B > | |
void | check_same_vector (v_iterator< B > const &b) const |
Throw exception if each of two iterators point into different vector. More... | |
Private Attributes | |
V & | vi_ |
Reference to instance of container. | |
difference_type | off_ |
Current offset pointed to in container. | |
Friends | |
v_iterator | operator+ (v_iterator i, difference_type n) |
Produce new iterator at offset greater than that of existing iterator. More... | |
v_iterator | operator+ (difference_type n, v_iterator i) |
Produce new iterator at offset greater than that of existing iterator. More... | |
v_iterator | operator- (v_iterator i, difference_type n) |
Produce new iterator at offset less than that of existing iterator. More... | |
Iterator for v_iface.
There is no operator->
because element is always of type double. Even if vector actually have non-const elements, const vector is treated as having const elements.
Definition at line 16 of file v-iterator.hpp.
struct gsl::v_iterator::element |
Generic declaration for struct that gives type of vector's element.
Even if vector actually have non-const elements, const vector is treated as having const elements.
is_const | True for constant-type element. |
Definition at line 41 of file v-iterator.hpp.
struct gsl::v_iterator::element< false > |
Specialization for non-constant type of element for vector.
Even if vector actually have non-const elements, const vector is treated as having const elements.
Definition at line 51 of file v-iterator.hpp.
Class Members | ||
---|---|---|
typedef typename E | type |
struct gsl::v_iterator::element< true > |
Specialization for constant type of element of vector.
Even if vector actually have non-const elements, const vector is treated as having const elements.
Definition at line 46 of file v-iterator.hpp.
Class Members | ||
---|---|---|
typedef typename E const | type |
|
private |
Type of element for vector.
Even if vector actually have non-const elements, const vector is treated as having const elements.
Definition at line 55 of file v-iterator.hpp.
|
inline |
Construct instance of iterator.
vi | Reference to container of element pointed to. |
off | Offset of element pointed to in container. |
Definition at line 68 of file v-iterator.hpp.
|
inlineprivate |
Throw exception if each of two iterators point into different vector.
B | Type of vector for second iterator. |
b | Second iterator. |
Definition at line 31 of file v-iterator.hpp.
|
inline |
Compare two iterators for inequality.
Throw runtime_error if iterators do not point into same vector.
B | Type of vector for second iterator. |
b | Second iterator. |
Definition at line 184 of file v-iterator.hpp.
|
inline |
Dereference iterator.
Definition at line 72 of file v-iterator.hpp.
|
inline |
Increment offset of element pointed to.
Definition at line 81 of file v-iterator.hpp.
|
inline |
Increment offset of element pointed to.
Definition at line 88 of file v-iterator.hpp.
|
inline |
For positive n
, increase, by n
, offset of element pointed to.
This is like fast forward in place for an iterator. Do nothing when n == 0
. Actually decrease offset when n < 0
.
n | Number by which to increase offset. |
Definition at line 114 of file v-iterator.hpp.
|
inline |
Difference in offset between two iterators.
Throw runtime_error if iterators do not point into same vector.
I | Type of vector for iterator with offset to subtract. |
i | Iterator with offset to subtract. |
i
. Definition at line 164 of file v-iterator.hpp.
|
inline |
Decrement offset of element pointed to.
Definition at line 96 of file v-iterator.hpp.
|
inline |
Decrement offset of element pointed to.
Definition at line 103 of file v-iterator.hpp.
|
inline |
For positive n
, decrease, by n
, offset of element pointed to.
This is like fast reverse in place for an iterator. Do nothing when n == 0
. Actually increase offset when n < 0
.
n | Number by which to decrease offset. |
Definition at line 124 of file v-iterator.hpp.
|
inline |
Compare two iterators for ordering.
Throw runtime_error if iterators do not point into same vector.
B | Type of vector for second iterator. |
b | Second iterator. |
Definition at line 195 of file v-iterator.hpp.
|
inline |
Compare two iterators for ordering.
Throw runtime_error if iterators do not point into same vector.
B | Type of vector for second iterator. |
b | Second iterator. |
Definition at line 217 of file v-iterator.hpp.
|
inline |
Compare two iterators for equality.
Throw runtime_error if iterators do not point into same vector.
B | Type of vector for second iterator. |
b | Second iterator. |
Definition at line 174 of file v-iterator.hpp.
|
inline |
Compare two iterators for ordering.
Throw runtime_error if iterators do not point into same vector.
B | Type of vector for second iterator. |
b | Second iterator. |
Definition at line 206 of file v-iterator.hpp.
|
inline |
Compare two iterators for ordering.
Throw runtime_error if iterators do not point into same vector.
B | Type of vector for second iterator. |
b | Second iterator. |
Definition at line 228 of file v-iterator.hpp.
|
inline |
Dereference element at offset from element pointed to by iterator.
i | Offset from element pointed to by iterator. |
i
from current element. Definition at line 77 of file v-iterator.hpp.
|
friend |
Produce new iterator at offset greater than that of existing iterator.
This is like fast forward for an iterator.
n | Offset. |
i | Iterator. |
n
more than that of i
. Definition at line 144 of file v-iterator.hpp.
|
friend |
Produce new iterator at offset greater than that of existing iterator.
This is like fast forward for an iterator.
i | Iterator. |
n | Offset. |
n
more than that of i
. Definition at line 134 of file v-iterator.hpp.
|
friend |
Produce new iterator at offset less than that of existing iterator.
This is like fast reverse for an iterator.
i | Iterator. |
n | Offset. |
n
less than that of i
. Definition at line 153 of file v-iterator.hpp.