refl-cpp
refl::descriptor::field_descriptor< T, N > Class Template Reference

Represents a reflected field. More...

#include <refl.hpp>

Public Types

typedef member::value_type value_type
 
- Public Types inherited from refl::descriptor::member_descriptor_base< T, N >
typedef T declaring_type
 
typedef member::member_type member_type
 
typedef trait::as_type_list_t< std::remove_cv_t< decltype(member::attributes)> > attribute_types
 

Public Member Functions

template<typename... Args>
constexpr auto operator() (Args &&... args) const noexcept -> decltype(invoker::invoke(std::forward< Args >(args)...))
 

Static Public Member Functions

template<decltype(nullptr) = nullptr>
static constexpr decltype(auto) get () noexcept
 
template<typename U >
static constexpr decltype(auto) get (U &&target) noexcept
 

Static Public Attributes

static constexpr bool is_static { !std::is_member_object_pointer_v<decltype(member::pointer)> }
 
static constexpr bool is_writable { !std::is_const_v<value_type> }
 
static constexpr auto pointer { member::pointer }
 
- Static Public Attributes inherited from refl::descriptor::member_descriptor_base< T, N >
static constexpr type_descriptor< T > declarator { }
 
static constexpr auto name { member::name }
 
static constexpr auto attributes { member::attributes }
 

Additional Inherited Members

- Protected Types inherited from refl::descriptor::member_descriptor_base< T, N >
typedef refl_impl::metadata::type_info__< T >::template member< N > member
 

Detailed Description

template<typename T, size_t N>
class refl::descriptor::field_descriptor< T, N >

Represents a reflected field.

Member Typedef Documentation

◆ value_type

template<typename T , size_t N>
typedef member::value_type refl::descriptor::field_descriptor< T, N >::value_type

Type value type of the member.

Member Function Documentation

◆ get() [1/2]

template<typename T , size_t N>
template<decltype(nullptr) = nullptr>
static constexpr decltype(auto) refl::descriptor::field_descriptor< T, N >::get ( )
inlinestaticconstexprnoexcept

Returns the value of the field. (for static fields).

◆ get() [2/2]

template<typename T , size_t N>
template<typename U >
static constexpr decltype(auto) refl::descriptor::field_descriptor< T, N >::get ( U &&  target)
inlinestaticconstexprnoexcept

Returns the value of the field. (for instance fields).

◆ operator()()

template<typename T , size_t N>
template<typename... Args>
constexpr auto refl::descriptor::field_descriptor< T, N >::operator() ( Args &&...  args) const -> decltype(invoker::invoke(std::forward<Args>(args)...))
inlineconstexprnoexcept

A synonym for get().

Member Data Documentation

◆ is_static

template<typename T , size_t N>
constexpr bool refl::descriptor::field_descriptor< T, N >::is_static { !std::is_member_object_pointer_v<decltype(member::pointer)> }
staticconstexpr

Whether the field is static or not.

◆ is_writable

template<typename T , size_t N>
constexpr bool refl::descriptor::field_descriptor< T, N >::is_writable { !std::is_const_v<value_type> }
staticconstexpr

Whether the field is const or not.

◆ pointer

template<typename T , size_t N>
constexpr auto refl::descriptor::field_descriptor< T, N >::pointer { member::pointer }
staticconstexpr

A member pointer to the reflected field of the appropriate type.


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