BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bdlat_typetraits

Classes

struct  bdlat_IsBasicChoice< TYPE >
 This trait may be declared for "choice" types. More...
 
struct  bdlat_IsBasicSequence< TYPE >
 This trait may be declared for "sequence" types. More...
 
struct  bdlat_IsBasicEnumeration< TYPE >
 This trait may be declared for "enumeration" types. More...
 
struct  bdlat_HasFallbackEnumerator< TYPE >
 
struct  bdlat_IsBasicCustomizedType< TYPE >
 This trait may be declared for "customized type" types. More...
 
struct  bdlat_BasicEnumerationWrapper< TYPE >
 
struct  bdlat_TypeTraitBasicChoice
 Legacy adaptor for bdlat_IsBasicChoice. More...
 
struct  bdlat_TypeTraitBasicSequence
 Legacy adaptor for bdlat_IsBasicSequence. More...
 
struct  bdlat_TypeTraitBasicEnumeration
 Legacy adaptor for bdlat_IsBasicEnumeration. More...
 
struct  bdlat_TypeTraitHasFallbackEnumerator
 Legacy adaptor for bdlat_HasFallbackEnumerator. More...
 
struct  bdlat_TypeTraitBasicCustomizedType
 Legacy adaptor for bdlat_IsBasicCustomizedType. More...
 

Macros

#define BDLAT_DECL_CHOICE_TRAITS(ClassName)
 
#define BDLAT_DECL_CHOICE_WITH_ALLOCATOR_TRAITS(ClassName)
 
#define BDLAT_DECL_CHOICE_WITH_BITWISEMOVEABLE_TRAITS(ClassName)
 
#define BDLAT_DECL_CHOICE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS(ClassName)
 
#define BDLAT_DECL_SEQUENCE_TRAITS(ClassName)
 
#define BDLAT_DECL_SEQUENCE_WITH_ALLOCATOR_TRAITS(ClassName)
 
#define BDLAT_DECL_SEQUENCE_WITH_BITWISEMOVEABLE_TRAITS(ClassName)
 
#define BDLAT_DECL_SEQUENCE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS(ClassName)
 
#define BDLAT_DECL_ENUMERATION_TRAITS(ClassName)
 
#define BDLAT_DECL_ENUMERATION_WITH_FALLBACK_TRAITS(ClassName)
 
#define BDLAT_DECL_CUSTOMIZEDTYPE_TRAITS(ClassName)
 
#define BDLAT_DECL_CUSTOMIZEDTYPE_WITH_ALLOCATOR_TRAITS(ClassName)
 
#define BDLAT_DECL_CUSTOMIZEDTYPE_WITH_BITWISEMOVEABLE_TRAITS(ClassName)
 
#define BDLAT_DECL_CUSTOMIZEDTYPE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS(ClassName)
 

Detailed Description

Outline

Purpose

Provide compile-time traits for generated types.

Classes

Macros

See also

Description

This component provides compile-time traits that pertain to generated types. The five traits provided, bdlat_IsBasicChoice, bdlat_IsBasicSequence, bdlat_IsBasicEnumeration, bdlat_HasFallbackEnumerator, bdlat_IsBasicCustomizedType are used for generated "choice" types, "sequence" types, "enumeration", "enumeration" with fallback enumerator, and "customized type" types respectively.

Usage

This component is intended to be used by components generated using the bas_codegen.pl tool.

Macro Definition Documentation

◆ BDLAT_DECL_CHOICE_TRAITS

#define BDLAT_DECL_CHOICE_TRAITS (   ClassName)
Value:
template <> \
struct bdlat_IsBasicChoice<ClassName> : bsl::true_type { }; \
namespace bdlb { \
template <> \
struct HasPrintMethod<ClassName> : bsl::true_type { }; \
}
Definition bdlb_algorithmworkaroundutil.h:74
This trait may be declared for "choice" types.
Definition bdlat_typetraits.h:109

◆ BDLAT_DECL_CHOICE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS

#define BDLAT_DECL_CHOICE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS (   ClassName)
Value:
namespace bslma { \
template <> \
struct UsesBslmaAllocator<ClassName> : bsl::true_type { }; \
} \
namespace bslmf { \
template <> \
struct IsBitwiseMoveable<ClassName> : bsl::true_type { }; \
} \
BDLAT_DECL_CHOICE_TRAITS(ClassName)
Definition balxml_encoderoptions.h:68
Definition bdlbb_blob.h:576

◆ BDLAT_DECL_CHOICE_WITH_ALLOCATOR_TRAITS

#define BDLAT_DECL_CHOICE_WITH_ALLOCATOR_TRAITS (   ClassName)
Value:
namespace bslma { \
template <> \
struct UsesBslmaAllocator<ClassName> : bsl::true_type { }; \
} \
BDLAT_DECL_CHOICE_TRAITS(ClassName)

◆ BDLAT_DECL_CHOICE_WITH_BITWISEMOVEABLE_TRAITS

#define BDLAT_DECL_CHOICE_WITH_BITWISEMOVEABLE_TRAITS (   ClassName)
Value:
namespace bslmf { \
template <> \
struct IsBitwiseMoveable<ClassName> : bsl::true_type { }; \
} \
BDLAT_DECL_CHOICE_TRAITS(ClassName)

◆ BDLAT_DECL_CUSTOMIZEDTYPE_TRAITS

#define BDLAT_DECL_CUSTOMIZEDTYPE_TRAITS (   ClassName)
Value:
template <> \
struct bdlat_IsBasicCustomizedType<ClassName> : bsl::true_type { }; \
namespace bdlb { \
template <> \
struct HasPrintMethod<ClassName> : bsl::true_type { }; \
}
This trait may be declared for "customized type" types.
Definition bdlat_typetraits.h:137

◆ BDLAT_DECL_CUSTOMIZEDTYPE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS

#define BDLAT_DECL_CUSTOMIZEDTYPE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS (   ClassName)
Value:
namespace bslma { \
template <> \
struct UsesBslmaAllocator<ClassName> : bsl::true_type { }; \
} \
namespace bslmf { \
template <> \
struct IsBitwiseMoveable<ClassName> : bsl::true_type { }; \
} \
BDLAT_DECL_CUSTOMIZEDTYPE_TRAITS(ClassName)

◆ BDLAT_DECL_CUSTOMIZEDTYPE_WITH_ALLOCATOR_TRAITS

#define BDLAT_DECL_CUSTOMIZEDTYPE_WITH_ALLOCATOR_TRAITS (   ClassName)
Value:
namespace bslma { \
template <> \
struct UsesBslmaAllocator<ClassName> : bsl::true_type { }; \
} \
BDLAT_DECL_CUSTOMIZEDTYPE_TRAITS(ClassName)

◆ BDLAT_DECL_CUSTOMIZEDTYPE_WITH_BITWISEMOVEABLE_TRAITS

#define BDLAT_DECL_CUSTOMIZEDTYPE_WITH_BITWISEMOVEABLE_TRAITS (   ClassName)
Value:
namespace bslmf { \
template <> \
struct IsBitwiseMoveable<ClassName> : bsl::true_type { }; \
} \
BDLAT_DECL_CUSTOMIZEDTYPE_TRAITS(ClassName)

◆ BDLAT_DECL_ENUMERATION_TRAITS

#define BDLAT_DECL_ENUMERATION_TRAITS (   ClassName)
Value:
namespace bslmf { \
template <> \
struct IsBitwiseMoveable<ClassName::Value> : bsl::true_type { }; \
} \
template <> \
struct bdlat_IsBasicEnumeration<ClassName::Value> : bsl::true_type { }; \
template <> \
struct bdlat_BasicEnumerationWrapper<ClassName::Value> : ClassName { \
typedef ClassName Wrapper; \
};
Definition bdlat_typetraits.h:146
This trait may be declared for "enumeration" types.
Definition bdlat_typetraits.h:121

◆ BDLAT_DECL_ENUMERATION_WITH_FALLBACK_TRAITS

#define BDLAT_DECL_ENUMERATION_WITH_FALLBACK_TRAITS (   ClassName)
Value:
template <> \
struct bdlat_HasFallbackEnumerator<ClassName::Value> : bsl::true_type { };
#define BDLAT_DECL_ENUMERATION_TRAITS(ClassName)
Definition bdlat_typetraits.h:293
Definition bdlat_typetraits.h:131

◆ BDLAT_DECL_SEQUENCE_TRAITS

#define BDLAT_DECL_SEQUENCE_TRAITS (   ClassName)
Value:
template <> \
struct bdlat_IsBasicSequence<ClassName> : bsl::true_type { }; \
namespace bdlb { \
template <> \
struct HasPrintMethod<ClassName> : bsl::true_type { }; \
}
This trait may be declared for "sequence" types.
Definition bdlat_typetraits.h:115

◆ BDLAT_DECL_SEQUENCE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS

#define BDLAT_DECL_SEQUENCE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS (   ClassName)
Value:
namespace bslma { \
template <> \
struct UsesBslmaAllocator<ClassName> : bsl::true_type { }; \
} \
namespace bslmf { \
template <> \
struct IsBitwiseMoveable<ClassName> : bsl::true_type { }; \
} \
BDLAT_DECL_SEQUENCE_TRAITS(ClassName)

◆ BDLAT_DECL_SEQUENCE_WITH_ALLOCATOR_TRAITS

#define BDLAT_DECL_SEQUENCE_WITH_ALLOCATOR_TRAITS (   ClassName)
Value:
namespace bslma { \
template <> \
struct UsesBslmaAllocator<ClassName> : bsl::true_type { }; \
} \
BDLAT_DECL_SEQUENCE_TRAITS(ClassName)

◆ BDLAT_DECL_SEQUENCE_WITH_BITWISEMOVEABLE_TRAITS

#define BDLAT_DECL_SEQUENCE_WITH_BITWISEMOVEABLE_TRAITS (   ClassName)
Value:
namespace bslmf { \
template <> \
struct IsBitwiseMoveable<ClassName> : bsl::true_type { }; \
} \
BDLAT_DECL_SEQUENCE_TRAITS(ClassName)