BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bslalg::NothrowMovableUtil Struct Reference

#include <bslalg_nothrowmovableutil.h>

Classes

struct  IsWrapped
 
struct  UnwrappedType
 
struct  WrappedType
 

Public Member Functions

template<class TYPE >
bslalg::NothrowMovableUtil::UnwrappedType< TYPE >::type & unwrap (TYPE &f)
 
template<class TYPE >
bslalg::NothrowMovableUtil::UnwrappedType< TYPE >::type const & unwrap (TYPE const &f)
 
template<class TYPE >
bslmf::MovableRef< const typename bslalg::NothrowMovableUtil::UnwrappedType< TYPE >::type > unwrap (BSLMF_MOVABLEREF_DEDUCE(const TYPE) f)
 
template<class TYPE >
bslmf::MovableRef< typename bslalg::NothrowMovableUtil::UnwrappedType< TYPE >::type > unwrap (BSLMF_MOVABLEREF_DEDUCE(TYPE) f)
 
template<class TYPE >
bslalg::NothrowMovableUtil::WrappedType< TYPE >::type wrap (TYPE &f)
 
template<class TYPE >
bslalg::NothrowMovableUtil::WrappedType< TYPE >::type wrap (const TYPE &f)
 
template<class TYPE >
bslalg::NothrowMovableUtil::WrappedType< TYPE >::type wrap (BSLMF_MOVABLEREF_DEDUCE(const TYPE) f)
 

Static Public Member Functions

template<class TYPE >
static UnwrappedType< TYPE >::type & unwrap (TYPE &f)
 
template<class TYPE >
static UnwrappedType< TYPE >::type const & unwrap (TYPE const &f)
 
template<class TYPE >
static bslmf::MovableRef< const typename UnwrappedType< TYPE >::type > unwrap (BSLMF_MOVABLEREF_DEDUCE(const TYPE) f)
 
template<class TYPE >
static bslmf::MovableRef< typename UnwrappedType< TYPE >::type > unwrap (BSLMF_MOVABLEREF_DEDUCE(TYPE) f)
 
template<class TYPE >
static WrappedType< TYPE >::type wrap (TYPE &f)
 
template<class TYPE >
static WrappedType< TYPE >::type wrap (TYPE const &f)
 
template<class TYPE >
static WrappedType< TYPE >::type wrap (BSLMF_MOVABLEREF_DEDUCE(const TYPE) f)
 
template<class TYPE >
static WrappedType< TYPE >::type wrap (BSLMF_MOVABLEREF_DEDUCE(TYPE) f)
 

Member Function Documentation

◆ unwrap() [1/5]

template<class TYPE >
static bslmf::MovableRef< const typename UnwrappedType< TYPE >::type > bslalg::NothrowMovableUtil::unwrap ( BSLMF_MOVABLEREF_DEDUCE(const TYPE)  f)
static

◆ unwrap() [2/5]

template<class TYPE >
static bslmf::MovableRef< typename UnwrappedType< TYPE >::type > bslalg::NothrowMovableUtil::unwrap ( BSLMF_MOVABLEREF_DEDUCE(TYPE)  f)
static

◆ unwrap() [3/5]

template<class TYPE >
bslmf::MovableRef< typename bslalg::NothrowMovableUtil::UnwrappedType< TYPE >::type > bslalg::NothrowMovableUtil::unwrap ( BSLMF_MOVABLEREF_DEDUCE(TYPE)  f)
inline

◆ unwrap() [4/5]

template<class TYPE >
static UnwrappedType< TYPE >::type & bslalg::NothrowMovableUtil::unwrap ( TYPE &  f)
static

Return a reference to the object wrapped in the specified f object. If f is not wrapped, simply return a reference to f. Note that the overloads taking an lvalue argument prevent the overload taking an rvalue argument from treating the argument as a forwarding reference. The return type is chosen so both the value category and constness of the parameter are preserved even in the case of const rvalue references.

◆ unwrap() [5/5]

template<class TYPE >
static UnwrappedType< TYPE >::type const & bslalg::NothrowMovableUtil::unwrap ( TYPE const &  f)
static

◆ wrap() [1/4]

template<class TYPE >
static WrappedType< TYPE >::type bslalg::NothrowMovableUtil::wrap ( BSLMF_MOVABLEREF_DEDUCE(const TYPE)  f)
static

◆ wrap() [2/4]

template<class TYPE >
static WrappedType< TYPE >::type bslalg::NothrowMovableUtil::wrap ( BSLMF_MOVABLEREF_DEDUCE(TYPE)  f)
static

◆ wrap() [3/4]

template<class TYPE >
static WrappedType< TYPE >::type bslalg::NothrowMovableUtil::wrap ( TYPE &  f)
static

Return a wrapped copy of the specified f object. If f is already wrapped, return a simple copy of f without wrapping it again. Note that the overloads taking an lvalue argument prevent the overload taking an rvalue argument from treating the argument as a forwarding reference.

◆ wrap() [4/4]

template<class TYPE >
static WrappedType< TYPE >::type bslalg::NothrowMovableUtil::wrap ( TYPE const &  f)
static

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