cpp-reflect
C++ Reflection and Annotations Library
Loading...
Searching...
No Matches
refl Namespace Referenceexport

Namespaces

namespace  deep_eq_impl
 
namespace  detail
 
namespace  eq_policy
 

Classes

class  any
 
class  any_ref
 
class  archive
 
struct  field
 
struct  field_info
 
struct  field_path
 
struct  get_pack_param_ids
 
struct  get_pack_param_ids< Pack< Args... > >
 
struct  get_pack_param_ids< Pack< T, I > >
 
struct  is_std_array
 
struct  is_std_array< std::array< T, N > >
 
struct  method
 
struct  method_info
 
struct  serializer
 
class  type_info
 
struct  visitor
 

Concepts

concept  is_type_info
 
concept  Reflected
 

Typedefs

template<typename T>
using refl::static_type_info = typename T::__type_info__
 
using refl::type_id_t = std::size_t
 

Enumerations

enum class  refl::access_spec : unsigned char { NONE = 0U , PRIVATE = 1U , PROTECTED = 2U , PUBLIC = 3U }
 

Functions

template<Reflected R, template< Reflected, typename > typename Fun, typename... Args>
auto refl::for_each_field (Args &&... args)
 
template<Reflected R>
bool refl::deep_eq (const R &lhs, const R &rhs)
 
template<template< typename > typename Format = formats::default_fmt>
std::string refl::to_string (const auto &obj, const typename Format< std::stringstream >::args_t &args={})
 
type_id_t refl::get_id_from_info_getter (const type_info &(*tif)())
 

Variables

template<refl::Reflected T>
constexpr std::size_t refl::field_count
 
template<refl::Reflected T, std::size_t I>
constexpr decltype(std::get< I >(static_type_info< T >::field_metadata)) refl::field_meta
 
template<refl::Reflected T>
constexpr std::size_t refl::method_count
 
std::map< type_id_t, type_inforefl::type_registry {}
 
template<typename T>
constexpr auto refl::type_name = detail::type_name_str<T>()
 
template<template< typename... > typename Pack>
constexpr auto refl::pack_name = detail::type_name_str_pack<Pack>()
 
template<template< typename T, std::size_t I > typename Pack>
constexpr auto refl::pack_1t1i_name = detail::type_name_str_pack_1t1i<Pack>()
 
template<typename T>
constexpr type_id_t refl::type_id = detail::fnv1a(type_name<T>)
 
template<template< typename... > typename Pack>
constexpr type_id_t refl::pack_id = detail::fnv1a(pack_name<Pack>)
 
template<template< typename T, std::size_t I > typename Pack>
constexpr type_id_t refl::pack_1t1i_id = detail::fnv1a(pack_1t1i_name<Pack>)
 
template<typename T>
constexpr type_id_t refl::pack_type_id = detail::pack_type_id<T>::value
 

Typedef Documentation

◆ static_type_info

template<typename T>
using refl::static_type_info = typename T::__type_info__
export

Definition at line 15 of file _types.cppm.

◆ type_id_t

using refl::type_id_t = std::size_t
export

Definition at line 30 of file _types.cppm.

Enumeration Type Documentation

◆ access_spec

enum class refl::access_spec : unsigned char
exportstrong
Enumerator
NONE 
PRIVATE 
PROTECTED 
PUBLIC 

Definition at line 32 of file accessors.cppm.

Function Documentation

◆ deep_eq()

template<Reflected R>
bool refl::deep_eq ( const R & lhs,
const R & rhs )
export

Definition at line 181 of file equality.cppm.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ for_each_field()

template<Reflected R, template< Reflected, typename > typename Fun, typename... Args>
auto refl::for_each_field ( Args &&... args)
export

Definition at line 131 of file accessors.cppm.

◆ get_id_from_info_getter()

type_id_t refl::get_id_from_info_getter ( const type_info &(* tif )())
export

Definition at line 396 of file type_info.cppm.

+ Here is the caller graph for this function:

◆ to_string()

template<template< typename > typename Format = formats::default_fmt>
std::string refl::to_string ( const auto & obj,
const typename Format< std::stringstream >::args_t & args = {} )
export

Definition at line 41 of file serializer.cppm.

Variable Documentation

◆ field_count

template<refl::Reflected T>
std::size_t refl::field_count
constexprexport
Initial value:
=
packtl::get_size<typename static_type_info<T>::field_types>::value

Definition at line 110 of file accessors.cppm.

◆ field_meta

template<refl::Reflected T, std::size_t I>
decltype(std::get<I>(static_type_info<T>::field_metadata)) refl::field_meta
constexprexport
Initial value:
=
typename T::__type_info__ static_type_info
Definition _types.cppm:15

Definition at line 114 of file accessors.cppm.

◆ method_count

template<refl::Reflected T>
std::size_t refl::method_count
constexprexport
Initial value:
=
packtl::get_size<typename static_type_info<T>::method_types>::value

Definition at line 127 of file accessors.cppm.

◆ pack_1t1i_id

template<template< typename T, std::size_t I > typename Pack>
type_id_t refl::pack_1t1i_id = detail::fnv1a(pack_1t1i_name<Pack>)
constexprexport

Definition at line 192 of file type_name.cppm.

◆ pack_1t1i_name

template<template< typename T, std::size_t I > typename Pack>
auto refl::pack_1t1i_name = detail::type_name_str_pack_1t1i<Pack>()
constexprexport

Definition at line 183 of file type_name.cppm.

◆ pack_id

template<template< typename... > typename Pack>
type_id_t refl::pack_id = detail::fnv1a(pack_name<Pack>)
constexprexport

Definition at line 189 of file type_name.cppm.

◆ pack_name

template<template< typename... > typename Pack>
auto refl::pack_name = detail::type_name_str_pack<Pack>()
constexprexport

Definition at line 180 of file type_name.cppm.

◆ pack_type_id

template<typename T>
type_id_t refl::pack_type_id = detail::pack_type_id<T>::value
constexprexport

Definition at line 210 of file type_name.cppm.

◆ type_id

template<typename T>
type_id_t refl::type_id = detail::fnv1a(type_name<T>)
constexprexport

Definition at line 186 of file type_name.cppm.

◆ type_name

template<typename T>
auto refl::type_name = detail::type_name_str<T>()
constexprexport

Definition at line 177 of file type_name.cppm.

◆ type_registry

std::map<type_id_t, type_info> refl::type_registry {}
export

Definition at line 20 of file type_info.cppm.