#define _IMPLEMENT_ENUM( type, exportName, scope, doc ) \
namespace {
namespace _ ## exportName { \
typedef type EnumType; \
extern EngineSimpleTypeInfo< EnumType > gsTypeInfo; \
} } \
_IMPLEMENT_TYPE( type, exportName ); \
namespace {
namespace _ ## exportName { \
static const char*
const _sEnumName = #exportName; \
static const char*
const _sDoc = doc; \
static EngineExportScope& _sScope =
_SCOPE< scope >()(); \
static EngineEnumTable::Value _sEnums[] = {