Quick Links:

bal | bbl | bdl | bsl

Public Types | Public Member Functions | Static Public Attributes

bsl::Is_Empty_Class_Imp< t_TYPE, IS_CLASS > Struct Template Reference
[Component bslmf_isempty]

#include <bslmf_isempty.h>

Inheritance diagram for bsl::Is_Empty_Class_Imp< t_TYPE, IS_CLASS >:
bsl::integral_constant< t_TYPE, t_VAL >

List of all members.

Public Types

typedef t_TYPE value_type
typedef integral_constant type

Public Member Functions

BSLS_KEYWORD_CONSTEXPR operator value_type () const BSLS_KEYWORD_NOEXCEPT

Static Public Attributes

static
BSLS_KEYWORD_CONSTEXPR_MEMBER
t_TYPE 
value = t_VAL

Detailed Description

template<class t_TYPE, bool IS_CLASS = sizeof(t_TYPE) == sizeof(Is_Empty_Size)>
struct bsl::Is_Empty_Class_Imp< t_TYPE, IS_CLASS >

Private class: do not use outside of bslmf_isempty component. This meta-function derives from false_type unless (the template parameter) t_TYPE is exactly the same size as a known empty type, in which case the following partial specialization is chosen. This test filters out the majority of problems with union types that are classes, and would produce a hard, non-SFINAEable error trying to a create a derived class to compare size in the next test.

See Component bslmf_isempty


Member Typedef Documentation

template<class t_TYPE, t_TYPE t_VAL>
typedef t_TYPE bsl::integral_constant< t_TYPE, t_VAL >::value_type [inherited]
template<class t_TYPE, t_TYPE t_VAL>
typedef integral_constant bsl::integral_constant< t_TYPE, t_VAL >::type [inherited]

Member Function Documentation

template<class t_TYPE, t_TYPE t_VAL>
BSLS_KEYWORD_CONSTEXPR bsl::integral_constant< t_TYPE, t_VAL >::operator value_type (  )  const [inherited]

Return t_VAL.


Member Data Documentation

template<class t_TYPE, t_TYPE t_VAL>
BSLS_KEYWORD_CONSTEXPR_MEMBER t_TYPE bsl::integral_constant< t_TYPE, t_VAL >::value = t_VAL [static, inherited]

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