Types and macros for managing loops over mesh entities. More...
#include "arcane/core/ItemEnumerator.h"Go to the source code of this file.
Classes | |
| class | Arcane::Loop::ItemLoopFunctor< ItemType > |
| Template class to encapsulate a loop over entities. More... | |
Namespaces | |
| namespace | Arcane |
| -- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -- | |
| namespace | Arcane::Loop |
| Namespace containing various classes managing loops over entities. | |
Macros | |
| #define | ENUMERATE_ITEM_LAMBDA(item_type, iter, container) |
| Enumerator over an entity via a lambda function. | |
Typedefs | |
| typedef ItemLoopFunctor< Cell > | Arcane::Loop::ItemLoopFunctorCell |
| typedef ItemLoopFunctor< Node > | Arcane::Loop::ItemLoopFunctorNode |
Functions | |
| template<typename IterType, typename Lambda> | |
| void | Arcane::Loop::_InternalSimpleItemLoop (ItemVectorView view, const Lambda &lambda) |
| Entity loop functor that allows for the removal of indirections if the local indices of a view are consecutive. | |
Types and macros for managing loops over mesh entities.
Definition in file ItemLoop.h.
| #define ENUMERATE_ITEM_LAMBDA | ( | item_type, | |
| iter, | |||
| container ) |
Enumerator over an entity via a lambda function.
| item_type | entity type (Arcane::Node, Arcane::Cell, Arcane::Edge, ....) |
| iter | name of the iterator |
| container | associated container (of type Arcane::ItemGroup or Arcane::ItemVectorView). |
This macro generates a lambda and therefore the expression must be terminated by a ';'.
For example, to iterate over all cells:
The iterator is of type item_type :: Index (for example Cell::Index for a cell). It therefore does not have the classic methods on entities (such as Arcane::Cell::nbNode()). The iterator only allows access to variable values.
The lambda is declared with [=] and it is therefore forbidden to modify the captured variables.
Definition at line 151 of file ItemLoop.h.