Cogs.Foundation
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Functions | Variables
Name.h File Reference
#include "../StringView.h"
#include <type_traits>

Go to the source code of this file.

Classes

struct  Cogs::Reflection::Name
 Represents an unique name. More...
 

Namespaces

namespace  Cogs
 Main Cogs namespace.
 
namespace  Cogs::Reflection
 Contains reflection support.
 
namespace  Cogs::Reflection::detail
 Resepy from: https://developercommunity.visualstudio.com/t/C2607-after-upgrading-to-Visual-Studio-1/1666785.
 

Typedefs

using Cogs::Reflection::CreateInstance = void *(*)()
 Object creation function type. Comparable to regular new.
 
using Cogs::Reflection::ConstructInstance = void *(*)(void *)
 Object construction function type. Comparable to placement new.
 
using Cogs::Reflection::DestroyInstance = void(*)(void *)
 Object destroy function type. Comparable to regular delete.
 
using Cogs::Reflection::DestructInstance = void(*)(void *)
 Object destruction function type. Comparable to calling the destructor.
 
using Cogs::Reflection::TypeId = uint16_t
 Built in type used to uniquely identify a single type instance.
 
using Cogs::Reflection::FieldId = uint16_t
 Type used to index fields.
 
using Cogs::Reflection::MethodId = uint16_t
 Type used to index methods.
 

Functions

template<typename T >
Cogs::StringView getNameImpl (T *)
 All types in Cogs TypeDatabase must provide specialization of this function returning name of type as string view.
 
template<typename T >
Cogs::StringView getName ()
 
template<>
Cogs::StringView getName< void * > ()
 

Variables

template<typename >
constexpr bool Cogs::Reflection::detail::always_false = false
 
constexpr TypeId Cogs::Reflection::NoType = 0xFFFF
 Definition of no type.
 
constexpr FieldId Cogs::Reflection::NoField = 0xFFFF
 No field id.
 
constexpr MethodId Cogs::Reflection::NoMethod = 0xFFFF
 No method id.
 

Function Documentation

◆ getName()

template<typename T >
Cogs::StringView getName ( )

◆ getName< void * >()

template<>
Cogs::StringView getName< void * > ( )
inline

◆ getNameImpl()

template<typename T >
Cogs::StringView getNameImpl ( T *  )

All types in Cogs TypeDatabase must provide specialization of this function returning name of type as string view.

Referenced by getName().