BDE 4.39.x Production Release
Loading...
Searching...
No Matches
bdlat_typetraits

Detailed Description

Provide compile-time traits for generated types.

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.

Classes

struct  bdlat_IsBasicChoice< TYPE >
 
struct  bdlat_IsBasicSequence< TYPE >
 
struct  bdlat_IsBasicEnumeration< TYPE >
 
struct  bdlat_HasFallbackEnumerator< TYPE >
 
struct  bdlat_IsBasicCustomizedType< TYPE >
 
struct  bdlat_UsesDefaultValueFlag< TYPE >
 
struct  bdlat_BasicEnumerationWrapper< TYPE >
 
struct  bdlat_TypeTraitBasicChoice
 
struct  bdlat_TypeTraitBasicSequence
 
struct  bdlat_TypeTraitBasicEnumeration
 
struct  bdlat_TypeTraitHasFallbackEnumerator
 
struct  bdlat_TypeTraitBasicCustomizedType
 

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:111

◆ 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 baljsn_encoder_testtypes.h:76
Definition bdlbb_blob.h:579

◆ 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:139

◆ 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:155
This trait may be declared for "enumeration" types.
Definition bdlat_typetraits.h:123

◆ 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:312
Definition bdlat_typetraits.h:133

◆ 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:117

◆ 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)