|
MARLEY (Model of Argon Reaction Low Energy Yields) v2.0.0
A Monte Carlo event generator for tens-of-MeV neutrino interactions
|
Template class that creates an iterator to a class member based on an iterator to a pointer (either bare or smart) to the class object. More...
#include <IteratorToPointerMember.hh>
Public Types | |
| typedef std::iterator_traits< It >::difference_type | difference_type |
| typedef std::iterator_traits< It >::iterator_category | iterator_category |
| typedef R * | pointer |
| typedef R & | reference |
| typedef std::remove_reference< decltype(*std::declval< T_pointer >())>::type | T |
| Type of the target of the pointer pointed to by the original iterator. | |
| typedef std::iterator_traits< It >::value_type | T_pointer |
| Type of the pointer pointed to by the original iterator. | |
| typedef R | value_type |
Public Member Functions | |
| IteratorToPointerMember (It from, R T::*memptr) | |
| Construction from an iterator and a pointer to member. | |
| bool | operator!= (const IteratorToPointerMember< It, R > &rhs) const |
| virtual reference | operator* () const |
| IteratorToPointerMember | operator+ (difference_type n) const |
| IteratorToPointerMember & | operator++ () |
| IteratorToPointerMember | operator++ (int) |
| Postfix operator++ (dummy argument) | |
| IteratorToPointerMember & | operator+= (difference_type n) |
| difference_type | operator- (const IteratorToPointerMember< It, R > &rhs) const |
| IteratorToPointerMember | operator- (difference_type n) const |
| IteratorToPointerMember & | operator-- () |
| IteratorToPointerMember | operator-- (int) |
| Postfix operator-- (see note about the postfix operator++) | |
| IteratorToPointerMember & | operator-= (difference_type n) |
| virtual pointer | operator-> () const |
| bool | operator== (const IteratorToPointerMember< It, R > &rhs) const |
| reference | operator[] (difference_type n) const |
Public Attributes | |
| It | m_it |
Protected Attributes | |
| value_type T::* | m_memptr |
Template class that creates an iterator to a class member based on an iterator to a pointer (either bare or smart) to the class object.
Ideally this class would inherit from marley::IteratorToMember and merely override the operator*() and operator->() functions, but such behavior doesn't appear to be currently possible (6/2016) using template classes.
| It | type of the original iterator |
| R | type of the member we want to point to |
Definition at line 30 of file IteratorToPointerMember.hh.
| typedef std::iterator_traits<It>::difference_type marley::IteratorToPointerMember< It, R >::difference_type |
Definition at line 48 of file IteratorToPointerMember.hh.
| typedef std::iterator_traits<It>::iterator_category marley::IteratorToPointerMember< It, R >::iterator_category |
Definition at line 46 of file IteratorToPointerMember.hh.
| typedef R* marley::IteratorToPointerMember< It, R >::pointer |
Definition at line 50 of file IteratorToPointerMember.hh.
| typedef R& marley::IteratorToPointerMember< It, R >::reference |
Definition at line 51 of file IteratorToPointerMember.hh.
| typedef std::remove_reference<decltype(*std::declval<T_pointer>())>::type marley::IteratorToPointerMember< It, R >::T |
Type of the target of the pointer pointed to by the original iterator.
We could have used std::remove_pointer<T_pointer>::type here as well, but that approach does not work with smart pointers (e.g., std::unique_ptr).
Definition at line 44 of file IteratorToPointerMember.hh.
| typedef std::iterator_traits<It>::value_type marley::IteratorToPointerMember< It, R >::T_pointer |
Type of the pointer pointed to by the original iterator.
Definition at line 38 of file IteratorToPointerMember.hh.
| typedef R marley::IteratorToPointerMember< It, R >::value_type |
Definition at line 49 of file IteratorToPointerMember.hh.
|
inline |
Construction from an iterator and a pointer to member.
| from | Iterator to the object |
| memptr | Pointer to the member of interest |
Definition at line 56 of file IteratorToPointerMember.hh.
Referenced by operator++(), and operator--().
|
inline |
Definition at line 82 of file IteratorToPointerMember.hh.
|
inlinevirtual |
Definition at line 95 of file IteratorToPointerMember.hh.
|
inline |
Definition at line 132 of file IteratorToPointerMember.hh.
|
inline |
Definition at line 111 of file IteratorToPointerMember.hh.
|
inline |
Postfix operator++ (dummy argument)
Definition at line 146 of file IteratorToPointerMember.hh.
References IteratorToPointerMember().
|
inline |
Definition at line 122 of file IteratorToPointerMember.hh.
|
inline |
Definition at line 77 of file IteratorToPointerMember.hh.
|
inline |
Definition at line 137 of file IteratorToPointerMember.hh.
|
inline |
Definition at line 117 of file IteratorToPointerMember.hh.
|
inline |
Postfix operator-- (see note about the postfix operator++)
Definition at line 156 of file IteratorToPointerMember.hh.
References IteratorToPointerMember().
|
inline |
Definition at line 127 of file IteratorToPointerMember.hh.
|
inlinevirtual |
Definition at line 100 of file IteratorToPointerMember.hh.
|
inline |
Definition at line 80 of file IteratorToPointerMember.hh.
|
inline |
Definition at line 105 of file IteratorToPointerMember.hh.
| It marley::IteratorToPointerMember< It, R >::m_it |
Definition at line 85 of file IteratorToPointerMember.hh.
|
protected |
Definition at line 88 of file IteratorToPointerMember.hh.