libmesh解析
本工作只是尝试解析原libmesh的代码,供学习使用
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 
Public 类型 | Public 成员函数 | Public 属性 | Private 成员函数 | 所有成员列表
variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType > 模板结构体 参考

The actual iterator object is held as a template parameter here. 更多...

#include <variant_filter_iterator.h>

类 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType > 继承关系图:
[图例]

Public 类型

typedef
variant_filter_iterator
< Predicate, ConstType,
ConstReferenceType,
ConstPointerType >::IterBase 
const_IterBase
 

Public 成员函数

 Iter (const IterType &v)
 Constructor. 更多...
 
 Iter (const Iter &other)
 Copy Constructor. 更多...
 
virtual ~Iter ()=default
 Destructor. 更多...
 
virtual std::unique_ptr< IterBaseclone () const override
 
virtual std::unique_ptr
< typename
IterBase::const_IterBase
const_clone () const override
 
virtual ReferenceType operator* () const override
 Dereferences the iterator. 更多...
 
virtual Iteroperator++ () override
 Pre-increments the iterator. 更多...
 
virtual bool equal (const std::unique_ptr< IterBase > &other) const override
 Use a dynamic cast to convert the base pointer passed in to the derived type. 更多...
 

Public 属性

IterType iter_data
 This is the iterator passed by the user. 更多...
 

Private 成员函数

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>
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.h138 行定义.

成员类型定义说明

template<class Predicate, class Type, class ReferenceType = Type &, class PointerType = Type *, class ConstType = const Type, class ConstReferenceType = const Type &, class ConstPointerType = const Type *>
typedef variant_filter_iterator<Predicate, ConstType, ConstReferenceType, ConstPointerType>::IterBase variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::IterBase::const_IterBase
inherited

在文件 variant_filter_iterator.h93 行定义.

构造及析构函数说明

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>
variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::Iter ( const IterType &  v)
inline

Constructor.

在文件 variant_filter_iterator.h143 行定义.

143  :
144  iter_data (v)
145  {}
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>
variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::Iter ( const Iter< IterType > &  other)
inline

Copy Constructor.

在文件 variant_filter_iterator.h150 行定义.

150  :
151  iter_data(other.iter_data)
152  {}
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 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::~Iter ( )
virtualdefault

Destructor.

成员函数说明

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.h163 行定义.

参考 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::iter_data.

164  {
165  return std::make_unique<Iter<IterType>>(iter_data);
166  }
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 std::unique_ptr<typename IterBase::const_IterBase> variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::const_clone ( ) const
inlineoverridevirtual
返回
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.h172 行定义.

参考 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::iter_data.

173  {
178  return std::make_unique<const_Iter>(iter_data);
179  }
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&#39;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.h204 行定义.

参考 variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Iter< IterType >::iter_data.

205  {
206  const Iter<IterType> * p =
207  libMesh::cast_ptr<const Iter<IterType> *>(other.get());
208 
209  return (iter_data == p->iter_data);
210  }
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
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
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

类成员变量说明

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

该结构体的文档由以下文件生成: