Flow123d  JS_before_hm-883-gc471082
Public Types | Public Member Functions | List of all members
MixedPtr< T, lower_dim > Class Template Reference

#include <mixed.hh>

Inheritance diagram for MixedPtr< T, lower_dim >:
Inheritance graph
[legend]
Collaboration diagram for MixedPtr< T, lower_dim >:
Collaboration graph
[legend]

Public Types

template<Dim dim>
using TPtr = std::shared_ptr< T< dim >>
 

Public Member Functions

template<template< Dim... > class TT>
 MixedPtr (const MixedPtr< TT > &other)
 
 MixedPtr (TPtr< 0 > p0, TPtr< 1 > p1, TPtr< 2 > p2, TPtr< 3 > p3)
 
template<typename... Args>
 MixedPtr (Args...args)
 
template<Dim i_dim>
std::shared_ptr< T< i_dim > > get ()
 
template<int i_dim>
const std::shared_ptr< T< i_dim > > get () const
 
Mixed< T > operator* ()
 

Detailed Description

template<template< Dim... > class T, int lower_dim = 0>
class MixedPtr< T, lower_dim >

Definition at line 200 of file mixed.hh.

Member Typedef Documentation

template<template< Dim... > class T, int lower_dim = 0>
template<Dim dim>
using MixedPtr< T, lower_dim >::TPtr = std::shared_ptr<T<dim>>

Template to simplify storing and passing tuples of shatred_ptr to instances of dimension parametrized templates. Currently instances for dim = 0,1,2,3 are created. We assume spacedim=3. Usage:

fe_order = 10; auto gauss = MixedPtr<QGauss>(q_order); // template <int dim>=""> class QGauss; auto mapping = MixedSpaceDimPtr<Mapping>(); // template <int dim, int spacedim> class Mapping; ... fe_values = FEValues<dim>(*mapping.get<dim>(), *gauss.get<dim>(), ...)

All parameters of the Mixed<T>(...) constructor are forwarder (by value) to the T(...) constructor for every dimension. Only forwarding by value is supported due to problems with MixedPtr. We are unable to give precedence to the copy constructor over the prefect forwarding constructor MixedPtr(Args&& ...).

Definition at line 218 of file mixed.hh.

Constructor & Destructor Documentation

template<template< Dim... > class T, int lower_dim = 0>
template<template< Dim... > class TT>
MixedPtr< T, lower_dim >::MixedPtr ( const MixedPtr< TT > &  other)
inline

Definition at line 221 of file mixed.hh.

template<template< Dim... > class T, int lower_dim = 0>
MixedPtr< T, lower_dim >::MixedPtr ( TPtr< 0 >  p0,
TPtr< 1 >  p1,
TPtr< 2 >  p2,
TPtr< 3 >  p3 
)
inline

Definition at line 229 of file mixed.hh.

template<template< Dim... > class T, int lower_dim = 0>
template<typename... Args>
MixedPtr< T, lower_dim >::MixedPtr ( Args...  args)
inline

Definition at line 234 of file mixed.hh.

Member Function Documentation

template<template< Dim... > class T, int lower_dim = 0>
template<Dim i_dim>
std::shared_ptr<T<i_dim> > MixedPtr< T, lower_dim >::get ( )
inline

Definition at line 244 of file mixed.hh.

Here is the caller graph for this function:

template<template< Dim... > class T, int lower_dim = 0>
template<int i_dim>
const std::shared_ptr<T<i_dim> > MixedPtr< T, lower_dim >::get ( ) const
inline

Definition at line 249 of file mixed.hh.

template<template< Dim... > class T, int lower_dim = 0>
Mixed<T> MixedPtr< T, lower_dim >::operator* ( )
inline

Definition at line 253 of file mixed.hh.


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