8#ifndef INCLUDED_BDLAT_ENUMFUNCTIONS
9#define INCLUDED_BDLAT_ENUMFUNCTIONS
362#include <bdlscm_version.h>
376#include <bsl_string.h>
394 template <
class TYPE>
398 bslalg::HasTrait<TYPE, bdlat_TypeTraitBasicEnumeration>::value> {
407 template <
class TYPE>
411 bslalg::HasTrait<TYPE, bdlat_TypeTraitHasFallbackEnumerator>::value> {
419 template <
class TYPE>
426 template <
class TYPE>
427 int fromString(TYPE *result,
const char *
string,
int stringLength);
432 template <
class TYPE>
439 template <
class TYPE>
444 template <
class TYPE>
449 template <
class TYPE>
450 void toInt(
int *result,
const TYPE& value);
454 template <
class TYPE>
475 template <
class TYPE>
477 template <
class TYPE>
480 template <
class TYPE>
482 template <
class TYPE>
485 template <
class TYPE>
487 template <
class TYPE>
520 template <
class TYPE>
523 template <
class TYPE>
538 template <
class TYPE>
542 template <
class TYPE>
545 template <
class TYPE>
557 template <
class TYPE>
569 template <
class TYPE>
587 return bdlat_enumFromInt(result, number);
647#if !defined(BSLS_PLATFORM_CMP_SUN)
651 return bdlat_enumMakeFallback(result);
657 static_cast<void>(result);
665#if !defined(BSLS_PLATFORM_CMP_SUN)
669 return bdlat_enumHasFallback(value);
676 static_cast<void>(value);
684#if !defined(BSLS_PLATFORM_CMP_SUN)
688 return bdlat_enumIsFallback(value);
695 static_cast<void>(value);
710 return Wrapper::fromInt(result, number);
723 return Wrapper::fromString(result,
string, stringLength);
730#if !defined(BSLS_PLATFORM_CMP_SUN)
738 return Wrapper::makeFallback(result);
749 *result =
static_cast<int>(value);
761 *result = Wrapper::toString(value);
768#if !defined(BSLS_PLATFORM_CMP_SUN)
776 return Wrapper::hasFallback(value);
783#if !defined(BSLS_PLATFORM_CMP_SUN)
791 return Wrapper::isFallback(value);
Definition bslstl_string.h:1252
static bool hasFallback(const TYPE &value, bsl::true_type)
Definition bdlat_enumfunctions.h:662
static int makeFallback(TYPE *result, bsl::true_type)
Definition bdlat_enumfunctions.h:645
static bool isFallback(const TYPE &value, bsl::true_type)
Definition bdlat_enumfunctions.h:681
#define BSLMF_ASSERT(expr)
Definition bslmf_assert.h:231
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
void bdlat_enumToString(bsl::string *result, const EnumRef &value)
Definition bdlar_enumref.h:318
int bdlat_enumFromString(EnumRef *result, const char *string, int stringLength)
Definition bdlar_enumref.h:288
void bdlat_enumToInt(int *result, const EnumRef &value)
Definition bdlar_enumref.h:312
Definition bdlar_enumref.h:437
void bdlat_enumToString(bsl::string *result, const TYPE &value)
void toInt(int *result, const TYPE &value)
int fromString(TYPE *result, const char *string, int stringLength)
int bdlat_enumFromInt(TYPE *result, int number)
bool bdlat_enumHasFallback(const TYPE &value)
bool bdlat_enumIsFallback(const TYPE &value)
int fromInt(TYPE *result, int number)
void toString(bsl::string *result, const TYPE &value)
int bdlat_enumFromString(TYPE *result, const char *string, int stringLength)
void bdlat_enumToInt(int *result, const TYPE &value)
int bdlat_enumMakeFallback(TYPE *result)
int makeFallback(TYPE *result)
bool hasFallback(const TYPE &value)
bool isFallback(const TYPE &value)
Definition bdlat_typetraits.h:155
Definition bdlat_enumfunctions.h:411
Definition bdlat_enumfunctions.h:398
Definition bdlat_enumfunctions.h:472
This trait may be declared for "enumeration" types.
Definition bdlat_typetraits.h:123
Definition bslmf_integralconstant.h:261
Definition bslalg_hastrait.h:117