template <> \
struct PODTraits< PENUM , PTYPE > \
{ \
static const PlainOldDataType pod_enum = PENUM ; \
typedef PTYPE value_type ; \
static const char * name() { return PNAME ; } \
static PTYPE default_value() \
{ return ( DFLT ) ; } \
static size_t numBytes() \
{ return sizeof( PTYPE ) ; } \
}; \
typedef PODTraits< PENUM , PTYPE > PTDEF
Unfortunately, C++ only allows for static const declaration of constants with integral types, not floating. Therefore, we have the whole inlined static function for default values.