Raven Engine v0.1
A modern 3D Game Engine
Loading...
Searching...
No Matches
TypeDefines.h File Reference

Classes

struct  Raven::ContainedTypeRegistrar< T >
 Base template for recursive contained-type registration. More...
struct  Raven::ContainedTypeRegistrar< std::vector< T > >
 Registers the element type of a std::vector. More...
struct  Raven::ContainedTypeRegistrar< std::array< T, N > >
 Registers the element type of a std::array. More...
struct  Raven::ContainedTypeRegistrar< std::unordered_map< T, N > >
 Registers the key and mapped types of a std::unordered_map. More...

Namespaces

namespace  Raven

Macros

#define REFLECT_TYPE_INTERN(Type, ID)
#define REFLECT_TYPE(Type)
 Register a type with the reflection system via static initialization.

Macro Definition Documentation

◆ REFLECT_TYPE

#define REFLECT_TYPE ( Type)
Value:
REFLECT_TYPE_INTERN(Type, __COUNTER__)
#define REFLECT_TYPE_INTERN(Type, ID)
Definition TypeDefines.h:94

Register a type with the reflection system via static initialization.

Expands to a translation-unit–local static object whose constructor registers the specified type with the global TypeRegistry.

This macro must be used at namespace scope. Multiple invocations across translation units are permitted due to idempotent registration.

Warning
Relies on static initialization. Initialization order between translation units is unspecified.

◆ REFLECT_TYPE_INTERN

#define REFLECT_TYPE_INTERN ( Type,
ID )
Value:
inline static RegisterType<Type> CONCAT(reflect_type_, ID){};
#define CONCAT(a, b)
Definition ReflectionUtils.h:90