template<class Predicate, class Type, class ReferenceType = Type &, class PointerType = Type *, class ConstType = const Type, class ConstReferenceType = const Type &, class ConstPointerType = const Type *>
template<typename IterType>
struct variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >
The actual iterator object is held as a template parameter here.
在文件 variant_filter_iterator.h 第 138 行定义.
template<class Predicate, class Type, class ReferenceType = Type &, class PointerType = Type *, class ConstType = const Type, class ConstReferenceType = const Type &, class ConstPointerType = const Type *>
template<typename IterType>
virtual variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::~Iter |
( |
| ) |
|
|
virtualdefault |
template<class Predicate, class Type, class ReferenceType = Type &, class PointerType = Type *, class ConstType = const Type, class ConstReferenceType = const Type &, class ConstPointerType = const Type *>
template<typename IterType>
virtual std::unique_ptr<IterBase> variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::clone |
( |
| ) |
const |
|
inlineoverridevirtual |
- 返回
- A copy of this object as a pointer to the base (non-templated) class.
实现了 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::IterBase.
在文件 variant_filter_iterator.h 第 163 行定义.
参考 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::iter_data.
165 return std::make_unique<Iter<IterType>>(
iter_data);
IterType iter_data
This is the iterator passed by the user.
template<class Predicate, class Type, class ReferenceType = Type &, class PointerType = Type *, class ConstType = const Type, class ConstReferenceType = const Type &, class ConstPointerType = const Type *>
template<typename IterType>
- 返回
- A copy of this object as a pointer to a different type of object.
Important typedef for const_iterators.
实现了 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::IterBase.
在文件 variant_filter_iterator.h 第 172 行定义.
参考 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::iter_data.
178 return std::make_unique<const_Iter>(
iter_data);
Original Authors: Corwin Joy * Michael Gradman cjoy@houston.rr.com * Michael.Gradman@caminus.com Caminus, Suite 1150, Two Allen Center, 1200 Smith Street, Houston, TX 77002 This class is an extension of variant_bidirectional_iterator to a filter_iterator similar to boost's.
IterType iter_data
This is the iterator passed by the user.
template<class Predicate, class Type, class ReferenceType = Type &, class PointerType = Type *, class ConstType = const Type, class ConstReferenceType = const Type &, class ConstPointerType = const Type *>
template<typename IterType>
virtual bool variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::equal |
( |
const std::unique_ptr< IterBase > & |
other | ) |
const |
|
inlineoverridevirtual |
Use a dynamic cast to convert the base pointer passed in to the derived type.
If the cast fails it means you compared two different derived classes.
实现了 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::IterBase.
在文件 variant_filter_iterator.h 第 204 行定义.
参考 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::iter_data.
206 const Iter<IterType> * p =
207 libMesh::cast_ptr<const Iter<IterType> *>(other.get());
IterType iter_data
This is the iterator passed by the user.
template<class Predicate, class Type, class ReferenceType = Type &, class PointerType = Type *, class ConstType = const Type, class ConstReferenceType = const Type &, class ConstPointerType = const Type *>
template<typename IterType>
PointerType variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::iter_ptr |
( |
| ) |
const |
|
inlineprivate |
This seems to work around a bug in g++ prior to version 10 and clang++ prior to version 10.
在文件 variant_filter_iterator.h 第 223 行定义.
参考 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::iter_data.
参考自 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::operator*().
IterType iter_data
This is the iterator passed by the user.
template<class Predicate, class Type, class ReferenceType = Type &, class PointerType = Type *, class ConstType = const Type, class ConstReferenceType = const Type &, class ConstPointerType = const Type *>
template<typename IterType>
virtual ReferenceType variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::operator* |
( |
| ) |
const |
|
inlineoverridevirtual |
Dereferences the iterator.
实现了 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::IterBase.
在文件 variant_filter_iterator.h 第 184 行定义.
参考 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::iter_ptr().
PointerType iter_ptr() const
This seems to work around a bug in g++ prior to version 10 and clang++ prior to version 10...
template<class Predicate, class Type, class ReferenceType = Type &, class PointerType = Type *, class ConstType = const Type, class ConstReferenceType = const Type &, class ConstPointerType = const Type *>
template<typename IterType>
virtual Iter& variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::operator++ |
( |
| ) |
|
|
inlineoverridevirtual |
Pre-increments the iterator.
实现了 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::IterBase.
在文件 variant_filter_iterator.h 第 192 行定义.
参考 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::iter_data.
IterType iter_data
This is the iterator passed by the user.
template<class Predicate, class Type, class ReferenceType = Type &, class PointerType = Type *, class ConstType = const Type, class ConstReferenceType = const Type &, class ConstPointerType = const Type *>
template<typename IterType>
IterType variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::iter_data |
This is the iterator passed by the user.
在文件 variant_filter_iterator.h 第 215 行定义.
参考自 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::clone(), variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::const_clone(), variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::equal(), variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::iter_ptr(), variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Pred< IterType, PredType >::operator()() , 以及 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::operator++().