BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bslmf::Util Struct Reference

#include <bslmf_util.h>

Public Member Functions

template<class t_TYPE >
BSLS_KEYWORD_CONSTEXPR bslmf::MovableRef< t_TYPE > forward (bslmf::MovableRef< t_TYPE > t) BSLS_KEYWORD_NOEXCEPT
 
template<class t_MODEL , class t_TYPE >
BSLS_KEYWORD_CONSTEXPR const t_TYPE & forward_like (bslmf::MovableRef< t_TYPE > t, typename bsl::enable_if< bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *) BSLS_KEYWORD_NOEXCEPT
 
template<class t_MODEL , class t_TYPE >
BSLS_KEYWORD_CONSTEXPR const t_TYPE & forward_like (t_TYPE &t, typename bsl::enable_if< bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *) BSLS_KEYWORD_NOEXCEPT
 
template<class t_MODEL , class t_TYPE >
BSLS_KEYWORD_CONSTEXPR t_TYPE & forward_like (bslmf::MovableRef< t_TYPE > t, typename bsl::enable_if< bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&!bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *) BSLS_KEYWORD_NOEXCEPT
 
template<class t_MODEL , class t_TYPE >
BSLS_KEYWORD_CONSTEXPR t_TYPE & forward_like (t_TYPE &t, typename bsl::enable_if< bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&!bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *) BSLS_KEYWORD_NOEXCEPT
 
template<class t_MODEL , class t_TYPE >
BSLS_KEYWORD_CONSTEXPR MovableRef< const t_TYPE > forward_like (bslmf::MovableRef< t_TYPE > t, typename bsl::enable_if< !bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *) BSLS_KEYWORD_NOEXCEPT
 
template<class t_MODEL , class t_TYPE >
BSLS_KEYWORD_CONSTEXPR MovableRef< const t_TYPE > forward_like (t_TYPE &t, typename bsl::enable_if< !bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *) BSLS_KEYWORD_NOEXCEPT
 
template<class t_MODEL , class t_TYPE >
BSLS_KEYWORD_CONSTEXPR MovableRef< t_TYPE > forward_like (bslmf::MovableRef< t_TYPE > t, typename bsl::enable_if< !bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&!bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *) BSLS_KEYWORD_NOEXCEPT
 
template<class t_MODEL , class t_TYPE >
BSLS_KEYWORD_CONSTEXPR MovableRef< t_TYPE > forward_like (t_TYPE &t, typename bsl::enable_if< !bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&!bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *) BSLS_KEYWORD_NOEXCEPT
 
template<class t_T >
BSLS_KEYWORD_CONSTEXPR bsl::remove_reference< t_T >::type & moveIfSupported (t_T &t) BSLS_KEYWORD_NOEXCEPT
 

Static Public Member Functions

template<class t_TYPE >
static BSLS_KEYWORD_CONSTEXPR const t_TYPE & forward (const t_TYPE &t) BSLS_KEYWORD_NOEXCEPT
 
template<class t_TYPE >
static BSLS_KEYWORD_CONSTEXPR MovableRef< t_TYPE > forward (MovableRef< t_TYPE > t) BSLS_KEYWORD_NOEXCEPT
 
template<class t_MODEL , class t_TYPE >
static BSLA_NODISCARD BSLS_KEYWORD_CONSTEXPR const t_TYPE & forward_like (bslmf::MovableRef< t_TYPE > t, typename bsl::enable_if< bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *=0) BSLS_KEYWORD_NOEXCEPT
 
template<class t_MODEL , class t_TYPE >
static BSLA_NODISCARD BSLS_KEYWORD_CONSTEXPR const t_TYPE & forward_like (t_TYPE &t, typename bsl::enable_if< bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *=0) BSLS_KEYWORD_NOEXCEPT
 
template<class t_MODEL , class t_TYPE >
static BSLA_NODISCARD BSLS_KEYWORD_CONSTEXPR t_TYPE & forward_like (bslmf::MovableRef< t_TYPE > t, typename bsl::enable_if< bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&!bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *=0) BSLS_KEYWORD_NOEXCEPT
 
template<class t_MODEL , class t_TYPE >
static BSLA_NODISCARD BSLS_KEYWORD_CONSTEXPR t_TYPE & forward_like (t_TYPE &t, typename bsl::enable_if< bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&!bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *=0) BSLS_KEYWORD_NOEXCEPT
 
template<class t_MODEL , class t_TYPE >
static BSLA_NODISCARD BSLS_KEYWORD_CONSTEXPR MovableRef< const t_TYPE > forward_like (bslmf::MovableRef< t_TYPE > t, typename bsl::enable_if< !bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *=0) BSLS_KEYWORD_NOEXCEPT
 
template<class t_MODEL , class t_TYPE >
static BSLA_NODISCARD BSLS_KEYWORD_CONSTEXPR MovableRef< const t_TYPE > forward_like (t_TYPE &t, typename bsl::enable_if< !bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *=0) BSLS_KEYWORD_NOEXCEPT
 
template<class t_MODEL , class t_TYPE >
static BSLA_NODISCARD BSLS_KEYWORD_CONSTEXPR MovableRef< t_TYPE > forward_like (bslmf::MovableRef< t_TYPE > t, typename bsl::enable_if< !bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&!bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *=0) BSLS_KEYWORD_NOEXCEPT
 
template<class t_MODEL , class t_TYPE >
static BSLA_NODISCARD BSLS_KEYWORD_CONSTEXPR MovableRef< t_TYPE > forward_like (t_TYPE &t, typename bsl::enable_if< !bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&!bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *=0) BSLS_KEYWORD_NOEXCEPT
 
template<class t_TYPE >
static BSLS_KEYWORD_CONSTEXPR bsl::add_lvalue_reference< t_TYPE >::type declval () BSLS_KEYWORD_NOEXCEPT
 
template<class t_TYPE >
static BSLS_KEYWORD_CONSTEXPR const t_TYPE & forwardAsReference (const t_TYPE &t) BSLS_KEYWORD_NOEXCEPT
 
template<class t_TYPE >
static BSLS_KEYWORD_CONSTEXPR const t_TYPE & forwardAsReference (MovableRef< t_TYPE > t) BSLS_KEYWORD_NOEXCEPT
 
template<class t_TYPE >
static BSLS_KEYWORD_CONSTEXPR bsl::remove_reference< t_TYPE >::type & moveIfSupported (t_TYPE &t) BSLS_KEYWORD_NOEXCEPT
 

Detailed Description

This struct provides several functions that are specified in the <utility> header of the C++ Standard, in order to support the bsl library implementation without cycles into the native standard library, and on platforms with only C++03 compilers available, where library features may be emulated.

Member Function Documentation

◆ declval()

template<class t_TYPE >
static BSLS_KEYWORD_CONSTEXPR bsl::add_lvalue_reference< t_TYPE >::type bslmf::Util::declval ( )
static

◆ forward() [1/3]

template<class t_TYPE >
BSLS_KEYWORD_CONSTEXPR bslmf::MovableRef< t_TYPE > bslmf::Util::forward ( bslmf::MovableRef< t_TYPE >  t)
inline

◆ forward() [2/3]

template<class t_TYPE >
BSLS_KEYWORD_CONSTEXPR const t_TYPE & bslmf::Util::forward ( const t_TYPE &  t)
inlinestatic

◆ forward() [3/3]

template<class t_TYPE >
static BSLS_KEYWORD_CONSTEXPR MovableRef< t_TYPE > bslmf::Util::forward ( MovableRef< t_TYPE >  t)
static

◆ forward_like() [1/16]

template<class t_MODEL , class t_TYPE >
BSLS_KEYWORD_CONSTEXPR MovableRef< t_TYPE > bslmf::Util::forward_like ( bslmf::MovableRef< t_TYPE >  t,
typename bsl::enable_if< !bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&!bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *   
)
inline

◆ forward_like() [2/16]

template<class t_MODEL , class t_TYPE >
static BSLA_NODISCARD BSLS_KEYWORD_CONSTEXPR MovableRef< t_TYPE > bslmf::Util::forward_like ( bslmf::MovableRef< t_TYPE >  t,
typename bsl::enable_if< !bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&!bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *  = 0 
)
static

◆ forward_like() [3/16]

template<class t_MODEL , class t_TYPE >
BSLS_KEYWORD_CONSTEXPR MovableRef< const t_TYPE > bslmf::Util::forward_like ( bslmf::MovableRef< t_TYPE >  t,
typename bsl::enable_if< !bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *   
)
inline

◆ forward_like() [4/16]

template<class t_MODEL , class t_TYPE >
static BSLA_NODISCARD BSLS_KEYWORD_CONSTEXPR MovableRef< const t_TYPE > bslmf::Util::forward_like ( bslmf::MovableRef< t_TYPE >  t,
typename bsl::enable_if< !bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *  = 0 
)
static

◆ forward_like() [5/16]

template<class t_MODEL , class t_TYPE >
BSLS_KEYWORD_CONSTEXPR t_TYPE & bslmf::Util::forward_like ( bslmf::MovableRef< t_TYPE >  t,
typename bsl::enable_if< bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&!bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *   
)
inline

◆ forward_like() [6/16]

template<class t_MODEL , class t_TYPE >
static BSLA_NODISCARD BSLS_KEYWORD_CONSTEXPR t_TYPE & bslmf::Util::forward_like ( bslmf::MovableRef< t_TYPE >  t,
typename bsl::enable_if< bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&!bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *  = 0 
)
static

◆ forward_like() [7/16]

template<class t_MODEL , class t_TYPE >
BSLS_KEYWORD_CONSTEXPR const t_TYPE & bslmf::Util::forward_like ( bslmf::MovableRef< t_TYPE >  t,
typename bsl::enable_if< bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *   
)
inline

◆ forward_like() [8/16]

template<class t_MODEL , class t_TYPE >
static BSLA_NODISCARD BSLS_KEYWORD_CONSTEXPR const t_TYPE & bslmf::Util::forward_like ( bslmf::MovableRef< t_TYPE >  t,
typename bsl::enable_if< bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *  = 0 
)
static

◆ forward_like() [9/16]

template<class t_MODEL , class t_TYPE >
BSLS_KEYWORD_CONSTEXPR MovableRef< t_TYPE > bslmf::Util::forward_like ( t_TYPE &  t,
typename bsl::enable_if< !bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&!bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *   
)
inline

◆ forward_like() [10/16]

template<class t_MODEL , class t_TYPE >
static BSLA_NODISCARD BSLS_KEYWORD_CONSTEXPR MovableRef< t_TYPE > bslmf::Util::forward_like ( t_TYPE &  t,
typename bsl::enable_if< !bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&!bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *  = 0 
)
static

◆ forward_like() [11/16]

template<class t_MODEL , class t_TYPE >
BSLS_KEYWORD_CONSTEXPR MovableRef< const t_TYPE > bslmf::Util::forward_like ( t_TYPE &  t,
typename bsl::enable_if< !bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *   
)
inline

◆ forward_like() [12/16]

template<class t_MODEL , class t_TYPE >
static BSLA_NODISCARD BSLS_KEYWORD_CONSTEXPR MovableRef< const t_TYPE > bslmf::Util::forward_like ( t_TYPE &  t,
typename bsl::enable_if< !bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *  = 0 
)
static

◆ forward_like() [13/16]

template<class t_MODEL , class t_TYPE >
BSLS_KEYWORD_CONSTEXPR t_TYPE & bslmf::Util::forward_like ( t_TYPE &  t,
typename bsl::enable_if< bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&!bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *   
)
inline

◆ forward_like() [14/16]

template<class t_MODEL , class t_TYPE >
static BSLA_NODISCARD BSLS_KEYWORD_CONSTEXPR t_TYPE & bslmf::Util::forward_like ( t_TYPE &  t,
typename bsl::enable_if< bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&!bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *  = 0 
)
static

◆ forward_like() [15/16]

template<class t_MODEL , class t_TYPE >
BSLS_KEYWORD_CONSTEXPR const t_TYPE & bslmf::Util::forward_like ( t_TYPE &  t,
typename bsl::enable_if< bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *   
)
inline

◆ forward_like() [16/16]

template<class t_MODEL , class t_TYPE >
static BSLA_NODISCARD BSLS_KEYWORD_CONSTEXPR const t_TYPE & bslmf::Util::forward_like ( t_TYPE &  t,
typename bsl::enable_if< bslmf::MovableRefUtil::IsLvalueReference< t_MODEL >::value &&bsl::is_const< typename bslmf::MovableRefUtil::RemoveReference< t_MODEL >::type >::value >::type *  = 0 
)
static

◆ forwardAsReference() [1/2]

template<class t_TYPE >
BSLS_KEYWORD_CONSTEXPR const t_TYPE & bslmf::Util::forwardAsReference ( const t_TYPE &  t)
inlinestatic

◆ forwardAsReference() [2/2]

template<class t_TYPE >
BSLS_KEYWORD_CONSTEXPR const t_TYPE & bslmf::Util::forwardAsReference ( bslmf::MovableRef< t_TYPE >  t)
inlinestatic

◆ moveIfSupported() [1/2]

template<class t_T >
BSLS_KEYWORD_CONSTEXPR bsl::remove_reference< t_T >::type & bslmf::Util::moveIfSupported ( t_T &  t)
inline

◆ moveIfSupported() [2/2]

template<class t_TYPE >
static BSLS_KEYWORD_CONSTEXPR bsl::remove_reference< t_TYPE >::type & bslmf::Util::moveIfSupported ( t_TYPE &  t)
static

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