Quick Links:

bal | bbl | bdl | bsl

Public Types | Public Member Functions | Static Public Attributes

bsl::integral_constant< t_TYPE, t_VAL > Struct Template Reference

#include <bslmf_integralconstant.h>

Inheritance diagram for bsl::integral_constant< t_TYPE, t_VAL >:
bdlat_IsBasicEnumeration< TYPE > bdlat_TypeTraitBasicEnumeration::Metafunction< TYPE > bdlb::HasPrintMethod< TYPE > bdlf::Bind< RET, FUNC, LIST > bsl::is_array< t_TYPE > bsl::is_array< t_TYPE[]> bsl::is_array< t_TYPE[t_NUM_ELEMENTS]> bsl::is_const< t_TYPE > bsl::is_const< const t_TYPE > bsl::is_convertible_dispatch< const t_TYPE &, const t_TYPE & > bsl::is_convertible_dispatch< const t_TYPE &, const volatile t_TYPE & > bsl::is_convertible_dispatch< const t_TYPE &, t_TYPE & > bsl::is_convertible_dispatch< const t_TYPE &, volatile t_TYPE & > bsl::is_convertible_dispatch< const t_TYPE, const t_TYPE & > bsl::is_convertible_dispatch< const t_TYPE, const volatile t_TYPE & > bsl::is_convertible_dispatch< const t_TYPE, t_TYPE & > bsl::is_convertible_dispatch< const t_TYPE, volatile t_TYPE & > bsl::is_convertible_dispatch< const volatile t_TYPE &, const t_TYPE & > bsl::is_convertible_dispatch< const volatile t_TYPE &, const volatile t_TYPE & > bsl::is_convertible_dispatch< const volatile t_TYPE &, t_TYPE & > bsl::is_convertible_dispatch< const volatile t_TYPE &, volatile t_TYPE & > bsl::is_convertible_dispatch< const volatile t_TYPE, const t_TYPE & > bsl::is_convertible_dispatch< const volatile t_TYPE, const volatile t_TYPE & > bsl::is_convertible_dispatch< const volatile t_TYPE, t_TYPE & > bsl::is_convertible_dispatch< const volatile t_TYPE, volatile t_TYPE & > bsl::is_convertible_dispatch< t_FROM_TYPE, const volatile t_TO_TYPE & > bsl::is_convertible_dispatch< t_FROM_TYPE, volatile t_TO_TYPE & > bsl::is_convertible_dispatch< t_TYPE &, const t_TYPE & > bsl::is_convertible_dispatch< t_TYPE &, const volatile t_TYPE & > bsl::is_convertible_dispatch< t_TYPE &, t_TYPE & > bsl::is_convertible_dispatch< t_TYPE &, volatile t_TYPE & > bsl::is_convertible_dispatch< t_TYPE, const t_TYPE & > bsl::is_convertible_dispatch< t_TYPE, const volatile t_TYPE & > bsl::is_convertible_dispatch< t_TYPE, volatile t_TYPE & > bsl::is_convertible_dispatch< volatile t_TYPE &, const t_TYPE & > bsl::is_convertible_dispatch< volatile t_TYPE &, const volatile t_TYPE & > bsl::is_convertible_dispatch< volatile t_TYPE &, t_TYPE & > bsl::is_convertible_dispatch< volatile t_TYPE &, volatile t_TYPE & > bsl::is_convertible_dispatch< volatile t_TYPE, const t_TYPE & > bsl::is_convertible_dispatch< volatile t_TYPE, const volatile t_TYPE & > bsl::is_convertible_dispatch< volatile t_TYPE, t_TYPE & > bsl::is_convertible_dispatch< volatile t_TYPE, volatile t_TYPE & > bsl::is_copy_constructible< const t_TYPE[]> bsl::is_copy_constructible< const t_TYPE[t_LEN]> bsl::is_copy_constructible< const volatile t_TYPE[]> bsl::is_copy_constructible< const volatile t_TYPE[t_LEN]> bsl::is_copy_constructible< t_TYPE[]> bsl::is_copy_constructible< t_TYPE[t_LEN]> bsl::is_copy_constructible< volatile t_TYPE[]> bsl::is_copy_constructible< volatile t_TYPE[t_LEN]> bsl::is_empty< const t_TYPE > bsl::is_empty< volatile t_TYPE > bsl::Is_Empty_Class_Imp< t_TYPE, IS_CLASS > bsl::Is_Empty_Imp< t_TYPE, class > bsl::is_enum< t_TYPE * > bsl::is_enum< void > bsl::is_floating_point< t_TYPE > bsl::is_floating_point< const t_TYPE > bsl::is_floating_point< double > bsl::is_floating_point< float > bsl::is_floating_point< long double > bsl::is_floating_point< volatile t_TYPE > bsl::is_function< t_TYPE & > bsl::is_integral< t_TYPE > bsl::is_integral< bool > bsl::is_integral< char > bsl::is_integral< int > bsl::is_integral< long int > bsl::is_integral< long long int > bsl::is_integral< short int > bsl::is_integral< signed char > bsl::is_integral< unsigned char > bsl::is_integral< unsigned int > bsl::is_integral< unsigned long int > bsl::is_integral< unsigned long long int > bsl::is_integral< unsigned short int > bsl::is_integral< wchar_t > bsl::is_lvalue_reference< t_TYPE > bsl::is_lvalue_reference< t_TYPE & > bsl::is_member_function_pointer< t_TYPE > bsl::is_member_object_pointer< t_TYPE > bsl::is_member_object_pointer< t_TYPE t_CLASS::* > bsl::is_member_object_pointer< t_TYPE t_CLASS::*const volatile > bsl::is_member_object_pointer< t_TYPE t_CLASS::*volatile > bsl::is_member_pointer< t_TYPE > bsl::is_member_pointer< t_TARGET_TYPE t_HOST_TYPE::* > bsl::is_member_pointer< t_TARGET_TYPE t_HOST_TYPE::*const  > bsl::is_member_pointer< t_TARGET_TYPE t_HOST_TYPE::*const volatile > bsl::is_member_pointer< t_TARGET_TYPE t_HOST_TYPE::*volatile > bsl::is_pointer< t_TYPE > bsl::is_pointer< t_TYPE * > bsl::is_pointer< t_TYPE *const  > bsl::is_pointer< t_TYPE *const volatile > bsl::is_pointer< t_TYPE *volatile > bsl::is_reference< t_TYPE > bsl::is_reference< t_TYPE & > bsl::is_rvalue_reference< t_TYPE > bsl::is_same< t_TYPE1, t_TYPE2 > bsl::is_same< t_TYPE, t_TYPE > bsl::is_trivially_copyable< BloombergLP::bdlde::Base64DecoderOptions > bsl::is_trivially_copyable< BloombergLP::bdlde::Base64EncoderOptions > bsl::is_trivially_copyable< BloombergLP::bslmf::Nil > bsl::is_trivially_copyable< BloombergLP::bsls::TimeInterval > bsl::is_trivially_copyable< t_TYPE & > bsl::is_void< t_TYPE > bsl::is_void< const void > bsl::is_void< const volatile void > bsl::is_void< void > bsl::is_void< volatile void > bsl::is_volatile< t_TYPE > bsl::is_volatile< volatile t_TYPE > bsl::IsStdAllocator< ALLOC, class, class > bsl::IsStdAllocator< ::bsl::allocator< TYPE > > bsl::IsStdAllocator< std::allocator< TYPE > > bsl::Span_Utility::IsBSLArrayImpl< TP > bsl::Span_Utility::IsBSLArrayImpl< bsl::array< TP, SZ > > bsl::Span_Utility::IsSpanCompatibleContainer< TP, ELEMENT_TYPE, class > bsl::Span_Utility::IsSpanCompatibleContainer< TP, ELEMENT_TYPE, bsl::void_t< typename bsl::enable_if<!IsSpan< TP >::value, bsl::nullptr_t >::type, typename bsl::enable_if< !IsBSLArray< TP >::value, bsl::nullptr_t >::type, typename bsl::enable_if< !IsSTDArray< TP >::value, bsl::nullptr_t >::type, typename bsl::enable_if< !bsl::is_array< TP >::value, bsl::nullptr_t >::type, decltype(data(std::declval< TP >())), decltype(size(std::declval< TP >())), typename bsl::enable_if< Span_Utility::IsArrayConvertible< typename bsl::remove_pointer< decltype(data(std::declval< TP & >()))>::type, ELEMENT_TYPE >::value, bsl::nullptr_t >::type > > bsl::Span_Utility::IsSpanImpl< TP > bsl::Span_Utility::IsSpanImpl< span< TP, SZ > > bsl::Span_Utility::IsSTDArrayImpl< TP > bsl::Span_Utility::IsSTDArrayImpl< std::array< TP, SZ > > bsl::String_IsConvertibleToCString< CHAR_TYPE, const CHAR_TYPE(&)[]> bsl::String_IsConvertibleToStringView< CHAR_TYPE, CHAR_TRAITS, const CHAR_TYPE(&)[]> bslalg::ConstructorProxy_IsProxy< TYPE > bslalg::ConstructorProxy_IsProxy< ConstructorProxy< TYPE > > bslalg::HasStlIterators< bsl::basic_string< CHAR_TYPE, CHAR_TRAITS, ALLOC > > bslalg::TypeTraitNil::Metafunction< TYPE > bslalg::TypeTraitPair::Metafunction< TYPE > bslma::AllocatorTraits_PropOnCopyAssign< ALLOCATOR_TYPE, bool > bslma::AllocatorTraits_PropOnMoveAssign< ALLOC, bool > bslma::AllocatorTraits_PropOnSwap< ALLOC, bool > bslma::UsesBslmaAllocator< TYPE > bslma::UsesBslmaAllocator< BloombergLP::bdlbb::Blob > bslma::UsesBslmaAllocator< bsl::basic_istringstream< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR > > bslma::UsesBslmaAllocator< bsl::basic_ostringstream< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR > > bslma::UsesBslmaAllocator< bsl::basic_stringbuf< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR > > bslma::UsesBslmaAllocator< bsl::basic_stringstream< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR > > bslma::UsesBslmaAllocator< bsl::optional< TYPE, false > > bslma::UsesBslmaAllocator< TYPE & > bslma::UsesBslmaAllocator< TYPE * > bslmf::DetectNestedTrait< t_TYPE, t_TRAIT > bslmf::DetectNestedTrait< const t_TYPE, t_TRAIT > bslmf::DetectNestedTrait< const volatile t_TYPE, t_TRAIT > bslmf::DetectNestedTrait< volatile t_TYPE, t_TRAIT > bslmf::IsArray< t_TYPE > bslmf::IsBitwiseEqualityComparable< double > bslmf::IsBitwiseEqualityComparable< float > bslmf::IsBitwiseEqualityComparable< long double > bslmf::IsBitwiseEqualityComparable< void > bslmf::IsBitwiseEqualityComparable_Imp< t_TYPE, BSLMF_VOIDTYPE(int t_TYPE::*)> bslmf::IsBitwiseMoveable< bslh::SipHashAlgorithm > bslmf::IsBitwiseMoveable< void > bslmf::IsBitwiseMoveable_Imp< t_TYPE, bool > bslmf::IsClass_Imp< t_TYPE, class > bslmf::IsClass_Imp< t_TYPE, BSLMF_VOIDTYPE(int t_TYPE::*)> bslmf::IsConvertible_Conditional< t_FROM_TYPE, t_TO_TYPE > bslmf::IsConvertible_FilterNeverConvertible< t_FROM_TYPE, t_TO_TYPE > bslmf::IsCopyConstructible_Imp< t_TYPE *volatile > bslmf::IsCopyConstructible_Imp< void > bslmf::IsCopyConstructible_Imp< volatile void > bslmf::IsEnum_TestConversions< COMPLETE_TYPE > bslmf::IsFundamental< t_TYPE > bslmf::IsFundamental< t_TYPE & > bslmf::IsFundamental_Imp< t_TYPE > bslmf::IsFundamental_Imp< bool > bslmf::IsFundamental_Imp< char > bslmf::IsFundamental_Imp< double > bslmf::IsFundamental_Imp< float > bslmf::IsFundamental_Imp< int > bslmf::IsFundamental_Imp< long > bslmf::IsFundamental_Imp< long double > bslmf::IsFundamental_Imp< long long > bslmf::IsFundamental_Imp< short > bslmf::IsFundamental_Imp< signed char > bslmf::IsFundamental_Imp< unsigned char > bslmf::IsFundamental_Imp< unsigned int > bslmf::IsFundamental_Imp< unsigned long > bslmf::IsFundamental_Imp< unsigned long long > bslmf::IsFundamental_Imp< unsigned short > bslmf::IsFundamental_Imp< void > bslmf::IsFundamental_Imp< wchar_t > bslmf::IsNil< t_T > bslmf::IsNil< Nil > bslmf::IsNothrowMoveConstructible_Impl< const t_TYPE[]> bslmf::IsNothrowMoveConstructible_Impl< const t_TYPE[t_LEN]> bslmf::IsNothrowMoveConstructible_Impl< const volatile t_TYPE, BSLMF_VOIDTYPE(intt_TYPE::*)> bslmf::IsNothrowMoveConstructible_Impl< const volatile t_TYPE[]> bslmf::IsNothrowMoveConstructible_Impl< const volatile t_TYPE[t_LEN]> bslmf::IsNothrowMoveConstructible_Impl< t_TYPE & > bslmf::IsNothrowMoveConstructible_Impl< t_TYPE[]> bslmf::IsNothrowMoveConstructible_Impl< t_TYPE[t_LEN]> bslmf::IsNothrowMoveConstructible_Impl< volatile t_TYPE, BSLMF_VOIDTYPE(intt_TYPE::*)> bslmf::IsNothrowMoveConstructible_Impl< volatile t_TYPE[]> bslmf::IsNothrowMoveConstructible_Impl< volatile t_TYPE[t_LEN]> bslmf::IsPair< t_TYPE > bslmf::IsReferenceWrapper< t_TYPE > bslmf::IsSame< t_TYPE1, t_TYPE2 > bslmf::IsTransparentPredicate< t_COMPARATOR, t_KEY, class > bslmf::IsTransparentPredicate< t_COMPARATOR, t_KEY, BSLMF_VOIDTYPE(typename t_COMPARATOR::is_transparent)> bslmf::IsTriviallyCopyable_DetectTrait< t_TYPE, t_K_INTRINSIC > bslmf::IsTriviallyCopyable_DetectTrait< t_TYPE, true > bslmf::IsTriviallyCopyable_Intrinsic< void > bslmf::IsTriviallyDefaultConstructible_Imp< void > bslmf::MetaInt< 0 > bslmf::MetaInt< 1 > bslmf::UsesAllocator_Imp< t_TYPE, t_ALLOC, class > bslmf::DetectNestedTrait< TYPE, HasStlIterators > bsl::Span_Utility::IsBSLArrayImpl< bsl::remove_cv< TP >::type > bsl::Span_Utility::IsSpanImpl< bsl::remove_cv< TP >::type > bsl::Span_Utility::IsSTDArrayImpl< bsl::remove_cv< TP >::type >

List of all members.

Public Types

typedef t_TYPE value_type
typedef integral_constant type

Public Member Functions

 integral_constant ()
 integral_constant (const integral_constant &)
integral_constant operator= (const integral_constant &)
 ~integral_constant ()
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, t_TYPE t_VAL>
struct bsl::integral_constant< t_TYPE, t_VAL >

Generate a unique type for the given t_TYPE and t_VAL. This struct is used for compile-time dispatch of overloaded functions and as the base class for many metafunctions.

See Component bslmf_integralconstant


Member Typedef Documentation

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

Constructor & Destructor Documentation

template<class t_TYPE, t_TYPE t_VAL>
bsl::integral_constant< t_TYPE, t_VAL >::integral_constant (  ) 
template<class t_TYPE, t_TYPE t_VAL>
bsl::integral_constant< t_TYPE, t_VAL >::integral_constant ( const integral_constant< t_TYPE, t_VAL > &   ) 
template<class t_TYPE, t_TYPE t_VAL>
bsl::integral_constant< t_TYPE, t_VAL >::~integral_constant (  ) 

Member Function Documentation

template<class t_TYPE, t_TYPE t_VAL>
integral_constant bsl::integral_constant< t_TYPE, t_VAL >::operator= ( const integral_constant< t_TYPE, t_VAL > &   ) 
template<class t_TYPE, t_TYPE t_VAL>
BSLS_KEYWORD_CONSTEXPR bsl::integral_constant< t_TYPE, t_VAL >::operator value_type (  )  const

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]

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