Quick Links: |
#include <bdlat_typecategory.h>
Public Types | |
enum | { VALUE = 0 } |
Types that have more than one of the following traits:
bdlat_ArrayFunctions::IsArray<TYPE>VALUE
bdlat_ChoiceFunctions::IsChoice<TYPE>VALUE
bdlat_CustomizedTypeFunctions::IsCustomizedType<TYPE>VALUE
bdlat_EnumFunctions::IsEnumeration<TYPE>VALUE
bdlat_NullableValueFunctions::IsNullableValue<TYPE>VALUE
bdlat_SequenceFunctions::IsSequence<TYPE>VALUE
are automatically recognized as dynamic types. However, there may exist types that have none or only one of the above traits and still be considered dynamic (e.g., "variants" of simple types etc). In order for the bdlat
framework to treat these types as dynamic types, this struct
must be specialized with a VALUE
of 1, and the bdlat_TypeCategoryFunctions::select
function must be implemented, along with the appropriate bdlat_TypeCategoryFunctions::manipulate*
and bdlat_TypeCategoryFunctions::access*
functions. Inside these manipulate*
and access*
functions, the dynamic object should expose its real type.
See Component bdlat_typecategory