Block-Structured AMR Software Framework
amrex::ref_wrapper< T > Class Template Reference

#include <AMReX_ParticleArray.H>

Public Types

using type = T
 

Public Member Functions

AMREX_GPU_HOST_DEVICE ref_wrapper (T &ref) noexcept
 
 ref_wrapper (T &&)=delete
 
 ~ref_wrapper ()=default
 
 ref_wrapper (const ref_wrapper &) noexcept=default
 
 ref_wrapper (ref_wrapper &&) noexcept=default
 
AMREX_GPU_HOST_DEVICE ref_wrapperoperator= (T &&a_other)
 
ref_wrapperoperator= (const ref_wrapper &) noexcept=default
 
ref_wrapperoperator= (ref_wrapper &&) noexcept=default
 
AMREX_GPU_HOST_DEVICE operator T& () const noexcept
 
AMREX_GPU_HOST_DEVICE T & get () const noexcept
 

Private Attributes

T * _ptr
 

Detailed Description

template<class T>
class amrex::ref_wrapper< T >

Because std::reference_wrapper is not host device

Member Typedef Documentation

◆ type

template<class T >
using amrex::ref_wrapper< T >::type = T

Constructor & Destructor Documentation

◆ ref_wrapper() [1/4]

template<class T >
AMREX_GPU_HOST_DEVICE amrex::ref_wrapper< T >::ref_wrapper ( T &  ref)
inlinenoexcept

◆ ref_wrapper() [2/4]

template<class T >
amrex::ref_wrapper< T >::ref_wrapper ( T &&  )
delete

◆ ~ref_wrapper()

template<class T >
amrex::ref_wrapper< T >::~ref_wrapper ( )
default

◆ ref_wrapper() [3/4]

template<class T >
amrex::ref_wrapper< T >::ref_wrapper ( const ref_wrapper< T > &  )
defaultnoexcept

◆ ref_wrapper() [4/4]

template<class T >
amrex::ref_wrapper< T >::ref_wrapper ( ref_wrapper< T > &&  )
defaultnoexcept

Member Function Documentation

◆ get()

template<class T >
AMREX_GPU_HOST_DEVICE T& amrex::ref_wrapper< T >::get ( ) const
inlinenoexcept

◆ operator T&()

template<class T >
AMREX_GPU_HOST_DEVICE amrex::ref_wrapper< T >::operator T& ( ) const
inlinenoexcept

◆ operator=() [1/3]

template<class T >
ref_wrapper& amrex::ref_wrapper< T >::operator= ( const ref_wrapper< T > &  )
defaultnoexcept

◆ operator=() [2/3]

template<class T >
ref_wrapper& amrex::ref_wrapper< T >::operator= ( ref_wrapper< T > &&  )
defaultnoexcept

◆ operator=() [3/3]

template<class T >
AMREX_GPU_HOST_DEVICE ref_wrapper& amrex::ref_wrapper< T >::operator= ( T &&  a_other)
inline

Member Data Documentation

◆ _ptr

template<class T >
T* amrex::ref_wrapper< T >::_ptr
private

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