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

#include <mixed.hh>

Inheritance diagram for MixedPtr< T, 1 >:
Inheritance graph
[legend]
Collaboration diagram for MixedPtr< T, 1 >:
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, 1 > &other)
 
 MixedPtr (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, 1 > operator* ()
 

Detailed Description

template<template< Dim... > class T>
class MixedPtr< T, 1 >

Definition at line 267 of file mixed.hh.

Member Typedef Documentation

template<template< Dim... > class T>
template<Dim dim>
using MixedPtr< T, 1 >::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 285 of file mixed.hh.

Constructor & Destructor Documentation

template<template< Dim... > class T>
template<template< Dim... > class TT>
MixedPtr< T, 1 >::MixedPtr ( const MixedPtr< TT, 1 > &  other)
inline

Definition at line 288 of file mixed.hh.

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

Definition at line 295 of file mixed.hh.

template<template< Dim... > class T>
template<typename... Args>
MixedPtr< T, 1 >::MixedPtr ( Args...  args)
inline

Definition at line 300 of file mixed.hh.

Member Function Documentation

template<template< Dim... > class T>
template<Dim i_dim>
std::shared_ptr<T<i_dim> > MixedPtr< T, 1 >::get ( )
inline

Definition at line 309 of file mixed.hh.

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

Definition at line 314 of file mixed.hh.

template<template< Dim... > class T>
Mixed<T, 1> MixedPtr< T, 1 >::operator* ( )
inline

Definition at line 318 of file mixed.hh.


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