Provide compile-time traits for generated types.
More...
Detailed Description
- Outline
-
-
- Purpose:
- Provide compile-time traits for generated types.
-
- Classes:
bdlat_IsBasicChoice<TYPE> | true for generated "choice" types |
bdlat_IsBasicSequence<TYPE> | true for generated "sequence" types |
bdlat_IsBasicEnumeration<TYPE> | true for generated "enumeration" types |
bdlat_BasicEnumerationWrapper<TYPE> | characteristics of enumeration type |
bdlat_IsBasicCustomizedType<TYPE> | true for generated "customized" types |
-
- Macros:
- BDLAT_DECL_CHOICE_TRAITS(ClassName) BDLAT_DECL_CHOICE_WITH_ALLOCATOR_TRAITS(ClassName) BDLAT_DECL_CHOICE_WITH_BITWISEMOVEABLE_TRAITS(ClassName) BDLAT_DECL_CHOICE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS(ClassName) BDLAT_DECL_SEQUENCE_TRAITS(ClassName) BDLAT_DECL_SEQUENCE_WITH_ALLOCATOR_TRAITS(ClassName) BDLAT_DECL_SEQUENCE_WITH_BITWISEMOVEABLE_TRAITS(ClassName) BDLAT_DECL_SEQUENCE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS(ClassName) BDLAT_DECL_ENUMERATION_TRAITS(ClassName) BDLAT_DECL_CUSTOMIZEDTYPE_TRAITS(ClassName) BDLAT_DECL_CUSTOMIZEDTYPE_WITH_ALLOCATOR_TRAITS(ClassName) BDLAT_DECL_CUSTOMIZEDTYPE_WITH_BITWISEMOVEABLE_TRAITS(ClassName) BDLAT_DECL_CUSTOMIZEDTYPE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS(ClassName)
- See also:
-
- Description:
- This component provides compile-time traits that pertain to generated types. The four traits provided,
bdlat_IsBasicChoice
, bdlat_IsBasicSequence
, bdlat_IsBasicEnumeration
, bdlat_IsBasicCustomizedType
are used for generated "choice" types, "sequence" types, "enumeration", and "customized type" types respectively.
-
- Usage:
- This component is intended to be used by components generated using the
bas_codegen.pl
tool.
Define Documentation
#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 |
) |
|
Value:namespace bslma { \
template <> \
struct UsesBslmaAllocator<ClassName> : bsl::true_type { }; \
} \
namespace bslmf { \
template <> \
struct IsBitwiseMoveable<ClassName> : bsl::true_type { }; \
} \
BDLAT_DECL_CHOICE_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 |
) |
|
Value:namespace bslma { \
template <> \
struct UsesBslmaAllocator<ClassName> : bsl::true_type { }; \
} \
namespace bslmf { \
template <> \
struct IsBitwiseMoveable<ClassName> : bsl::true_type { }; \
} \
BDLAT_DECL_SEQUENCE_TRAITS(ClassName)
#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; \
};
#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 |
) |
|