Reference documentation for deal.II version 9.6.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
filtered_iterator.h File Reference
#include <deal.II/base/config.h>
#include <deal.II/base/exceptions.h>
#include <deal.II/base/iterator_range.h>
#include <deal.II/grid/tria_iterator_base.h>
#include <memory>
#include <set>
#include <tuple>

Go to the source code of this file.

Classes

class  IteratorFilters::Active
 
class  IteratorFilters::UserFlagSet
 
class  IteratorFilters::UserFlagNotSet
 
class  IteratorFilters::LevelEqualTo
 
class  IteratorFilters::SubdomainEqualTo
 
class  IteratorFilters::LocallyOwnedCell
 
class  IteratorFilters::LocallyOwnedLevelCell
 
class  IteratorFilters::MaterialIdEqualTo
 
class  IteratorFilters::ActiveFEIndexEqualTo
 
class  IteratorFilters::AtBoundary
 
class  IteratorFilters::BoundaryIdEqualTo
 
class  IteratorFilters::ManifoldIdEqualTo
 
class  FilteredIterator< BaseIterator >
 
class  FilteredIterator< BaseIterator >::PredicateBase
 
class  FilteredIterator< BaseIterator >::PredicateTemplate< Predicate >
 
struct  internal::FilteredIteratorImplementation::NestFilteredIterators< BaseIterator, std::tuple< Predicate > >
 
struct  internal::FilteredIteratorImplementation::NestFilteredIterators< BaseIterator, std::tuple< Predicate, Targs... > >
 

Namespaces

namespace  IteratorFilters
 
namespace  internal
 
namespace  internal::FilteredIteratorImplementation
 

Functions

template<typename BaseIterator , typename Predicate >
FilteredIterator< BaseIteratormake_filtered_iterator (const BaseIterator &i, const Predicate &p)
 
template<typename BaseIterator , typename Predicate >
IteratorRange< FilteredIterator< BaseIterator > > filter_iterators (IteratorRange< BaseIterator > i, const Predicate &p)
 
template<typename BaseIterator , typename Predicate , typename... Targs>
IteratorRange< typename internal::FilteredIteratorImplementation::NestFilteredIterators< BaseIterator, std::tuple< Predicate, Targs... > >::type > filter_iterators (IteratorRange< BaseIterator > i, const Predicate &p, const Targs... args)
 
template<typename BaseIterator , typename Predicate >
IteratorRange< FilteredIterator< BaseIterator > > operator| (IteratorRange< BaseIterator > i, const Predicate &p)
 

Function Documentation

◆ make_filtered_iterator()

template<typename BaseIterator , typename Predicate >
FilteredIterator< BaseIterator > make_filtered_iterator ( const BaseIterator & i,
const Predicate & p )

Create an object of type FilteredIterator given the base iterator and predicate. This function makes the creation of temporary objects (for example as function arguments) a lot simpler because one does not have to explicitly specify the type of the base iterator by hand – it is deduced automatically here.

Note
This class, function, or variable is a template, and it can only be instantiated if the following condition is true:
(std::predicate<Predicate, BaseIterator>)
If your compiler supports the C++20 standard, then this constraint will be enforced by a C++20 requires clause.

Definition at line 904 of file filtered_iterator.h.