libMesh
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
libMesh::Predicates::abstract_multi_predicate< T > Struct Template Reference

#include <multi_predicates.h>

Inheritance diagram for libMesh::Predicates::abstract_multi_predicate< T >:
[legend]

Public Member Functions

virtual ~abstract_multi_predicate ()=default
 
abstract_multi_predicateoperator= (const abstract_multi_predicate &rhs)
 
virtual bool operator() (const T &it) const
 

Protected Member Functions

 abstract_multi_predicate ()=default
 
 abstract_multi_predicate (std::vector< pred_ptr< T >> &&predicates)
 
 abstract_multi_predicate (const abstract_multi_predicate &rhs)
 
void deep_copy (const abstract_multi_predicate &rhs)
 

Protected Attributes

std::vector< pred_ptr< T > > _predicates
 

Detailed Description

template<typename T>
struct libMesh::Predicates::abstract_multi_predicate< T >

Definition at line 62 of file multi_predicates.h.

Constructor & Destructor Documentation

◆ ~abstract_multi_predicate()

template<typename T >
virtual libMesh::Predicates::abstract_multi_predicate< T >::~abstract_multi_predicate ( )
virtualdefault

◆ abstract_multi_predicate() [1/3]

template<typename T >
libMesh::Predicates::abstract_multi_predicate< T >::abstract_multi_predicate ( )
protecteddefault

◆ abstract_multi_predicate() [2/3]

template<typename T >
libMesh::Predicates::abstract_multi_predicate< T >::abstract_multi_predicate ( std::vector< pred_ptr< T >> &&  predicates)
inlineprotected

Definition at line 95 of file multi_predicates.h.

96  : _predicates(std::move(predicates))
97  {}

◆ abstract_multi_predicate() [3/3]

template<typename T >
libMesh::Predicates::abstract_multi_predicate< T >::abstract_multi_predicate ( const abstract_multi_predicate< T > &  rhs)
inlineprotected

Definition at line 100 of file multi_predicates.h.

References libMesh::Predicates::abstract_multi_predicate< T >::deep_copy().

101  {
102  this->deep_copy(rhs);
103  }
void deep_copy(const abstract_multi_predicate &rhs)

Member Function Documentation

◆ deep_copy()

template<typename T >
void libMesh::Predicates::abstract_multi_predicate< T >::deep_copy ( const abstract_multi_predicate< T > &  rhs)
inlineprotected

Definition at line 108 of file multi_predicates.h.

References libMesh::Predicates::abstract_multi_predicate< T >::_predicates.

Referenced by libMesh::Predicates::abstract_multi_predicate< T >::abstract_multi_predicate(), and libMesh::Predicates::abstract_multi_predicate< T >::operator=().

109  {
110  // First clear out the predicates vector
111  _predicates.clear();
112 
113  for (const auto & p : rhs._predicates)
114  _predicates.push_back(p->clone());
115  }

◆ operator()()

template<typename T >
virtual bool libMesh::Predicates::abstract_multi_predicate< T >::operator() ( const T &  it) const
inlinevirtual

Definition at line 77 of file multi_predicates.h.

References libMesh::Predicates::abstract_multi_predicate< T >::_predicates, and libMesh::libmesh_assert().

78  {
79  for (const auto & pred : _predicates)
80  {
81  libmesh_assert (pred);
82 
83  if (!(*pred)(it))
84  return false;
85  }
86 
87  return true;
88  }
libmesh_assert(ctx)

◆ operator=()

template<typename T >
abstract_multi_predicate& libMesh::Predicates::abstract_multi_predicate< T >::operator= ( const abstract_multi_predicate< T > &  rhs)
inline

Definition at line 68 of file multi_predicates.h.

References libMesh::Predicates::abstract_multi_predicate< T >::deep_copy().

69  {
70  // Copy over the information from the rhs.
71  this->deep_copy(rhs);
72 
73  return *this;
74  }
void deep_copy(const abstract_multi_predicate &rhs)

Member Data Documentation

◆ _predicates

template<typename T >
std::vector<pred_ptr<T> > libMesh::Predicates::abstract_multi_predicate< T >::_predicates
protected

The documentation for this struct was generated from the following file: