Quick Links:

bal | bbl | bdl | bsl

Classes | Static Public Member Functions

bslalg::NothrowMovableUtil Struct Reference

#include <bslalg_nothrowmovableutil.h>

List of all members.

Classes

struct  IsWrapped
struct  UnwrappedType
struct  WrappedType

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)

Detailed Description

Namesapace for NothrowMovableWrapper traits and utilities.

See Component bslalg_nothrowmovableutil


Member Function Documentation

template<class TYPE >
static UnwrappedType<TYPE>::type& bslalg::NothrowMovableUtil::unwrap ( TYPE &  f  )  [static]
template<class TYPE >
static UnwrappedType<TYPE>::type const& bslalg::NothrowMovableUtil::unwrap ( TYPE const &  f  )  [static]
template<class TYPE >
static bslmf::MovableRef<const typename UnwrappedType<TYPE>::type> bslalg::NothrowMovableUtil::unwrap ( BSLMF_MOVABLEREF_DEDUCE(const TYPE)  f  )  [static]
template<class TYPE >
static bslmf::MovableRef<typename UnwrappedType<TYPE>::type> bslalg::NothrowMovableUtil::unwrap ( BSLMF_MOVABLEREF_DEDUCE(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.

template<class TYPE >
static WrappedType<TYPE>::type bslalg::NothrowMovableUtil::wrap ( TYPE &  f  )  [static]
template<class TYPE >
static WrappedType<TYPE>::type bslalg::NothrowMovableUtil::wrap ( TYPE const &  f  )  [static]
template<class TYPE >
static WrappedType<TYPE>::type bslalg::NothrowMovableUtil::wrap ( BSLMF_MOVABLEREF_DEDUCE(const TYPE)  f  )  [static]
template<class TYPE >
static WrappedType<TYPE>::type bslalg::NothrowMovableUtil::wrap ( BSLMF_MOVABLEREF_DEDUCE(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.


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