dune-geometry  2.4
Public Types | List of all members
Dune::RefinementImp::Traits< topologyId, CoordType, coerceToId, dimension, Dummy > Struct Template Reference

Mapping from geometryType, CoordType and coerceTo to a particular Refinement implementation. More...

Public Types

typedef SquaringTheCircle::Refinement Imp
 The implementation this specialisation maps to. More...
 

Detailed Description

template<unsigned topologyId, class CoordType, unsigned coerceToId, int dimension, class Dummy = void>
struct Dune::RefinementImp::Traits< topologyId, CoordType, coerceToId, dimension, Dummy >

Mapping from geometryType, CoordType and coerceTo to a particular Refinement implementation.

Template Parameters
topologyIdThe topology id of the element to refine
CoordTypeThe C++ type of the coordinates
coerceToIdThe topologyId of the subelements
dimensionThe dimension of the refinement.
DummyDummy parameter which can be used for SFINAE, should always be void.

Each Refinement implementation has to define one or more specialisations of this struct to declare what it implements. Template class Refinement uses this struct to know which implementation it should inherit from. Since non-type template arguments of specializations may not involve template parameters, it is often impossible to specify the specialization for all cases directly. As the workaround, the template parameter Dummy can be used for SFINAE with enable_if.

Each specialisation should contain a single member typedef Imp, e.g.:

template<class CoordType>
struct Traits<sphereTopologyId, CoordType, GenericGeometry::CubeToplogy<2>::id, 2>
{
typedef SquaringTheCircle::Refinement Imp;
};

Member Typedef Documentation

template<unsigned topologyId, class CoordType, unsigned coerceToId, int dimension, class Dummy = void>
typedef SquaringTheCircle::Refinement Dune::RefinementImp::Traits< topologyId, CoordType, coerceToId, dimension, Dummy >::Imp

The implementation this specialisation maps to.


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