Quick Links:

bal | bbl | bdl | bsl

Public Types | Static Public Attributes

bslmf::IsBitwiseMoveable_Imp< t_TYPE, false > Struct Template Reference

#include <bslmf_isbitwisemoveable.h>

List of all members.

Public Types

typedef bsl::integral_constant
< bool, value
type

Static Public Attributes

static const bool value

Detailed Description

template<class t_TYPE>
struct bslmf::IsBitwiseMoveable_Imp< t_TYPE, false >

Core implementation of the IsBitwiseMoveable trait. A class is detected as being bitwise moveable iff it is trivially copyable or it has a nested trait declaration for the IsBitwiseMoveable trait. In C++03 however, detection of trivially copyable classes is imperfect and depends on programmer intervention. As many empty classes (including standard classes like std::less<T> would not be detected as being trivially copyable and, therefore, bitwise moveable, a heuristic is put in place whereby any type of one byte size is assumed to be bitwise moveable. See component-level documentation for this component for more details on this heuristic and how to avoid false positives.

See Component bslmf_isbitwisemoveable


Member Typedef Documentation

template<class t_TYPE >
typedef bsl::integral_constant<bool, value> bslmf::IsBitwiseMoveable_Imp< t_TYPE, false >::type

Member Data Documentation

template<class t_TYPE >
const bool bslmf::IsBitwiseMoveable_Imp< t_TYPE, false >::value [static]
Initial value:
 bsl::is_trivially_copyable<t_TYPE>::value ||
                              k_NestedBitwiseMoveableTrait ||
                              sizeof(t_TYPE) == 1

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