OpenLexocad  27.1
entt::extended_meta_factory< Type, Spec > Class Template Reference

Extended meta factory to be used for reflection purposes. More...

#include <entt.hpp>

Inheritance diagram for entt::extended_meta_factory< Type, Spec >:
entt::meta_factory< Type >

Public Member Functions

 extended_meta_factory (entt::internal::meta_prop_node **target)
 Constructs an extended factory from a given node. More...
 
template<typename PropertyOrKey , typename... Value>
auto prop (PropertyOrKey &&property_or_key, Value &&... value) &&
 Assigns a property to the last meta object created. More...
 
template<typename... Property>
auto props (Property... property) &&
 Assigns properties to the last meta object created. More...
 
- Public Member Functions inherited from entt::meta_factory< Type >
auto type (const ENTT_ID_TYPE identifier) ENTT_NOEXCEPT
 Extends a meta type by assigning it an identifier. More...
 
auto type () ENTT_NOEXCEPT
 Extends a meta type by assigning it an identifier. More...
 
template<typename Base >
auto base () ENTT_NOEXCEPT
 Assigns a meta base to a meta type. More...
 
template<typename To >
auto conv () ENTT_NOEXCEPT
 Assigns a meta conversion function to a meta type. More...
 
template<auto Candidate>
auto conv () ENTT_NOEXCEPT
 Assigns a meta conversion function to a meta type. More...
 
template<auto Func, typename Policy = as_is_t>
auto ctor () ENTT_NOEXCEPT
 Assigns a meta constructor to a meta type. More...
 
template<typename... Args>
auto ctor () ENTT_NOEXCEPT
 Assigns a meta constructor to a meta type. More...
 
template<auto Func>
auto dtor () ENTT_NOEXCEPT
 Assigns a meta destructor to a meta type. More...
 
template<auto Data, typename Policy = as_is_t>
auto data (const ENTT_ID_TYPE identifier) ENTT_NOEXCEPT
 Assigns a meta data to a meta type. More...
 
template<auto Setter, auto Getter, typename Policy = as_is_t>
auto data (const ENTT_ID_TYPE identifier) ENTT_NOEXCEPT
 Assigns a meta data to a meta type by means of its setter and getter. More...
 
template<auto Candidate, typename Policy = as_is_t>
auto func (const ENTT_ID_TYPE identifier) ENTT_NOEXCEPT
 Assigns a meta funcion to a meta type. More...
 
void reset () ENTT_NOEXCEPT
 Resets a meta type and all its parts. More...
 

Detailed Description

template<typename Type, typename... Spec>
class entt::extended_meta_factory< Type, Spec >

Extended meta factory to be used for reflection purposes.

TURN_OFF_DOXYGEN

Template Parameters
TypeReflected type for which the factory was created.
SpecProperty specialization pack used to disambiguate overloads.

Constructor & Destructor Documentation

◆ extended_meta_factory()

template<typename Type , typename... Spec>
entt::extended_meta_factory< Type, Spec >::extended_meta_factory ( entt::internal::meta_prop_node **  target)
inline

Constructs an extended factory from a given node.

Parameters
targetThe underlying node to which to assign the properties.

Member Function Documentation

◆ prop()

template<typename Type , typename... Spec>
template<typename PropertyOrKey , typename... Value>
auto entt::extended_meta_factory< Type, Spec >::prop ( PropertyOrKey &&  property_or_key,
Value &&...  value 
) &&
inline

Assigns a property to the last meta object created.

Both the key and the value (if any) must be at least copy constructible.

Template Parameters
PropertyOrKeyType of the property or property key.
ValueOptional type of the property value.
Parameters
property_or_keyProperty or property key.
valueOptional property value.
Returns
A meta factory for the parent type.

◆ props()

template<typename Type , typename... Spec>
template<typename... Property>
auto entt::extended_meta_factory< Type, Spec >::props ( Property...  property) &&
inline

Assigns properties to the last meta object created.

Both the keys and the values (if any) must be at least copy constructible.

Template Parameters
PropertyTypes of the properties.
Parameters
propertyProperties to assign to the last meta object created.
Returns
A meta factory for the parent type.

The documentation for this class was generated from the following file: