diff --git a/README.md b/README.md index b39ac00..2f43788 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ -## refl-cpp v0.9.1 [[Documentation](https://veselink1.github.io/refl-cpp/md__introduction.html)] +## refl-cpp v0.10.0 [[Documentation](https://veselink1.github.io/refl-cpp/md__introduction.html)] A compile-time reflection library for modern C++ with support for overloads, templates, attributes and proxies @@ -145,6 +145,19 @@ REFL_FUNC(Function, Attribute...) `Patch` denotes a version which fixed a bug or does not include major new features. --- +### v0.10.0 + - Introduced automatic property name normalization in `get_display_name` for properties with no `friendly_name`. Example: `get_display_name(get_foo) -> "foo"` + - Added built-in reflection support for `std::string_view` [#23](https://github.com/veselink1/refl-cpp/issues/23) + - Fixed: operations on `type_list` do not properly take into account reference qualifiers + - Fixed `const_string` constructor in older versions of clang + - Fixed `util::filter` results list order (used to be reversed) + - Fixed implementation of `reflect`, `is_reflectable`, `debug` + - Improved `runtime::debug` print formatting + - Removed filtering by `const_string` utils [#21](https://github.com/veselink1/refl-cpp/issues/21). Suggested workaround: use predicate variants + - Removed refl-ht support + - Code cleanup [#24](https://github.com/veselink1/refl-cpp/issues/24), [#20](https://github.com/veselink1/refl-cpp/issues/20) + + ### v0.9.1 - Bugfix for `refl::descriptor::get_bases` for clang [#19](https://github.com/veselink1/refl-cpp/issues/19) diff --git a/docs/annotated.html b/docs/annotated.html index a6ab5ef..41a144b 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -120,43 +120,33 @@  CproxyA proxy object that has a static interface identical to the reflected functions and fields of the target  NtraitProvides type-level operations for refl-cpp related use-cases  Cappend - Cappend< T, type_list< Ts... > > - Cas_type_list - Cas_type_list< T< Ts... > > - Cconcat - Cconcat< type_list< Ts... >, type_list< Us... > > - Ccontains - Ccontains_base - Ccontains_instance - Cfilter - Cfilter< Predicate, type_list< Ts... > > - Cfirst - Cfirst< type_list< T, Ts... > > - Cget - Cget< N, type_list< Ts... > > - Cinit - Cis_container - Cis_field - Cis_function - Cis_instance - Cis_instance_of - Cis_member - Cis_property - Cis_proxy - Cis_reflectable - Cis_type - Clast - Clast< type_list< T, Ts... > > - Cmap - Cmap< Mapper, type_list< Ts... > > - Cprepend - Cprepend< T, type_list< Ts... > > - Cremove_qualifiers - Creverse - Cskip - Cskip< N, type_list< Ts... > > - Ctail - Ctail< type_list< T, Ts... > > + Cas_type_list + Cas_type_list< T< Ts... > > + Cconcat + Cconcat< type_list< Ts... >, type_list< Us... > > + Ccontains + Ccontains_base + Ccontains_instance + Cfilter + Cfilter< Predicate, type_list< Ts... > > + Cget + Cget< N, type_list< Ts... > > + Cis_container + Cis_descriptor + Cis_field + Cis_function + Cis_instance + Cis_instance_of + Cis_member + Cis_property + Cis_proxy + Cis_reflectable + Cis_type + Cmap + Cmap< Mapper, type_list< Ts... > > + Cprepend + Cremove_qualifiers + Creverse  NutilContains utility types and functions for working with those types  Cconst_string  Ctype_list diff --git a/docs/classes.html b/docs/classes.html index 88f4af8..a11f145 100644 --- a/docs/classes.html +++ b/docs/classes.html @@ -95,111 +95,92 @@
Class Index
-
a | b | c | d | f | g | i | l | m | p | r | s | t
+
a | b | c | d | f | g | i | m | p | r | t
- - - - + + + + - - - + + + + - + + + + - - - - - - - - - - + - - + + + - - - - + + + + - - - + + - - - - + - - - - + + + + - - - + + + + + + + + - - - - - - - + + + - - - + + - - - - - - - - - - + + - - -
  a  
contains_instance (refl::trait)   get< N, type_list< Ts... > > (refl::trait)   last< type_list< T, Ts... > > (refl::trait)   
  s  
-
contains (refl::trait)   function (refl::member)   is_member (refl::trait)   property (refl::attr)   
  d  
-
  i  
-
  m  
-
contains_base (refl::trait)   function_descriptor (refl::descriptor)   is_property (refl::trait)   proxy (refl::runtime)   
any (refl::attr::usage)   skip (refl::trait)   contains_instance (refl::trait)   
  g  
+
is_proxy (refl::trait)   
  r  
+
append (refl::trait)   debug (refl::attr)   init (refl::trait)   map (refl::trait)   skip< N, type_list< Ts... > > (refl::trait)   
append< T, type_list< Ts... > > (refl::trait)   
  f  
-
is_container (refl::trait)   map< Mapper, type_list< Ts... > > (refl::trait)   
  t  
+
  d  
is_reflectable (refl::trait)   
as_type_list (refl::trait)   is_field (refl::trait)   member (refl::attr::usage)   get (refl::trait)   is_type (refl::trait)   remove_qualifiers (refl::trait)   
as_type_list< T< Ts... > > (refl::trait)   field (refl::member)   is_function (refl::trait)   member_descriptor_base (refl::descriptor)   tail (refl::trait)   debug (refl::attr)   get< N, type_list< Ts... > > (refl::trait)   
  m  
+
reverse (refl::trait)   
  b  
field (refl::attr::usage)   is_instance (refl::trait)   
  p  
+
  f  
+
  i  
+
  t  
tail< type_list< T, Ts... > > (refl::trait)   
field_descriptor (refl::descriptor)   is_instance_of (refl::trait)   type (refl::attr::usage)   
map (refl::trait)   
base_types (refl::attr)   filter (refl::trait)   is_member (refl::trait)   prepend (refl::trait)   type_descriptor (refl::descriptor)   field (refl::member)   is_container (refl::trait)   map< Mapper, type_list< Ts... > > (refl::trait)   type (refl::attr::usage)   
  c  
filter< Predicate, type_list< Ts... > > (refl::trait)   is_property (refl::trait)   prepend< T, type_list< Ts... > > (refl::trait)   field (refl::attr::usage)   is_descriptor (refl::trait)   member (refl::attr::usage)   type_descriptor (refl::descriptor)   
field_descriptor (refl::descriptor)   is_field (refl::trait)   member_descriptor_base (refl::descriptor)    type_list (refl::util)   
first (refl::trait)   is_proxy (refl::trait)   property (refl::attr)   
concat (refl::trait)   first< type_list< T, Ts... > > (refl::trait)   is_reflectable (refl::trait)   proxy (refl::runtime)   filter (refl::trait)   is_function (refl::trait)   
  p  
+
concat< type_list< Ts... >, type_list< Us... > > (refl::trait)   function (refl::member)   is_type (refl::trait)   
  r  
-
filter< Predicate, type_list< Ts... > > (refl::trait)   is_instance (refl::trait)   
const_string (refl::util)    function (refl::attr::usage)   
  l  
-
contains (refl::trait)   function_descriptor (refl::descriptor)   remove_qualifiers (refl::trait)   
contains_base (refl::trait)   
  g  
-
last (refl::trait)   reverse (refl::trait)   is_instance_of (refl::trait)   prepend (refl::trait)   
get (refl::trait)   
-
a | b | c | d | f | g | i | l | m | p | r | s | t
+
a | b | c | d | f | g | i | m | p | r | t
diff --git a/docs/classrefl_1_1descriptor_1_1type__descriptor-members.html b/docs/classrefl_1_1descriptor_1_1type__descriptor-members.html index bbb6815..5586e76 100644 --- a/docs/classrefl_1_1descriptor_1_1type__descriptor-members.html +++ b/docs/classrefl_1_1descriptor_1_1type__descriptor-members.html @@ -100,8 +100,8 @@ - - + +
attribute_types typedefrefl::descriptor::type_descriptor< T >
attributesrefl::descriptor::type_descriptor< T >static
member_types typedefrefl::descriptor::type_descriptor< T >
membersrefl::descriptor::type_descriptor< T >static
member_types typedefrefl::descriptor::type_descriptor< T >
membersrefl::descriptor::type_descriptor< T >static
namerefl::descriptor::type_descriptor< T >static
type typedefrefl::descriptor::type_descriptor< T >
diff --git a/docs/classrefl_1_1descriptor_1_1type__descriptor.html b/docs/classrefl_1_1descriptor_1_1type__descriptor.html index 3f7ddf7..f72d30f 100644 --- a/docs/classrefl_1_1descriptor_1_1type__descriptor.html +++ b/docs/classrefl_1_1descriptor_1_1type__descriptor.html @@ -109,15 +109,15 @@ Public Types typedef T type   -typedef refl::member_list< T > member_types -  +typedef member_list< T > member_types +  typedef trait::as_type_list_t< std::remove_cv_t< decltype(type_info::attributes)> > attribute_types   - - + + @@ -147,8 +147,8 @@

-

◆ member_types

+ +

◆ member_types

@@ -156,11 +156,11 @@

- +

Static Public Attributes

static constexpr refl::member_list< T > members { }
 
static constexpr member_list< T > members { }
 
static constexpr const auto name { type_info::name }
 
static constexpr const auto attributes { type_info::attributes }
typedef refl::member_list<T> refl::descriptor::type_descriptor< T >::member_typestypedef member_list<T> refl::descriptor::type_descriptor< T >::member_types
-

A synonym for refl::member_list<T>.

+

A synonym for member_list<T>.

@@ -207,8 +207,8 @@

-

◆ members

+ +

◆ members

@@ -219,7 +219,7 @@

- +
constexpr refl::member_list<T> refl::descriptor::type_descriptor< T >::members { }constexpr member_list<T> refl::descriptor::type_descriptor< T >::members { }
diff --git a/docs/classrefl_1_1descriptor_1_1type__descriptor.js b/docs/classrefl_1_1descriptor_1_1type__descriptor.js index 4d91caa..e421ce2 100644 --- a/docs/classrefl_1_1descriptor_1_1type__descriptor.js +++ b/docs/classrefl_1_1descriptor_1_1type__descriptor.js @@ -1,6 +1,6 @@ var classrefl_1_1descriptor_1_1type__descriptor = [ [ "attribute_types", "classrefl_1_1descriptor_1_1type__descriptor.html#a5c8eefceec1c9eba0543acd3336f498e", null ], - [ "member_types", "classrefl_1_1descriptor_1_1type__descriptor.html#aa75434f86b9f21d8c2a03e1423432b76", null ], + [ "member_types", "classrefl_1_1descriptor_1_1type__descriptor.html#abced96d86e87fce0968b1a9c9c2df561", null ], [ "type", "classrefl_1_1descriptor_1_1type__descriptor.html#a38599f7e777bda08453cdc4387c03708", null ] ]; \ No newline at end of file diff --git a/docs/functions.html b/docs/functions.html index 5f6465c..c0bb313 100644 --- a/docs/functions.html +++ b/docs/functions.html @@ -182,10 +182,10 @@

- m -

@@ -259,16 +259,11 @@

- t -

diff --git a/docs/functions_type.html b/docs/functions_type.html index 9b8440e..c3c5d28 100644 --- a/docs/functions_type.html +++ b/docs/functions_type.html @@ -109,7 +109,7 @@ : refl::descriptor::member_descriptor_base< T, N >
  • member_types -: refl::descriptor::type_descriptor< T > +: refl::descriptor::type_descriptor< T >
  • return_type : refl::descriptor::function_descriptor< T, N > @@ -119,16 +119,11 @@
  • type : refl::descriptor::type_descriptor< T > -, refl::trait::append< T, type_list< Ts... > > , refl::trait::as_type_list< T< Ts... > > , refl::trait::concat< type_list< Ts... >, type_list< Us... > > , refl::trait::filter< Predicate, type_list< Ts... > > -, refl::trait::first< type_list< T, Ts... > > -, refl::trait::last< type_list< T, Ts... > > , refl::trait::map< Mapper, type_list< Ts... > > -, refl::trait::prepend< T, type_list< Ts... > > , refl::trait::remove_qualifiers< T > -, refl::trait::tail< type_list< T, Ts... > >
  • value_type : refl::descriptor::field_descriptor< T, N > diff --git a/docs/functions_vars.html b/docs/functions_vars.html index 64bb240..13aab37 100644 --- a/docs/functions_vars.html +++ b/docs/functions_vars.html @@ -118,7 +118,7 @@ : refl::attr::base_types< Ts >
  • members -: refl::descriptor::type_descriptor< T > +: refl::descriptor::type_descriptor< T >
  • name : refl::descriptor::member_descriptor_base< T, N > diff --git a/docs/globals.html b/docs/globals.html index b0e8223..63f3028 100644 --- a/docs/globals.html +++ b/docs/globals.html @@ -92,9 +92,6 @@
    Here is a list of all file members with links to the files they belong to:

    While debug outputs to a std::ostream, a std::string result can also be obtained by debug_str.

    @@ -361,16 +361,15 @@

  • -
    void debug(std::ostream &os, const T &value)
    Definition: refl.hpp:2562
    -
    Definition: refl.hpp:762
    -
    The top-level refl-cpp namespace It contains a few core refl-cpp namespaces and directly exposes core...
    Definition: refl.hpp:85
    -
    const char * get_display_name(const T &t) noexcept
    Definition: refl.hpp:2253
    -
    A proxy object that has a static interface identical to the reflected functions and fields of the tar...
    Definition: refl.hpp:2384
    -
    constexpr bool has_attribute(const T) noexcept
    Definition: refl.hpp:2098
    -
    constexpr type_descriptor< T > reflect() noexcept
    Definition: refl.hpp:1725
    -
    U invoke(T &&target, const char *name, Args &&... args)
    Definition: refl.hpp:2605
    -
    constexpr auto find_one(type_list< Ts... > list, F f)
    Definition: refl.hpp:1299
    -
    constexpr void for_each(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1202
    +
    constexpr auto find_one(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1833
    +
    Definition: refl.hpp:1166
    +
    The top-level refl-cpp namespace It contains a few core refl-cpp namespaces and directly exposes core...
    Definition: refl.hpp:76
    +
    A proxy object that has a static interface identical to the reflected functions and fields of the tar...
    Definition: refl.hpp:2413
    +
    constexpr bool has_attribute(const T) noexcept
    Definition: refl.hpp:2055
    +
    constexpr type_descriptor< T > reflect() noexcept
    Definition: refl.hpp:1581
    +
    U invoke(T &&target, const char *name, Args &&... args)
    Definition: refl.hpp:2674
    +
    void debug(std::ostream &os, const T &value, bool compact=false)
    +
    constexpr void for_each(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1736
    -
    #define REFL_TEMPLATE(TemplateDeclaration, TypeName,...)
    Definition: refl.hpp:2759
    -
    constexpr bool is_readable(const T) noexcept
    Definition: refl.hpp:2167
    -
    constexpr type_descriptor< T > reflect() noexcept
    Definition: refl.hpp:1725
    -
    constexpr auto map_to_tuple(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1180
    -
    #define REFL_TYPE(TypeName,...)
    Definition: refl.hpp:2742
    +
    #define REFL_TEMPLATE(TemplateDeclaration, TypeName,...)
    Definition: refl.hpp:2828
    +
    constexpr bool is_readable(const T) noexcept
    Definition: refl.hpp:2124
    +
    constexpr type_descriptor< T > reflect() noexcept
    Definition: refl.hpp:1581
    +
    constexpr auto map_to_tuple(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1716
    +
    #define REFL_TYPE(TypeName,...)
    Definition: refl.hpp:2811
    diff --git a/docs/namespacerefl.html b/docs/namespacerefl.html index 580a97b..f792b73 100644 --- a/docs/namespacerefl.html +++ b/docs/namespacerefl.html @@ -93,7 +93,6 @@
    refl Namespace Reference
    @@ -124,26 +123,20 @@  Contains utility types and functions for working with those types.
      - - - - -

    -Typedefs

    template<typename T >
    using member_list = decltype(detail::enumerate_members< T >(std::make_index_sequence< refl_impl::metadata::type_info__< T >::member_count >{}))
     
    - - - + + + - - - + + +

    Functions

    template<typename T >
    constexpr bool is_reflectable () noexcept
     
    template<typename T >
    constexpr bool is_reflectable (const T) noexcept
     
    template<typename T >
    constexpr bool is_reflectable (const T &) noexcept
     
    template<typename T >
    constexpr type_descriptor< T > reflect () noexcept
     
    template<typename T >
    constexpr type_descriptor< T > reflect (const T) noexcept
     
    template<typename T >
    constexpr type_descriptor< T > reflect (const T &) noexcept
     

    Detailed Description

    The top-level refl-cpp namespace It contains a few core refl-cpp namespaces and directly exposes core classes and functions.

    @@ -166,25 +159,7 @@ using util::const_string;
    using util::make_const_string;

    -

    Typedef Documentation

    - -

    ◆ member_list

    - -
    -
    -
    -template<typename T >
    - - - - -
    using refl::member_list = typedef decltype(detail::enumerate_members<T>(std::make_index_sequence<refl_impl::metadata::type_info__<T>::member_count>{}))
    -
    -

    A type_list of the member descriptors of the target type T.

    - -
    -
    -

    Function Documentation

    +

    Function Documentation

    ◆ is_reflectable() [1/2]

    @@ -213,8 +188,8 @@

    -

    ◆ is_reflectable() [2/2]

    + +

    ◆ is_reflectable() [2/2]

    @@ -227,8 +202,8 @@

    constexpr bool refl::is_reflectable ( - const  - T) + const T &  + ) @@ -270,8 +245,8 @@

    -

    ◆ reflect() [2/2]

    + +

    ◆ reflect() [2/2]

    @@ -284,8 +259,8 @@

    constexpr type_descriptor<T> refl::reflect ( - const  - T) + const T &  + ) diff --git a/docs/namespacerefl_1_1attr.html b/docs/namespacerefl_1_1attr.html index 5a268b6..3ada839 100644 --- a/docs/namespacerefl_1_1attr.html +++ b/docs/namespacerefl_1_1attr.html @@ -120,16 +120,16 @@

    Detailed Description

    Contains the definitions of the built-in attributes.

    Contains the definitions of the built-in attributes which are implicitly available in macro context as well as the attr::usage namespace which contains constraints for user-provieded attributes.

    -

    +

    Examples

    -
    REFL_TYPE(Point, debug(custom_printer))
    +
    REFL_TYPE(Point, debug(custom_printer))
    REFL_FIELD(x)
    REFL_FIELD(y)
    REFL_END

    -
    void debug(std::ostream &os, const T &value)
    Definition: refl.hpp:2562
    -
    #define REFL_TYPE(TypeName,...)
    Definition: refl.hpp:2742
    +
    #define REFL_TYPE(TypeName,...)
    Definition: refl.hpp:2811
    +
    void debug(std::ostream &os, const T &value, bool compact=false)
    diff --git a/docs/namespacerefl_1_1runtime.html b/docs/namespacerefl_1_1runtime.html index 7cd6089..093908d 100644 --- a/docs/namespacerefl_1_1runtime.html +++ b/docs/namespacerefl_1_1runtime.html @@ -110,12 +110,12 @@ - - - - - - + + + + + + @@ -132,8 +132,8 @@

    Detailed Description

    Contains utilities that can have runtime-overhead (like proxy, debug, invoke)

    Function Documentation

    - -

    ◆ debug() [1/2]

    + +

    ◆ debug() [1/2]

    @@ -150,7 +150,13 @@

    - + + + + + + + @@ -159,12 +165,12 @@

    -

    Writes the detailed debug representation of the provided values to the given std::ostream.

    +

    Writes the debug representation of value to the given std::ostream. Calls the function specified by the debug<F> attribute whenever possible, before falling back to recursively interating the members and printing them. Takes an optional arguments specifying whether to print a compact representation. The compact representation contains no newlines.

    -
    -

    ◆ debug() [2/2]

    + +

    ◆ debug() [2/2]

    @@ -187,7 +193,7 @@

    - + @@ -196,7 +202,6 @@

    -

    Writes the debug representation of value to the given std::ostream. Calls the function specified by the debug<F> attribute whenever possible, before falling back to recursively interating the members and printing them. Takes an optional arguments specifying whether to print a compact representation. The compact representation contains no newlines.

    diff --git a/docs/namespacerefl_1_1trait.html b/docs/namespacerefl_1_1trait.html index 06c8ce8..fef8368 100644 --- a/docs/namespacerefl_1_1trait.html +++ b/docs/namespacerefl_1_1trait.html @@ -107,8 +107,6 @@ Classes

    - - @@ -127,18 +125,14 @@ - - - - - - + + @@ -157,30 +151,16 @@ - - - - - - - - - - - - - -

    Functions

    template<typename T >
    void debug (std::ostream &os, const T &value)
     
    template<typename T >
    void debug (std::ostream &os, const T &value, bool compact)
     
    template<typename T >
    void debug (std::ostream &os, const T &value, bool compact=false)
     
    template<typename T >
    void debug (std::ostream &os, const T &value, [[maybe_unused]] bool compact)
     
    template<typename... Ts>
    void debug_all (std::ostream &os, const Ts &... values)
     
    const T & value value,
    [[maybe_unused] ] bool compact 
    bool compact compact = false 
    struct  append
     
    struct  append< T, type_list< Ts... > >
     
    struct  as_type_list
     
    struct  as_type_list< T< Ts... > >
     
    struct  filter< Predicate, type_list< Ts... > >
     
    struct  first
     
    struct  first< type_list< T, Ts... > >
     
    struct  get
     
    struct  get< N, type_list< Ts... > >
     
    struct  init
     
    struct  is_container
     
    struct  is_descriptor
     
    struct  is_field
     
    struct  is_function
     
    struct  is_type
     
    struct  last
     
    struct  last< type_list< T, Ts... > >
     
    struct  map
     
    struct  map< Mapper, type_list< Ts... > >
     
    struct  prepend
     
    struct  prepend< T, type_list< Ts... > >
     
    struct  remove_qualifiers
     
    struct  reverse
     
    struct  skip
     
    struct  skip< N, type_list< Ts... > >
     
    struct  tail
     
    struct  tail< type_list< T, Ts... > >
     
    @@ -190,36 +170,57 @@ + + + - + + + + - + + + + - + + + + - + + + + + + + + + + - + - - - - - - + + + + + + @@ -267,7 +268,7 @@

    -

    A typedef for a type_list specialization with template type parameters equivalent to the type parameters of the provided type. The provided type must be a template specialization. Rerefence and CV-qualifiers are discarded.

    See also
    as_type_list
    +

    A typedef for a type_list specialization with template type parameters equivalent to the type parameters of the provided type. The provided type must be a template specialization.

    See also
    as_type_list
    @@ -301,7 +302,24 @@

    -

    Filters a type_list according to a predicate template.

    See also
    filter
    +

    Filters a type_list according to a predicate template with a static boolean member named "value" (e.g. std::is_trivial)

    See also
    filter
    + + + + +

    ◆ first

    + +
    +
    +
    +template<typename TypeList >
    +

    Typedefs

    template<size_t N, typename TypeList >
    using get_t = typename get< N, TypeList >::type
     
    template<size_t N, typename TypeList >
    using skip = detail::skip< N, TypeList >
     
    template<size_t N, typename TypeList >
    using skip_t = typename skip< N, TypeList >::type
    using skip_t = typename skip< N, TypeList >::type
     
    template<typename T >
    using as_type_list_t = typename as_type_list< T >::type
     
    template<typename TypeList >
    using first = get< 0, TypeList >
     
    template<typename TypeList >
    using first_t = typename first< TypeList >::type
    using first_t = typename first< TypeList >::type
     
    template<typename TypeList >
    using last = get< TypeList::size - 1, TypeList >
     
    template<typename TypeList >
    using last_t = typename last< TypeList >::type
    using last_t = typename last< TypeList >::type
     
    template<typename TypeList >
    using tail = skip< 1, TypeList >
     
    template<typename TypeList >
    using tail_t = typename tail< TypeList >::type
    using tail_t = typename tail< TypeList >::type
     
    template<size_t N, typename TypeList >
    using take = detail::take< type_list<>, N, TypeList >
     
    template<size_t N, typename TypeList >
    using take_t = typename take< N, TypeList >::type
     
    template<typename TypeList >
    using init = take< TypeList::size - 1, TypeList >
     
    template<typename TypeList >
    using init_t = typename init< TypeList >::type
    using init_t = typename init< TypeList >::type
     
    template<typename T , typename TypeList >
    using append_t = typename append< T, TypeList >::type
     
    template<typename T , typename TypeList >
    using prepend_t = typename prepend< T, TypeList >::type
     
    template<typename TypeList >
    using reverse_t = typename reverse< TypeList >::type
     
    template<typename Lhs , typename Rhs >
    using concat_t = typename concat< Lhs, Rhs >::type
     
    template<typename T , typename TypeList >
    using append_t = typename append< T, TypeList >::type
     
    template<typename T , typename TypeList >
    using prepend_t = typename prepend< T, TypeList >::type
     
    template<template< typename > typename Predicate, typename TypeList >
    using filter_t = typename filter< Predicate, TypeList >::type
     
    + + + +
    using refl::trait::first = typedef get<0, TypeList>
    +

    +

    Accesses first type in the list.

    @@ -314,11 +332,11 @@

    - using refl::trait::first_t = typedef typename first<TypeList>::type + using refl::trait::first_t = typedef typename first<TypeList>::type
    -

    Accesses last type in the list.

    See also
    last
    +

    Accesses last type in the list.

    See also
    last
    @@ -337,6 +355,23 @@

    Equivalent to the N-th type of the provided type_list.

    See also
    get
    + + + +

    ◆ init

    + +
    +
    +
    +template<typename TypeList >
    + + + + +
    using refl::trait::init = typedef take<TypeList::size - 1, TypeList>
    +
    +

    Returns all but the last element of the list.

    +
    @@ -348,11 +383,28 @@

    - using refl::trait::init_t = typedef typename init<TypeList>::type + using refl::trait::init_t = typedef typename init<TypeList>::type
    -

    Returns all but the last element of the list.

    See also
    tail
    +

    Returns all but the last element of the list.

    See also
    tail
    + +
    + + +

    ◆ last

    + +
    +
    +
    +template<typename TypeList >
    + + + + +
    using refl::trait::last = typedef get<TypeList::size - 1, TypeList>
    +
    +

    Accesses last type in the list.

    @@ -365,11 +417,11 @@

    - using refl::trait::last_t = typedef typename last<TypeList>::type + using refl::trait::last_t = typedef typename last<TypeList>::type
    -

    Accesses last type in the list.

    See also
    last
    +

    Accesses last type in the list.

    See also
    last
    @@ -386,7 +438,7 @@

    -

    Maps a type_list according to a predicate template.

    See also
    map
    +

    Transforms a type_list according to a predicate template with a typedef named "type" (e.g. std::remove_reference)

    See also
    map
    @@ -439,6 +491,23 @@

    Reverses a list of types.

    See also
    reverse
    + + + +

    ◆ skip

    + +
    +
    +
    +template<size_t N, typename TypeList >
    + + + + +
    using refl::trait::skip = typedef detail::skip<N, TypeList>
    +
    +

    Skips the first N types in the provided type_list. Provides a member typedef equivalent to the resuling type_list.

    +
    @@ -450,11 +519,28 @@

    - using refl::trait::skip_t = typedef typename skip<N, TypeList>::type + using refl::trait::skip_t = typedef typename skip<N, TypeList>::type
    -

    Skips the first N types in the provided type_list.

    See also
    skip
    +

    Skips the first N types in the provided type_list.

    See also
    skip
    + +
    + + +

    ◆ tail

    + +
    +
    +
    +template<typename TypeList >
    + + + + +
    using refl::trait::tail = typedef skip<1, TypeList>
    +
    +

    Returns all but the first element of the list.

    @@ -467,11 +553,45 @@

    - using refl::trait::tail_t = typedef typename tail<TypeList>::type + using refl::trait::tail_t = typedef typename tail<TypeList>::type + + +
    +

    Returns all but the first element of the list.

    See also
    tail
    + +
    + + +

    ◆ take

    + +
    +
    +
    +template<size_t N, typename TypeList >
    + + + + +
    using refl::trait::take = typedef detail::take<type_list<>, N, TypeList>
    +
    +

    Returns the first N elements of the list.

    + +
    +
    + +

    ◆ take_t

    + +
    +
    +
    +template<size_t N, typename TypeList >
    + + +
    using refl::trait::take_t = typedef typename take<N, TypeList>::type
    -

    Returns all but the first element of the list.

    See also
    tail
    +

    Returns the first N elements of the list.

    diff --git a/docs/namespacerefl_1_1trait.js b/docs/namespacerefl_1_1trait.js index 50bf32d..81375c8 100644 --- a/docs/namespacerefl_1_1trait.js +++ b/docs/namespacerefl_1_1trait.js @@ -1,7 +1,6 @@ var namespacerefl_1_1trait = [ [ "append", "structrefl_1_1trait_1_1append.html", null ], - [ "append< T, type_list< Ts... > >", "structrefl_1_1trait_1_1append_3_01_t_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html", "structrefl_1_1trait_1_1append_3_01_t_00_01type__list_3_01_ts_8_8_8_01_4_01_4" ], [ "as_type_list", "structrefl_1_1trait_1_1as__type__list.html", null ], [ "as_type_list< T< Ts... > >", "structrefl_1_1trait_1_1as__type__list_3_01_t_3_01_ts_8_8_8_01_4_01_4.html", "structrefl_1_1trait_1_1as__type__list_3_01_t_3_01_ts_8_8_8_01_4_01_4" ], [ "concat", "structrefl_1_1trait_1_1concat.html", null ], @@ -11,12 +10,10 @@ var namespacerefl_1_1trait = [ "contains_instance", "structrefl_1_1trait_1_1contains__instance.html", null ], [ "filter", "structrefl_1_1trait_1_1filter.html", null ], [ "filter< Predicate, type_list< Ts... > >", "structrefl_1_1trait_1_1filter_3_01_predicate_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html", "structrefl_1_1trait_1_1filter_3_01_predicate_00_01type__list_3_01_ts_8_8_8_01_4_01_4" ], - [ "first", "structrefl_1_1trait_1_1first.html", null ], - [ "first< type_list< T, Ts... > >", "structrefl_1_1trait_1_1first_3_01type__list_3_01_t_00_01_ts_8_8_8_01_4_01_4.html", "structrefl_1_1trait_1_1first_3_01type__list_3_01_t_00_01_ts_8_8_8_01_4_01_4" ], [ "get", "structrefl_1_1trait_1_1get.html", null ], [ "get< N, type_list< Ts... > >", "structrefl_1_1trait_1_1get_3_01_n_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html", null ], - [ "init", "structrefl_1_1trait_1_1init.html", null ], [ "is_container", "structrefl_1_1trait_1_1is__container.html", null ], + [ "is_descriptor", "structrefl_1_1trait_1_1is__descriptor.html", null ], [ "is_field", "structrefl_1_1trait_1_1is__field.html", null ], [ "is_function", "structrefl_1_1trait_1_1is__function.html", null ], [ "is_instance", "structrefl_1_1trait_1_1is__instance.html", null ], @@ -26,16 +23,9 @@ var namespacerefl_1_1trait = [ "is_proxy", "structrefl_1_1trait_1_1is__proxy.html", null ], [ "is_reflectable", "structrefl_1_1trait_1_1is__reflectable.html", null ], [ "is_type", "structrefl_1_1trait_1_1is__type.html", null ], - [ "last", "structrefl_1_1trait_1_1last.html", null ], - [ "last< type_list< T, Ts... > >", "structrefl_1_1trait_1_1last_3_01type__list_3_01_t_00_01_ts_8_8_8_01_4_01_4.html", "structrefl_1_1trait_1_1last_3_01type__list_3_01_t_00_01_ts_8_8_8_01_4_01_4" ], [ "map", "structrefl_1_1trait_1_1map.html", null ], [ "map< Mapper, type_list< Ts... > >", "structrefl_1_1trait_1_1map_3_01_mapper_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html", "structrefl_1_1trait_1_1map_3_01_mapper_00_01type__list_3_01_ts_8_8_8_01_4_01_4" ], [ "prepend", "structrefl_1_1trait_1_1prepend.html", null ], - [ "prepend< T, type_list< Ts... > >", "structrefl_1_1trait_1_1prepend_3_01_t_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html", "structrefl_1_1trait_1_1prepend_3_01_t_00_01type__list_3_01_ts_8_8_8_01_4_01_4" ], [ "remove_qualifiers", "structrefl_1_1trait_1_1remove__qualifiers.html", "structrefl_1_1trait_1_1remove__qualifiers" ], - [ "reverse", "structrefl_1_1trait_1_1reverse.html", null ], - [ "skip", "structrefl_1_1trait_1_1skip.html", null ], - [ "skip< N, type_list< Ts... > >", "structrefl_1_1trait_1_1skip_3_01_n_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html", null ], - [ "tail", "structrefl_1_1trait_1_1tail.html", null ], - [ "tail< type_list< T, Ts... > >", "structrefl_1_1trait_1_1tail_3_01type__list_3_01_t_00_01_ts_8_8_8_01_4_01_4.html", "structrefl_1_1trait_1_1tail_3_01type__list_3_01_t_00_01_ts_8_8_8_01_4_01_4" ] + [ "reverse", "structrefl_1_1trait_1_1reverse.html", null ] ]; \ No newline at end of file diff --git a/docs/namespacerefl_1_1util.html b/docs/namespacerefl_1_1util.html index 24f4748..1911ef5 100644 --- a/docs/namespacerefl_1_1util.html +++ b/docs/namespacerefl_1_1util.html @@ -185,24 +185,18 @@ template<typename F , typename... Ts> constexpr size_t count_if (type_list< Ts... > list, F &&f)   -template<typename F , typename... Ts> -constexpr auto filter (type_list< Ts... > list, F f) -  -template<typename F , typename... Ts> -constexpr auto find_first (type_list< Ts... > list, F f) -  -template<typename F , typename... Ts> -constexpr auto find_one (type_list< Ts... > list, F f) -  -template<size_t N, typename... Ts> -constexpr auto find_one (type_list< Ts... > list, const const_string< N > &name) -  +template<typename F , typename... Ts> +constexpr auto filter (type_list< Ts... > list, F &&f) +  +template<typename F , typename... Ts> +constexpr auto find_first (type_list< Ts... > list, F &&f) +  +template<typename F , typename... Ts> +constexpr auto find_one (type_list< Ts... > list, F &&f) +  template<typename F , typename... Ts> constexpr auto contains (type_list< Ts... > list, F &&f)   -template<size_t N, typename... Ts> -constexpr auto contains (type_list< Ts... > list, const const_string< N > &name) -  template<typename... Ts, typename F > constexpr auto apply (type_list< Ts... >, F &&f)   @@ -353,49 +347,10 @@

    Applies a function to the elements of the type_list.

    - - - -

    ◆ contains() [1/2]

    - -
    -
    -
    -template<size_t N, typename... Ts>
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    constexpr auto refl::util::contains (type_list< Ts... > list,
    const const_string< N > & name 
    )
    -
    -constexpr
    -
    -

    Returns true if any member or type descriptor has a name equal to the input parameter.

    -
    -

    ◆ contains() [2/2]

    +

    ◆ contains()

    @@ -472,8 +427,8 @@

    -

    ◆ filter()

    + +

    ◆ filter()

    @@ -492,7 +447,7 @@

    - F  + F &&  f  @@ -511,8 +466,8 @@

    -

    ◆ find_first()

    + +

    ◆ find_first()

    @@ -531,7 +486,7 @@

    - F  + F &&  f  @@ -550,47 +505,8 @@

    -

    ◆ find_one() [1/2]

    - -
    -
    -
    -template<size_t N, typename... Ts>
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    constexpr auto refl::util::find_one (type_list< Ts... > list,
    const const_string< N > & name 
    )
    -
    -constexpr
    -
    -

    Returns the member that has the specified name. Fails with static_assert if no such member exists. Calling f(Ts{})... should be valid in a constexpr context.

    - -
    -
    - -

    ◆ find_one() [2/2]

    + +

    ◆ find_one()

    @@ -609,7 +525,7 @@

    - F  + F &&  f  diff --git a/docs/namespaces_dup.js b/docs/namespaces_dup.js index 56a87d0..ab9b3ca 100644 --- a/docs/namespaces_dup.js +++ b/docs/namespaces_dup.js @@ -1,4 +1,48 @@ var namespaces_dup = [ + [ "refl-cpp v0.10.0 [Documentation]", "md__r_e_a_d_m_e.html#autotoc_md25", null ], + [ "Introduction", "md__r_e_a_d_m_e.html#autotoc_md26", null ], + [ "Requirements", "md__r_e_a_d_m_e.html#autotoc_md27", null ], + [ "Usage", "md__r_e_a_d_m_e.html#autotoc_md28", null ], + [ "License", "md__r_e_a_d_m_e.html#autotoc_md29", null ], + [ "Contributing", "md__r_e_a_d_m_e.html#autotoc_md30", null ], + [ "Donations", "md__r_e_a_d_m_e.html#autotoc_md31", null ], + [ "Getting started", "md__r_e_a_d_m_e.html#autotoc_md32", null ], + [ "Examples", "md__r_e_a_d_m_e.html#autotoc_md33", [ + [ "Basic usage example", "md__r_e_a_d_m_e.html#autotoc_md34", null ] + ] ], + [ "How it works", "md__r_e_a_d_m_e.html#autotoc_md35", null ], + [ "Metadata-generation macros", "md__r_e_a_d_m_e.html#autotoc_md36", null ], + [ "Old style macros", "md__r_e_a_d_m_e.html#autotoc_md37", null ], + [ "Changelog", "md__r_e_a_d_m_e.html#autotoc_md38", [ + [ "v0.10.0", "md__r_e_a_d_m_e.html#autotoc_md40", null ], + [ "v0.9.1", "md__r_e_a_d_m_e.html#autotoc_md41", null ], + [ "v0.9.0", "md__r_e_a_d_m_e.html#autotoc_md42", null ], + [ "v0.8.2", "md__r_e_a_d_m_e.html#autotoc_md43", null ], + [ "v0.8.1", "md__r_e_a_d_m_e.html#autotoc_md44", null ], + [ "v0.8.0", "md__r_e_a_d_m_e.html#autotoc_md45", null ], + [ "v0.7.0", "md__r_e_a_d_m_e.html#autotoc_md46", null ], + [ "v0.6.5", "md__r_e_a_d_m_e.html#autotoc_md47", null ], + [ "v0.6.4", "md__r_e_a_d_m_e.html#autotoc_md48", null ], + [ "v0.6.3", "md__r_e_a_d_m_e.html#autotoc_md49", null ], + [ "v0.6.2", "md__r_e_a_d_m_e.html#autotoc_md50", null ], + [ "v0.6.1", "md__r_e_a_d_m_e.html#autotoc_md51", null ], + [ "v0.6.0", "md__r_e_a_d_m_e.html#autotoc_md52", null ], + [ "v0.5.2", "md__r_e_a_d_m_e.html#autotoc_md53", null ], + [ "v0.5.1", "md__r_e_a_d_m_e.html#autotoc_md54", null ], + [ "v0.5.0", "md__r_e_a_d_m_e.html#autotoc_md55", null ], + [ "v0.4.2", "md__r_e_a_d_m_e.html#autotoc_md56", null ], + [ "v0.4.1", "md__r_e_a_d_m_e.html#autotoc_md57", null ], + [ "v0.4.0", "md__r_e_a_d_m_e.html#autotoc_md58", null ], + [ "v0.3.5", "md__r_e_a_d_m_e.html#autotoc_md59", null ], + [ "v0.3.4", "md__r_e_a_d_m_e.html#autotoc_md60", null ], + [ "v0.3.3", "md__r_e_a_d_m_e.html#autotoc_md61", null ], + [ "v0.3.2", "md__r_e_a_d_m_e.html#autotoc_md62", null ], + [ "v0.3.1", "md__r_e_a_d_m_e.html#autotoc_md63", null ], + [ "v0.3.0", "md__r_e_a_d_m_e.html#autotoc_md64", null ], + [ "v0.2.1", "md__r_e_a_d_m_e.html#autotoc_md65", null ], + [ "v0.2.0", "md__r_e_a_d_m_e.html#autotoc_md66", null ], + [ "v0.1.2", "md__r_e_a_d_m_e.html#autotoc_md67", null ] + ] ], [ "refl", "namespacerefl.html", "namespacerefl" ] ]; \ No newline at end of file diff --git a/docs/navtreedata.js b/docs/navtreedata.js index b6cf830..703f5b2 100644 --- a/docs/navtreedata.js +++ b/docs/navtreedata.js @@ -52,50 +52,7 @@ var NAVTREE = [ "Type-level operations", "md__introduction.html#autotoc_md23", null ], [ "Examples Guide", "md__introduction.html#autotoc_md24", null ] ] ], - [ "refl-cpp v0.9.1 (Documentation)", "md__r_e_a_d_m_e.html", [ - [ "Introduction", "md__r_e_a_d_m_e.html#autotoc_md26", null ], - [ "Requirements", "md__r_e_a_d_m_e.html#autotoc_md27", null ], - [ "Usage", "md__r_e_a_d_m_e.html#autotoc_md28", null ], - [ "License", "md__r_e_a_d_m_e.html#autotoc_md29", null ], - [ "Contributing", "md__r_e_a_d_m_e.html#autotoc_md30", null ], - [ "Donations", "md__r_e_a_d_m_e.html#autotoc_md31", null ], - [ "Getting started", "md__r_e_a_d_m_e.html#autotoc_md32", null ], - [ "Examples", "md__r_e_a_d_m_e.html#autotoc_md33", [ - [ "Basic usage example", "md__r_e_a_d_m_e.html#autotoc_md34", null ] - ] ], - [ "How it works", "md__r_e_a_d_m_e.html#autotoc_md35", null ], - [ "Metadata-generation macros", "md__r_e_a_d_m_e.html#autotoc_md36", null ], - [ "Old style macros", "md__r_e_a_d_m_e.html#autotoc_md37", null ], - [ "Changelog", "md__r_e_a_d_m_e.html#autotoc_md38", [ - [ "v0.9.1", "md__r_e_a_d_m_e.html#autotoc_md40", null ], - [ "v0.9.0", "md__r_e_a_d_m_e.html#autotoc_md41", null ], - [ "v0.8.2", "md__r_e_a_d_m_e.html#autotoc_md42", null ], - [ "v0.8.1", "md__r_e_a_d_m_e.html#autotoc_md43", null ], - [ "v0.8.0", "md__r_e_a_d_m_e.html#autotoc_md44", null ], - [ "v0.7.0", "md__r_e_a_d_m_e.html#autotoc_md45", null ], - [ "v0.6.5", "md__r_e_a_d_m_e.html#autotoc_md46", null ], - [ "v0.6.4", "md__r_e_a_d_m_e.html#autotoc_md47", null ], - [ "v0.6.3", "md__r_e_a_d_m_e.html#autotoc_md48", null ], - [ "v0.6.2", "md__r_e_a_d_m_e.html#autotoc_md49", null ], - [ "v0.6.1", "md__r_e_a_d_m_e.html#autotoc_md50", null ], - [ "v0.6.0", "md__r_e_a_d_m_e.html#autotoc_md51", null ], - [ "v0.5.2", "md__r_e_a_d_m_e.html#autotoc_md52", null ], - [ "v0.5.1", "md__r_e_a_d_m_e.html#autotoc_md53", null ], - [ "v0.5.0", "md__r_e_a_d_m_e.html#autotoc_md54", null ], - [ "v0.4.2", "md__r_e_a_d_m_e.html#autotoc_md55", null ], - [ "v0.4.1", "md__r_e_a_d_m_e.html#autotoc_md56", null ], - [ "v0.4.0", "md__r_e_a_d_m_e.html#autotoc_md57", null ], - [ "v0.3.5", "md__r_e_a_d_m_e.html#autotoc_md58", null ], - [ "v0.3.4", "md__r_e_a_d_m_e.html#autotoc_md59", null ], - [ "v0.3.3", "md__r_e_a_d_m_e.html#autotoc_md60", null ], - [ "v0.3.2", "md__r_e_a_d_m_e.html#autotoc_md61", null ], - [ "v0.3.1", "md__r_e_a_d_m_e.html#autotoc_md62", null ], - [ "v0.3.0", "md__r_e_a_d_m_e.html#autotoc_md63", null ], - [ "v0.2.1", "md__r_e_a_d_m_e.html#autotoc_md64", null ], - [ "v0.2.0", "md__r_e_a_d_m_e.html#autotoc_md65", null ], - [ "v0.1.2", "md__r_e_a_d_m_e.html#autotoc_md66", null ] - ] ] - ] ], + [ "README", "md__r_e_a_d_m_e.html", null ], [ "Namespaces", "namespaces.html", [ [ "Namespace List", "namespaces.html", "namespaces_dup" ], [ "Namespace Members", "namespacemembers.html", [ @@ -129,7 +86,7 @@ var NAVTREE = var NAVTREEINDEX = [ "annotated.html", -"structrefl_1_1trait_1_1is__property.html" +"structrefl_1_1trait_1_1is__member.html" ]; var SYNCONMSG = 'click to disable panel synchronisation'; diff --git a/docs/navtreeindex0.js b/docs/navtreeindex0.js index 9a2a88a..0fc724a 100644 --- a/docs/navtreeindex0.js +++ b/docs/navtreeindex0.js @@ -16,7 +16,7 @@ var NAVTREEINDEX0 = "classrefl_1_1descriptor_1_1type__descriptor.html":[4,0,0,1,3], "classrefl_1_1descriptor_1_1type__descriptor.html#a38599f7e777bda08453cdc4387c03708":[4,0,0,1,3,2], "classrefl_1_1descriptor_1_1type__descriptor.html#a5c8eefceec1c9eba0543acd3336f498e":[4,0,0,1,3,0], -"classrefl_1_1descriptor_1_1type__descriptor.html#aa75434f86b9f21d8c2a03e1423432b76":[4,0,0,1,3,1], +"classrefl_1_1descriptor_1_1type__descriptor.html#abced96d86e87fce0968b1a9c9c2df561":[4,0,0,1,3,1], "files.html":[5,0], "functions.html":[4,3,0], "functions_func.html":[4,3,1], @@ -52,157 +52,163 @@ var NAVTREEINDEX0 = "md__introduction.html#autotoc_md8":[1,0], "md__introduction.html#autotoc_md9":[1,1], "md__r_e_a_d_m_e.html":[2], -"md__r_e_a_d_m_e.html#autotoc_md26":[2,0], -"md__r_e_a_d_m_e.html#autotoc_md27":[2,1], -"md__r_e_a_d_m_e.html#autotoc_md28":[2,2], -"md__r_e_a_d_m_e.html#autotoc_md29":[2,3], -"md__r_e_a_d_m_e.html#autotoc_md30":[2,4], -"md__r_e_a_d_m_e.html#autotoc_md31":[2,5], -"md__r_e_a_d_m_e.html#autotoc_md32":[2,6], -"md__r_e_a_d_m_e.html#autotoc_md33":[2,7], -"md__r_e_a_d_m_e.html#autotoc_md34":[2,7,0], -"md__r_e_a_d_m_e.html#autotoc_md35":[2,8], -"md__r_e_a_d_m_e.html#autotoc_md36":[2,9], -"md__r_e_a_d_m_e.html#autotoc_md37":[2,10], -"md__r_e_a_d_m_e.html#autotoc_md38":[2,11], -"md__r_e_a_d_m_e.html#autotoc_md40":[2,11,0], -"md__r_e_a_d_m_e.html#autotoc_md41":[2,11,1], -"md__r_e_a_d_m_e.html#autotoc_md42":[2,11,2], -"md__r_e_a_d_m_e.html#autotoc_md43":[2,11,3], -"md__r_e_a_d_m_e.html#autotoc_md44":[2,11,4], -"md__r_e_a_d_m_e.html#autotoc_md45":[2,11,5], -"md__r_e_a_d_m_e.html#autotoc_md46":[2,11,6], -"md__r_e_a_d_m_e.html#autotoc_md47":[2,11,7], -"md__r_e_a_d_m_e.html#autotoc_md48":[2,11,8], -"md__r_e_a_d_m_e.html#autotoc_md49":[2,11,9], -"md__r_e_a_d_m_e.html#autotoc_md50":[2,11,10], -"md__r_e_a_d_m_e.html#autotoc_md51":[2,11,11], -"md__r_e_a_d_m_e.html#autotoc_md52":[2,11,12], -"md__r_e_a_d_m_e.html#autotoc_md53":[2,11,13], -"md__r_e_a_d_m_e.html#autotoc_md54":[2,11,14], -"md__r_e_a_d_m_e.html#autotoc_md55":[2,11,15], -"md__r_e_a_d_m_e.html#autotoc_md56":[2,11,16], -"md__r_e_a_d_m_e.html#autotoc_md57":[2,11,17], -"md__r_e_a_d_m_e.html#autotoc_md58":[2,11,18], -"md__r_e_a_d_m_e.html#autotoc_md59":[2,11,19], -"md__r_e_a_d_m_e.html#autotoc_md60":[2,11,20], -"md__r_e_a_d_m_e.html#autotoc_md61":[2,11,21], -"md__r_e_a_d_m_e.html#autotoc_md62":[2,11,22], -"md__r_e_a_d_m_e.html#autotoc_md63":[2,11,23], -"md__r_e_a_d_m_e.html#autotoc_md64":[2,11,24], -"md__r_e_a_d_m_e.html#autotoc_md65":[2,11,25], -"md__r_e_a_d_m_e.html#autotoc_md66":[2,11,26], +"md__r_e_a_d_m_e.html#autotoc_md25":[0], +"md__r_e_a_d_m_e.html#autotoc_md26":[1], +"md__r_e_a_d_m_e.html#autotoc_md27":[2], +"md__r_e_a_d_m_e.html#autotoc_md28":[3], +"md__r_e_a_d_m_e.html#autotoc_md29":[4], +"md__r_e_a_d_m_e.html#autotoc_md30":[5], +"md__r_e_a_d_m_e.html#autotoc_md31":[6], +"md__r_e_a_d_m_e.html#autotoc_md32":[7], +"md__r_e_a_d_m_e.html#autotoc_md33":[8], +"md__r_e_a_d_m_e.html#autotoc_md34":[8,0], +"md__r_e_a_d_m_e.html#autotoc_md35":[9], +"md__r_e_a_d_m_e.html#autotoc_md36":[10], +"md__r_e_a_d_m_e.html#autotoc_md37":[11], +"md__r_e_a_d_m_e.html#autotoc_md38":[12], +"md__r_e_a_d_m_e.html#autotoc_md40":[12,0], +"md__r_e_a_d_m_e.html#autotoc_md41":[12,1], +"md__r_e_a_d_m_e.html#autotoc_md42":[12,2], +"md__r_e_a_d_m_e.html#autotoc_md43":[12,3], +"md__r_e_a_d_m_e.html#autotoc_md44":[12,4], +"md__r_e_a_d_m_e.html#autotoc_md45":[12,5], +"md__r_e_a_d_m_e.html#autotoc_md46":[12,6], +"md__r_e_a_d_m_e.html#autotoc_md47":[12,7], +"md__r_e_a_d_m_e.html#autotoc_md48":[12,8], +"md__r_e_a_d_m_e.html#autotoc_md49":[12,9], +"md__r_e_a_d_m_e.html#autotoc_md50":[12,10], +"md__r_e_a_d_m_e.html#autotoc_md51":[12,11], +"md__r_e_a_d_m_e.html#autotoc_md52":[12,12], +"md__r_e_a_d_m_e.html#autotoc_md53":[12,13], +"md__r_e_a_d_m_e.html#autotoc_md54":[12,14], +"md__r_e_a_d_m_e.html#autotoc_md55":[12,15], +"md__r_e_a_d_m_e.html#autotoc_md56":[12,16], +"md__r_e_a_d_m_e.html#autotoc_md57":[12,17], +"md__r_e_a_d_m_e.html#autotoc_md58":[12,18], +"md__r_e_a_d_m_e.html#autotoc_md59":[12,19], +"md__r_e_a_d_m_e.html#autotoc_md60":[12,20], +"md__r_e_a_d_m_e.html#autotoc_md61":[12,21], +"md__r_e_a_d_m_e.html#autotoc_md62":[12,22], +"md__r_e_a_d_m_e.html#autotoc_md63":[12,23], +"md__r_e_a_d_m_e.html#autotoc_md64":[12,24], +"md__r_e_a_d_m_e.html#autotoc_md65":[12,25], +"md__r_e_a_d_m_e.html#autotoc_md66":[12,26], +"md__r_e_a_d_m_e.html#autotoc_md67":[12,27], "namespacemembers.html":[3,1,0], "namespacemembers_func.html":[3,1,1], "namespacemembers_type.html":[3,1,3], "namespacemembers_vars.html":[3,1,2], -"namespacerefl.html":[3,0,0], +"namespacerefl.html":[3,0,13], "namespacerefl.html":[4,0,0], -"namespacerefl_1_1attr.html":[3,0,0,0], +"namespacerefl_1_1attr.html":[3,0,13,0], "namespacerefl_1_1attr.html":[4,0,0,0], -"namespacerefl_1_1attr_1_1usage.html":[3,0,0,0,0], +"namespacerefl_1_1attr_1_1usage.html":[3,0,13,0,0], "namespacerefl_1_1attr_1_1usage.html":[4,0,0,0,0], -"namespacerefl_1_1descriptor.html":[3,0,0,1], +"namespacerefl_1_1descriptor.html":[3,0,13,1], "namespacerefl_1_1descriptor.html":[4,0,0,1], -"namespacerefl_1_1member.html":[3,0,0,2], +"namespacerefl_1_1member.html":[3,0,13,2], "namespacerefl_1_1member.html":[4,0,0,2], -"namespacerefl_1_1runtime.html":[3,0,0,3], +"namespacerefl_1_1runtime.html":[3,0,13,3], "namespacerefl_1_1runtime.html":[4,0,0,3], -"namespacerefl_1_1trait.html":[3,0,0,4], +"namespacerefl_1_1trait.html":[3,0,13,4], "namespacerefl_1_1trait.html":[4,0,0,4], -"namespacerefl_1_1util.html":[3,0,0,5], +"namespacerefl_1_1util.html":[3,0,13,5], "namespacerefl_1_1util.html":[4,0,0,5], "namespaces.html":[3,0], "pages.html":[], "refl_8hpp.html":[5,0,0], -"refl_8hpp.html#a019b3322cffd29fd129b6378ef499668":[5,0,0,96], -"refl_8hpp.html#a02b3206d4dd8e90dca7ff5631212c266":[5,0,0,104], -"refl_8hpp.html#a079a7d252e99cd446ec275b218c461d1":[5,0,0,112], -"refl_8hpp.html#a07f78f44c53134d640b52d34ca1d9031":[5,0,0,80], -"refl_8hpp.html#a0831da0114fa506579224ce219d0ab50":[5,0,0,115], -"refl_8hpp.html#a0aec187f4a301c7f995ac65e17fa029a":[5,0,0,109], -"refl_8hpp.html#a12e0f11daf60216683e454102d247300":[5,0,0,120], -"refl_8hpp.html#a14c814eb58055da8022cef91058b7d3a":[5,0,0,141], -"refl_8hpp.html#a19919596cdd45c858d891c91a7826b22":[5,0,0,98], -"refl_8hpp.html#a199ad5af9e6ac09eba8eaa6a159b8209":[5,0,0,133], -"refl_8hpp.html#a1d84159539d36286560bb12d8bb96dc0":[5,0,0,137], -"refl_8hpp.html#a1edadcdb602a1e96beedbdeeca801701":[5,0,0,89], -"refl_8hpp.html#a2260f346ec8347a51e5f40c626bb0e07":[5,0,0,75], -"refl_8hpp.html#a27b580a856a2aedc8487f28a4ded1c03":[5,0,0,76], -"refl_8hpp.html#a281a1cb4e19fe3ff645e48867aa8daf1":[5,0,0,79], -"refl_8hpp.html#a28729c6245c3fec57d783ee3eb5dc6cd":[5,0,0,131], -"refl_8hpp.html#a2cb939da062920a29a38dff73aaf0968":[5,0,0,65], -"refl_8hpp.html#a2d90ffbabd9fc8cc17579fc33d919d71":[5,0,0,67], -"refl_8hpp.html#a2e9e9b85233f7f13fe09cb4fd6bbc6f6":[5,0,0,103], -"refl_8hpp.html#a351543d8dafe7ff4ffc8a2ee8f8b596f":[5,0,0,143], -"refl_8hpp.html#a3c6a2cc90e4da4ea186e28ed0c2de7a3":[5,0,0,86], -"refl_8hpp.html#a3da657a6ac313d904e17e420a9d47533":[5,0,0,116], -"refl_8hpp.html#a3eb9f0fdea25c64045020adb97393613":[5,0,0,63], -"refl_8hpp.html#a3f8c7841ef8896c48746f951cdd0029c":[5,0,0,58], -"refl_8hpp.html#a44df4cd5b930d0ee80b2830097f213d7":[5,0,0,132], -"refl_8hpp.html#a486e58c3515f4da0b687a195f0db1734":[5,0,0,110], -"refl_8hpp.html#a489a58f1df6e126e10534e783585c921":[5,0,0,106], -"refl_8hpp.html#a4902f2250ab00bb4884b348893fb7641":[5,0,0,126], -"refl_8hpp.html#a4e6ab98a732ec684223ddfd0734f260f":[5,0,0,61], -"refl_8hpp.html#a5acb0bd0c244bac6c75250660d0f37bd":[5,0,0,125], -"refl_8hpp.html#a5ca7ae3c51dbe88ffa332c310eac9f11":[5,0,0,105], -"refl_8hpp.html#a5cfe5ce0bb235343bab9b69d5115a738":[5,0,0,81], -"refl_8hpp.html#a644910ba9f353221e50e2541a492e5cc":[5,0,0,68], -"refl_8hpp.html#a66e622cf9e49e06d1e58cb8421f2bd87":[5,0,0,123], -"refl_8hpp.html#a6e49f043b54cb178073ff320e77eaee6":[5,0,0,108], -"refl_8hpp.html#a6ebcdc8886ed6cf62bd914eb9566882a":[5,0,0,142], -"refl_8hpp.html#a6f75b02aaddfc2beafcbf1fadedae865":[5,0,0,136], -"refl_8hpp.html#a6fe94106718ac7824623d4dc7a19411c":[5,0,0,102], -"refl_8hpp.html#a73d3d356c430a7247749d0fb7fb037af":[5,0,0,74], -"refl_8hpp.html#a75e4295de1bf1350238fe01eb71d9cc1":[5,0,0,83], -"refl_8hpp.html#a7914b083611095970bd257f39db71d5c":[5,0,0,87], -"refl_8hpp.html#a794423ed7e0729c701fc4fe32ff65f75":[5,0,0,100], -"refl_8hpp.html#a7a7ca0104aa41acd000b82a01341d40e":[5,0,0,84], -"refl_8hpp.html#a7ca109d4c938be71f874a416712ddcc6":[5,0,0,138], -"refl_8hpp.html#a832b795bfa32d4130b04e9e33635c507":[5,0,0,66], -"refl_8hpp.html#a879e3a3cebc3fdd3a9581fba663cabdf":[5,0,0,97], -"refl_8hpp.html#a887ab74c1bcde5ce32a158e03b6b9f77":[5,0,0,90], -"refl_8hpp.html#a8a652def66d95d9d9838e32396db25fe":[5,0,0,121], -"refl_8hpp.html#a8c142f0b5a366ee8b67c0009fa01c9d2":[5,0,0,72], -"refl_8hpp.html#a90fc62b3597ebdeda8040ff78c0628c3":[5,0,0,73], -"refl_8hpp.html#a96df3c32bb1b2672b5909aa9cca42cf9":[5,0,0,82], -"refl_8hpp.html#a973676ecef8d9efe0e3557d0e8353a20":[5,0,0,95], -"refl_8hpp.html#a9bfb80943064379285289b001fb4c1cc":[5,0,0,119], -"refl_8hpp.html#a9c31605a5aef99561286104c9a3da628":[5,0,0,145], -"refl_8hpp.html#a9ddab8c6121c2ff87a0694fe48e62914":[5,0,0,114], -"refl_8hpp.html#a9fe173b72f78f196580cd2b5733d3126":[5,0,0,70], -"refl_8hpp.html#aa14ae081a7abd0d1c4b78d602d22823b":[5,0,0,117], -"refl_8hpp.html#aa16ab2db12eb07f30ea39f2d94787486":[5,0,0,134], -"refl_8hpp.html#aa31714a8d8acc6824a58850336fa43ae":[5,0,0,93], -"refl_8hpp.html#aa7c9753a84fecf4d9c62ce5b5063fb47":[5,0,0,107], -"refl_8hpp.html#aa9940e0488744c7466f3410f6acce07b":[5,0,0,113], -"refl_8hpp.html#aad1d1867818badb7888668e7756c76be":[5,0,0,130], -"refl_8hpp.html#ab419efb086dd5940b0f032810610e2fa":[5,0,0,124], -"refl_8hpp.html#ab454b702630ade83ab2a13ef90d4c7b9":[5,0,0,122], -"refl_8hpp.html#ab5d05c1c63f4794ce67cbdd71f322ae6":[5,0,0,85], -"refl_8hpp.html#ab6073149190b624aed7eb8bbab508c14":[5,0,0,94], -"refl_8hpp.html#ab8b29546446a5c8334ee733b161e6f3e":[5,0,0,78], -"refl_8hpp.html#abbb5a84668172acdffcf557ec14061a9":[5,0,0,99], -"refl_8hpp.html#abd6e1d866e696d2f1173fd2d3cd30875":[5,0,0,77], -"refl_8hpp.html#ac16abdfd738e4366eb239e904b90e930":[5,0,0,62], -"refl_8hpp.html#ac73523bc0ad4428a1330ffa0d9b44cd8":[5,0,0,101], -"refl_8hpp.html#ac7f8b46b069c2311101168d841a71b37":[5,0,0,64], -"refl_8hpp.html#acc8c814d7bd04ba0cf4386e49e469a3b":[5,0,0,118], -"refl_8hpp.html#acdd4c244b7e4e4e271fa159ad2531397":[5,0,0,91], -"refl_8hpp.html#ad77fb25bb894a5f1f091a4a94fa67b3f":[5,0,0,59], -"refl_8hpp.html#ad79e9e7d64a8511211dc01f0b74e4e17":[5,0,0,127], -"refl_8hpp.html#adb5bb478ef1cc5966e9df7c9b10b5dd3":[5,0,0,129], -"refl_8hpp.html#adc29b89a87a223da5f194d5918ba94f5":[5,0,0,60], -"refl_8hpp.html#ade7f7a2ee76218ab3cde2b4a44d6a0f9":[5,0,0,92], -"refl_8hpp.html#ae0b3daa04427017785fc8f2c793837af":[5,0,0,139], -"refl_8hpp.html#ae2279db43338368acb8af9ade961a504":[5,0,0,69], -"refl_8hpp.html#ae95fbc2d63a7db5ce4d8a4dcca3d637e":[5,0,0,140], -"refl_8hpp.html#aea0417f0fd0129f2cf1ee5fa055d9c20":[5,0,0,88], -"refl_8hpp.html#aeb53039f8928d4e4a207407a865034f0":[5,0,0,135], -"refl_8hpp.html#af47d9eca02998b834a0d827aa2be2252":[5,0,0,111], -"refl_8hpp.html#af69ca2ba2b0353b7d3433f6a77b62902":[5,0,0,128], -"refl_8hpp.html#af7db9918de2fd9e0d34caf4b6a5c1f77":[5,0,0,144], -"refl_8hpp.html#afb7c8b735416e75efa6443d59fe46493":[5,0,0,71], +"refl_8hpp.html#a02b3206d4dd8e90dca7ff5631212c266":[5,0,0,99], +"refl_8hpp.html#a079a7d252e99cd446ec275b218c461d1":[5,0,0,107], +"refl_8hpp.html#a07f78f44c53134d640b52d34ca1d9031":[5,0,0,73], +"refl_8hpp.html#a0831da0114fa506579224ce219d0ab50":[5,0,0,110], +"refl_8hpp.html#a08a7c33d3ef1f336360a68af8f14bc44":[5,0,0,79], +"refl_8hpp.html#a097549e41bac7745db61442f94135c41":[5,0,0,90], +"refl_8hpp.html#a0aec187f4a301c7f995ac65e17fa029a":[5,0,0,104], +"refl_8hpp.html#a11002f7ba1b41398115b0b102c0bacf0":[5,0,0,67], +"refl_8hpp.html#a12e0f11daf60216683e454102d247300":[5,0,0,115], +"refl_8hpp.html#a130a8f415fe4bcb35bef941e71711a73":[5,0,0,86], +"refl_8hpp.html#a19919596cdd45c858d891c91a7826b22":[5,0,0,93], +"refl_8hpp.html#a199ad5af9e6ac09eba8eaa6a159b8209":[5,0,0,128], +"refl_8hpp.html#a1d84159539d36286560bb12d8bb96dc0":[5,0,0,132], +"refl_8hpp.html#a2260f346ec8347a51e5f40c626bb0e07":[5,0,0,68], +"refl_8hpp.html#a27b580a856a2aedc8487f28a4ded1c03":[5,0,0,69], +"refl_8hpp.html#a281a1cb4e19fe3ff645e48867aa8daf1":[5,0,0,72], +"refl_8hpp.html#a28729c6245c3fec57d783ee3eb5dc6cd":[5,0,0,126], +"refl_8hpp.html#a2cb939da062920a29a38dff73aaf0968":[5,0,0,55], +"refl_8hpp.html#a2d90ffbabd9fc8cc17579fc33d919d71":[5,0,0,57], +"refl_8hpp.html#a2e9e9b85233f7f13fe09cb4fd6bbc6f6":[5,0,0,98], +"refl_8hpp.html#a351543d8dafe7ff4ffc8a2ee8f8b596f":[5,0,0,138], +"refl_8hpp.html#a38acd7e400afcfd16d25d5c6ae09e65a":[5,0,0,76], +"refl_8hpp.html#a3da657a6ac313d904e17e420a9d47533":[5,0,0,111], +"refl_8hpp.html#a3eb9f0fdea25c64045020adb97393613":[5,0,0,53], +"refl_8hpp.html#a44df4cd5b930d0ee80b2830097f213d7":[5,0,0,127], +"refl_8hpp.html#a486e58c3515f4da0b687a195f0db1734":[5,0,0,105], +"refl_8hpp.html#a489a58f1df6e126e10534e783585c921":[5,0,0,101], +"refl_8hpp.html#a4902f2250ab00bb4884b348893fb7641":[5,0,0,121], +"refl_8hpp.html#a4e6ab98a732ec684223ddfd0734f260f":[5,0,0,51], +"refl_8hpp.html#a5a70ee908d690769979f0aa9f57eb3e9":[5,0,0,136], +"refl_8hpp.html#a5acb0bd0c244bac6c75250660d0f37bd":[5,0,0,120], +"refl_8hpp.html#a5ca7ae3c51dbe88ffa332c310eac9f11":[5,0,0,100], +"refl_8hpp.html#a5cfe5ce0bb235343bab9b69d5115a738":[5,0,0,75], +"refl_8hpp.html#a644910ba9f353221e50e2541a492e5cc":[5,0,0,58], +"refl_8hpp.html#a6685e65aeb830a5e27dc8e4f2085ce27":[5,0,0,92], +"refl_8hpp.html#a66e622cf9e49e06d1e58cb8421f2bd87":[5,0,0,118], +"refl_8hpp.html#a69ecf7d87e1278607e8735b8f0830b89":[5,0,0,70], +"refl_8hpp.html#a6e49f043b54cb178073ff320e77eaee6":[5,0,0,103], +"refl_8hpp.html#a6ebcdc8886ed6cf62bd914eb9566882a":[5,0,0,137], +"refl_8hpp.html#a6f75b02aaddfc2beafcbf1fadedae865":[5,0,0,131], +"refl_8hpp.html#a6fe94106718ac7824623d4dc7a19411c":[5,0,0,97], +"refl_8hpp.html#a73d3d356c430a7247749d0fb7fb037af":[5,0,0,66], +"refl_8hpp.html#a75e4295de1bf1350238fe01eb71d9cc1":[5,0,0,80], +"refl_8hpp.html#a7914b083611095970bd257f39db71d5c":[5,0,0,83], +"refl_8hpp.html#a794423ed7e0729c701fc4fe32ff65f75":[5,0,0,95], +"refl_8hpp.html#a7a7ca0104aa41acd000b82a01341d40e":[5,0,0,81], +"refl_8hpp.html#a7ca109d4c938be71f874a416712ddcc6":[5,0,0,133], +"refl_8hpp.html#a832b795bfa32d4130b04e9e33635c507":[5,0,0,56], +"refl_8hpp.html#a85e59f180bc9d09b31f5849de9e756bc":[5,0,0,85], +"refl_8hpp.html#a8c142f0b5a366ee8b67c0009fa01c9d2":[5,0,0,63], +"refl_8hpp.html#a90fc62b3597ebdeda8040ff78c0628c3":[5,0,0,64], +"refl_8hpp.html#a96df3c32bb1b2672b5909aa9cca42cf9":[5,0,0,77], +"refl_8hpp.html#a988e607c536b5e75698d9f086909246c":[5,0,0,116], +"refl_8hpp.html#a9bfb80943064379285289b001fb4c1cc":[5,0,0,114], +"refl_8hpp.html#a9c31605a5aef99561286104c9a3da628":[5,0,0,140], +"refl_8hpp.html#a9ddab8c6121c2ff87a0694fe48e62914":[5,0,0,109], +"refl_8hpp.html#a9fe173b72f78f196580cd2b5733d3126":[5,0,0,60], +"refl_8hpp.html#aa14ae081a7abd0d1c4b78d602d22823b":[5,0,0,112], +"refl_8hpp.html#aa16ab2db12eb07f30ea39f2d94787486":[5,0,0,129], +"refl_8hpp.html#aa31714a8d8acc6824a58850336fa43ae":[5,0,0,89], +"refl_8hpp.html#aa7c9753a84fecf4d9c62ce5b5063fb47":[5,0,0,102], +"refl_8hpp.html#aa9940e0488744c7466f3410f6acce07b":[5,0,0,108], +"refl_8hpp.html#aad1d1867818badb7888668e7756c76be":[5,0,0,125], +"refl_8hpp.html#ab419efb086dd5940b0f032810610e2fa":[5,0,0,119], +"refl_8hpp.html#ab454b702630ade83ab2a13ef90d4c7b9":[5,0,0,117], +"refl_8hpp.html#ab4aae36e6ff8c6d3adb2cc91ba985e80":[5,0,0,62], +"refl_8hpp.html#ab5d05c1c63f4794ce67cbdd71f322ae6":[5,0,0,82], +"refl_8hpp.html#ab8b29546446a5c8334ee733b161e6f3e":[5,0,0,71], +"refl_8hpp.html#ab9ae2dbbb031faf63f04ffd59f476140":[5,0,0,78], +"refl_8hpp.html#abbb5a84668172acdffcf557ec14061a9":[5,0,0,94], +"refl_8hpp.html#ac16abdfd738e4366eb239e904b90e930":[5,0,0,52], +"refl_8hpp.html#ac73523bc0ad4428a1330ffa0d9b44cd8":[5,0,0,96], +"refl_8hpp.html#ac7f8b46b069c2311101168d841a71b37":[5,0,0,54], +"refl_8hpp.html#acc8c814d7bd04ba0cf4386e49e469a3b":[5,0,0,113], +"refl_8hpp.html#acdd4c244b7e4e4e271fa159ad2531397":[5,0,0,87], +"refl_8hpp.html#ad1d30e9de0766352287491f18da067c0":[5,0,0,91], +"refl_8hpp.html#ad77fb25bb894a5f1f091a4a94fa67b3f":[5,0,0,49], +"refl_8hpp.html#ad79e9e7d64a8511211dc01f0b74e4e17":[5,0,0,122], +"refl_8hpp.html#adb5bb478ef1cc5966e9df7c9b10b5dd3":[5,0,0,124], +"refl_8hpp.html#adc29b89a87a223da5f194d5918ba94f5":[5,0,0,50], +"refl_8hpp.html#ade7f7a2ee76218ab3cde2b4a44d6a0f9":[5,0,0,88], +"refl_8hpp.html#ae0240bb2e53db6d575271a9d5ebb8e85":[5,0,0,65], +"refl_8hpp.html#ae0b3daa04427017785fc8f2c793837af":[5,0,0,134], +"refl_8hpp.html#ae2279db43338368acb8af9ade961a504":[5,0,0,59], +"refl_8hpp.html#ae95fbc2d63a7db5ce4d8a4dcca3d637e":[5,0,0,135], +"refl_8hpp.html#aea0417f0fd0129f2cf1ee5fa055d9c20":[5,0,0,84], +"refl_8hpp.html#aeb53039f8928d4e4a207407a865034f0":[5,0,0,130], +"refl_8hpp.html#aebf821e974718cfb529971390da2ca60":[5,0,0,74], +"refl_8hpp.html#af47d9eca02998b834a0d827aa2be2252":[5,0,0,106], +"refl_8hpp.html#af69ca2ba2b0353b7d3433f6a77b62902":[5,0,0,123], +"refl_8hpp.html#af7db9918de2fd9e0d34caf4b6a5c1f77":[5,0,0,139], +"refl_8hpp.html#afb7c8b735416e75efa6443d59fe46493":[5,0,0,61], "refl_8hpp_source.html":[5,0,0], "structrefl_1_1attr_1_1base__types.html":[4,0,0,0,1], "structrefl_1_1attr_1_1base__types.html#a5bf13a7cf1300a7fec27ea0918a86adc":[4,0,0,0,1,0], @@ -224,30 +230,24 @@ var NAVTREEINDEX0 = "structrefl_1_1runtime_1_1proxy.html#a81d8bc1490cfcbfc4ac3cbbcbb299393":[4,0,0,3,0,0], "structrefl_1_1runtime_1_1proxy.html#aa35d06ce63700a4bde6f31cd640fcc5f":[4,0,0,3,0,1], "structrefl_1_1trait_1_1append.html":[4,0,0,4,0], -"structrefl_1_1trait_1_1append_3_01_t_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html":[4,0,0,4,1], -"structrefl_1_1trait_1_1append_3_01_t_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html#a25a863e26cb96d34a896e3cbd53e691e":[4,0,0,4,1,0], -"structrefl_1_1trait_1_1as__type__list.html":[4,0,0,4,2], -"structrefl_1_1trait_1_1as__type__list_3_01_t_3_01_ts_8_8_8_01_4_01_4.html":[4,0,0,4,3], -"structrefl_1_1trait_1_1as__type__list_3_01_t_3_01_ts_8_8_8_01_4_01_4.html#a83bf2f383c12d5294c40d3f91400f118":[4,0,0,4,3,0], -"structrefl_1_1trait_1_1concat.html":[4,0,0,4,4], -"structrefl_1_1trait_1_1concat_3_01type__list_3_01_ts_8_8_8_01_4_00_01type__list_3_01_us_8_8_8_01_4_01_4.html":[4,0,0,4,5], -"structrefl_1_1trait_1_1concat_3_01type__list_3_01_ts_8_8_8_01_4_00_01type__list_3_01_us_8_8_8_01_4_01_4.html#add54985c94907c26977b2efe16ded0e4":[4,0,0,4,5,0], -"structrefl_1_1trait_1_1contains.html":[4,0,0,4,6], -"structrefl_1_1trait_1_1contains__base.html":[4,0,0,4,7], -"structrefl_1_1trait_1_1contains__instance.html":[4,0,0,4,8], -"structrefl_1_1trait_1_1filter.html":[4,0,0,4,9], -"structrefl_1_1trait_1_1filter_3_01_predicate_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html":[4,0,0,4,10], -"structrefl_1_1trait_1_1filter_3_01_predicate_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html#aabb8d172070c69e43d418850c765343f":[4,0,0,4,10,0], -"structrefl_1_1trait_1_1first.html":[4,0,0,4,11], -"structrefl_1_1trait_1_1first_3_01type__list_3_01_t_00_01_ts_8_8_8_01_4_01_4.html":[4,0,0,4,12], -"structrefl_1_1trait_1_1first_3_01type__list_3_01_t_00_01_ts_8_8_8_01_4_01_4.html#a0d0e5ca6fc83685888fdab8c186c5ea6":[4,0,0,4,12,0], -"structrefl_1_1trait_1_1get.html":[4,0,0,4,13], -"structrefl_1_1trait_1_1get_3_01_n_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html":[4,0,0,4,14], -"structrefl_1_1trait_1_1init.html":[4,0,0,4,15], -"structrefl_1_1trait_1_1is__container.html":[4,0,0,4,16], -"structrefl_1_1trait_1_1is__field.html":[4,0,0,4,17], -"structrefl_1_1trait_1_1is__function.html":[4,0,0,4,18], -"structrefl_1_1trait_1_1is__instance.html":[4,0,0,4,19], -"structrefl_1_1trait_1_1is__instance__of.html":[4,0,0,4,20], -"structrefl_1_1trait_1_1is__member.html":[4,0,0,4,21] +"structrefl_1_1trait_1_1as__type__list.html":[4,0,0,4,1], +"structrefl_1_1trait_1_1as__type__list_3_01_t_3_01_ts_8_8_8_01_4_01_4.html":[4,0,0,4,2], +"structrefl_1_1trait_1_1as__type__list_3_01_t_3_01_ts_8_8_8_01_4_01_4.html#a83bf2f383c12d5294c40d3f91400f118":[4,0,0,4,2,0], +"structrefl_1_1trait_1_1concat.html":[4,0,0,4,3], +"structrefl_1_1trait_1_1concat_3_01type__list_3_01_ts_8_8_8_01_4_00_01type__list_3_01_us_8_8_8_01_4_01_4.html":[4,0,0,4,4], +"structrefl_1_1trait_1_1concat_3_01type__list_3_01_ts_8_8_8_01_4_00_01type__list_3_01_us_8_8_8_01_4_01_4.html#add54985c94907c26977b2efe16ded0e4":[4,0,0,4,4,0], +"structrefl_1_1trait_1_1contains.html":[4,0,0,4,5], +"structrefl_1_1trait_1_1contains__base.html":[4,0,0,4,6], +"structrefl_1_1trait_1_1contains__instance.html":[4,0,0,4,7], +"structrefl_1_1trait_1_1filter.html":[4,0,0,4,8], +"structrefl_1_1trait_1_1filter_3_01_predicate_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html":[4,0,0,4,9], +"structrefl_1_1trait_1_1filter_3_01_predicate_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html#aabb8d172070c69e43d418850c765343f":[4,0,0,4,9,0], +"structrefl_1_1trait_1_1get.html":[4,0,0,4,10], +"structrefl_1_1trait_1_1get_3_01_n_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html":[4,0,0,4,11], +"structrefl_1_1trait_1_1is__container.html":[4,0,0,4,12], +"structrefl_1_1trait_1_1is__descriptor.html":[4,0,0,4,13], +"structrefl_1_1trait_1_1is__field.html":[4,0,0,4,14], +"structrefl_1_1trait_1_1is__function.html":[4,0,0,4,15], +"structrefl_1_1trait_1_1is__instance.html":[4,0,0,4,16], +"structrefl_1_1trait_1_1is__instance__of.html":[4,0,0,4,17] }; diff --git a/docs/navtreeindex1.js b/docs/navtreeindex1.js index 34a904f..c7283de 100644 --- a/docs/navtreeindex1.js +++ b/docs/navtreeindex1.js @@ -1,26 +1,17 @@ var NAVTREEINDEX1 = { -"structrefl_1_1trait_1_1is__property.html":[4,0,0,4,22], -"structrefl_1_1trait_1_1is__proxy.html":[4,0,0,4,23], -"structrefl_1_1trait_1_1is__reflectable.html":[4,0,0,4,24], -"structrefl_1_1trait_1_1is__type.html":[4,0,0,4,25], -"structrefl_1_1trait_1_1last.html":[4,0,0,4,26], -"structrefl_1_1trait_1_1last_3_01type__list_3_01_t_00_01_ts_8_8_8_01_4_01_4.html":[4,0,0,4,27], -"structrefl_1_1trait_1_1last_3_01type__list_3_01_t_00_01_ts_8_8_8_01_4_01_4.html#a500bf3f9a0fdeb37fbf95fd5d055ea87":[4,0,0,4,27,0], -"structrefl_1_1trait_1_1map.html":[4,0,0,4,28], -"structrefl_1_1trait_1_1map_3_01_mapper_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html":[4,0,0,4,29], -"structrefl_1_1trait_1_1map_3_01_mapper_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html#a1bc0e8f7842db0bafe52a70c757069fb":[4,0,0,4,29,0], -"structrefl_1_1trait_1_1prepend.html":[4,0,0,4,30], -"structrefl_1_1trait_1_1prepend_3_01_t_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html":[4,0,0,4,31], -"structrefl_1_1trait_1_1prepend_3_01_t_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html#a41d372af81e5083f994c5a4108e7ea28":[4,0,0,4,31,0], -"structrefl_1_1trait_1_1remove__qualifiers.html":[4,0,0,4,32], -"structrefl_1_1trait_1_1remove__qualifiers.html#a39800dbc8004ea52c246cdda69f4d409":[4,0,0,4,32,0], -"structrefl_1_1trait_1_1reverse.html":[4,0,0,4,33], -"structrefl_1_1trait_1_1skip.html":[4,0,0,4,34], -"structrefl_1_1trait_1_1skip_3_01_n_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html":[4,0,0,4,35], -"structrefl_1_1trait_1_1tail.html":[4,0,0,4,36], -"structrefl_1_1trait_1_1tail_3_01type__list_3_01_t_00_01_ts_8_8_8_01_4_01_4.html":[4,0,0,4,37], -"structrefl_1_1trait_1_1tail_3_01type__list_3_01_t_00_01_ts_8_8_8_01_4_01_4.html#a1b59d7eab71c1083e4430c0337f5cee0":[4,0,0,4,37,0], +"structrefl_1_1trait_1_1is__member.html":[4,0,0,4,18], +"structrefl_1_1trait_1_1is__property.html":[4,0,0,4,19], +"structrefl_1_1trait_1_1is__proxy.html":[4,0,0,4,20], +"structrefl_1_1trait_1_1is__reflectable.html":[4,0,0,4,21], +"structrefl_1_1trait_1_1is__type.html":[4,0,0,4,22], +"structrefl_1_1trait_1_1map.html":[4,0,0,4,23], +"structrefl_1_1trait_1_1map_3_01_mapper_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html":[4,0,0,4,24], +"structrefl_1_1trait_1_1map_3_01_mapper_00_01type__list_3_01_ts_8_8_8_01_4_01_4.html#a1bc0e8f7842db0bafe52a70c757069fb":[4,0,0,4,24,0], +"structrefl_1_1trait_1_1prepend.html":[4,0,0,4,25], +"structrefl_1_1trait_1_1remove__qualifiers.html":[4,0,0,4,26], +"structrefl_1_1trait_1_1remove__qualifiers.html#a39800dbc8004ea52c246cdda69f4d409":[4,0,0,4,26,0], +"structrefl_1_1trait_1_1reverse.html":[4,0,0,4,27], "structrefl_1_1util_1_1const__string.html":[4,0,0,5,0], "structrefl_1_1util_1_1const__string.html#a25bdf3f17b20a34f25f4bd7b624c6aa7":[4,0,0,5,0,6], "structrefl_1_1util_1_1const__string.html#a465086c5ae8e245358ce44ed8154c986":[4,0,0,5,0,3], diff --git a/docs/pages.html b/docs/pages.html index 9d1e9b7..2927168 100644 --- a/docs/pages.html +++ b/docs/pages.html @@ -99,7 +99,7 @@ - +
     Contributor Covenant Code of Conduct
     Introduction to refl-cpp
     refl-cpp v0.9.1 (<a href="https://veselink1.github.io/refl-cpp/md__introduction.html">Documentation</a>)
     README

    diff --git a/docs/refl_8hpp.html b/docs/refl_8hpp.html index efdb5d1..bdb65ca 100644 --- a/docs/refl_8hpp.html +++ b/docs/refl_8hpp.html @@ -120,25 +120,21 @@ Classes

    struct  refl::util::const_string< N >   -struct  refl::trait::remove_qualifiers< T > -  -struct  refl::trait::is_reflectable< T > -  -struct  refl::trait::is_container< T > +struct  refl::util::type_list< Ts >   struct  refl::member::field   struct  refl::member::function   -struct  refl::util::type_list< Ts > +struct  refl::trait::remove_qualifiers< T >   -struct  refl::trait::get< size_t, typename > +struct  refl::trait::is_reflectable< T >   -struct  refl::trait::get< N, type_list< Ts... > > +struct  refl::trait::is_container< T >   -struct  refl::trait::skip< size_t, typename > +struct  refl::trait::get< size_t, typename >   -struct  refl::trait::skip< N, type_list< Ts... > > +struct  refl::trait::get< N, type_list< Ts... > >   struct  refl::trait::as_type_list< T >   @@ -146,51 +142,48 @@   struct  refl::trait::as_type_list< T >   -struct  refl::attr::usage::type -  -struct  refl::attr::usage::function -  -struct  refl::attr::usage::field +struct  refl::trait::reverse< TypeList >   -struct  refl::attr::usage::member +struct  refl::trait::concat< typename, typename >   -struct  refl::attr::usage::any +struct  refl::trait::concat< type_list< Ts... >, type_list< Us... > >   -struct  refl::trait::first< typename > +struct  refl::trait::append< T, TypeList >   -struct  refl::trait::first< type_list< T, Ts... > > +struct  refl::trait::prepend< T, TypeList >   -struct  refl::trait::last< typename > +struct  refl::trait::prepend< T, TypeList >   -struct  refl::trait::last< type_list< T, Ts... > > +struct  refl::trait::filter< typename, typename >   -struct  refl::trait::tail< typename > +struct  refl::trait::filter< Predicate, type_list< Ts... > >   -struct  refl::trait::tail< type_list< T, Ts... > > +struct  refl::trait::map< typename, typename >   -struct  refl::trait::init< TypeList > +struct  refl::trait::map< Mapper, type_list< Ts... > >   -struct  refl::trait::append< typename, typename > +struct  refl::trait::is_instance< T >   -struct  refl::trait::append< T, type_list< Ts... > > +struct  refl::trait::is_instance_of< T, U >   -struct  refl::trait::prepend< typename, typename > +struct  refl::trait::contains< T, TypeList >   -struct  refl::trait::prepend< T, type_list< Ts... > > +struct  refl::trait::contains_instance< T, TypeList >   -struct  refl::trait::reverse< TypeList > +struct  refl::trait::contains_base< T, TypeList >   -struct  refl::trait::concat< typename, typename > +struct  refl::attr::usage::type   -struct  refl::trait::concat< type_list< Ts... >, type_list< Us... > > +struct  refl::attr::usage::function   -struct  refl::trait::filter< typename, typename > +struct  refl::attr::usage::field   -struct  refl::trait::filter< Predicate, type_list< Ts... > > +struct  refl::attr::usage::member   -struct  refl::trait::map< typename, typename > +struct  refl::attr::usage::any   -struct  refl::trait::map< Mapper, type_list< Ts... > > +class  refl::descriptor::type_descriptor< T > + Represents a reflected type. More...
      struct  refl::trait::is_member< T >   @@ -198,8 +191,9 @@   struct  refl::trait::is_function< T >   -class  refl::descriptor::type_descriptor< T > - Represents a reflected type. More...
    +struct  refl::trait::is_type< T > +  +struct  refl::trait::is_descriptor< T >   class  refl::descriptor::member_descriptor_base< T, N >  The base type for member descriptors. More...
    @@ -213,18 +207,6 @@ class  refl::descriptor::type_descriptor< T >  Represents a reflected type. More...
      -struct  refl::trait::is_instance< T > -  -struct  refl::trait::is_instance_of< T, U > -  -struct  refl::trait::contains< T, TypeList > -  -struct  refl::trait::contains_instance< T, TypeList > -  -struct  refl::trait::contains_base< T, TypeList > -  -struct  refl::trait::is_type< T > -  struct  refl::attr::property   struct  refl::attr::debug< F > @@ -249,12 +231,12 @@  refl::util  Contains utility types and functions for working with those types.
      -  refl::trait - Provides type-level operations for refl-cpp related use-cases.
    -   refl::member  Contains tag types denoting the different types of reflectable members.
      +  refl::trait + Provides type-level operations for refl-cpp related use-cases.
    +   refl::attr  Contains the definitions of the built-in attributes.
      @@ -270,8 +252,6 @@ - - @@ -299,45 +279,66 @@ + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - + + +

    Macros

    #define REFL(...)
     
    #define REFL_MAKE_CONST_STRING(CString)   (::refl::util::detail::copy_from_unsized<::refl::util::detail::strlen(CString)>(CString))
     
    #define REFL_DETAIL_FORCE_EBO
    template<size_t N, typename TypeList >
    using refl::trait::get_t = typename get< N, TypeList >::type
     
    template<size_t N, typename TypeList >
    using refl::trait::skip = detail::skip< N, TypeList >
     
    template<size_t N, typename TypeList >
    using refl::trait::skip_t = typename skip< N, TypeList >::type
     
    template<typename T >
    using refl::trait::as_type_list_t = typename as_type_list< T >::type
     
    template<typename TypeList >
    using refl::trait::first = get< 0, TypeList >
     
    template<typename TypeList >
    using refl::trait::first_t = typename first< TypeList >::type
     
    template<typename TypeList >
    using refl::trait::last = get< TypeList::size - 1, TypeList >
     
    template<typename TypeList >
    using refl::trait::last_t = typename last< TypeList >::type
     
    template<typename TypeList >
    using refl::trait::tail = skip< 1, TypeList >
     
    template<typename TypeList >
    using refl::trait::tail_t = typename tail< TypeList >::type
     
    template<size_t N, typename TypeList >
    using refl::trait::take = detail::take< type_list<>, N, TypeList >
     
    template<size_t N, typename TypeList >
    using refl::trait::take_t = typename take< N, TypeList >::type
     
    template<typename TypeList >
    using refl::trait::init = take< TypeList::size - 1, TypeList >
     
    template<typename TypeList >
    using refl::trait::init_t = typename init< TypeList >::type
     
    template<typename T , typename TypeList >
    using refl::trait::append_t = typename append< T, TypeList >::type
     
    template<typename T , typename TypeList >
    using refl::trait::prepend_t = typename prepend< T, TypeList >::type
     
    template<typename TypeList >
    using refl::trait::reverse_t = typename reverse< TypeList >::type
     
    template<typename Lhs , typename Rhs >
    using refl::trait::concat_t = typename concat< Lhs, Rhs >::type
     
    template<typename T , typename TypeList >
    using refl::trait::append_t = typename append< T, TypeList >::type
     
    template<typename T , typename TypeList >
    using refl::trait::prepend_t = typename prepend< T, TypeList >::type
     
    template<template< typename > typename Predicate, typename TypeList >
    using refl::trait::filter_t = typename filter< Predicate, TypeList >::type
     
    template<template< typename > typename Mapper, typename... Ts>
    using refl::trait::map_t = typename map< Mapper, Ts... >::type
     
    template<typename T >
    using refl::member_list = decltype(detail::enumerate_members< T >(std::make_index_sequence< refl_impl::metadata::type_info__< T >::member_count >{}))
     
    template<typename T >
    using refl::descriptor::member_list = decltype(detail::enumerate_members< T >(std::make_index_sequence< refl_impl::metadata::type_info__< T >::member_count >{}))
     
    @@ -376,6 +377,18 @@ + + + + + + + + + + + + @@ -415,39 +428,21 @@ - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - @@ -508,12 +503,12 @@ - - - - - - + + + + + + @@ -534,24 +529,6 @@

    Functions

    template<size_t N>
    constexpr std::ostream & refl::util::operator<< (std::ostream &os, const const_string< N > &str) noexcept
     
    template<typename T >
    constexpr bool refl::is_reflectable () noexcept
     
    template<typename T >
    constexpr bool refl::is_reflectable (const T &) noexcept
     
    template<typename T >
    constexpr type_descriptor< T > refl::reflect () noexcept
     
    template<typename T >
    constexpr type_descriptor< T > refl::reflect (const T &) noexcept
     
    template<typename T = int, typename... Ts>
    constexpr int refl::util::ignore (Ts &&...) noexcept
     
    template<typename F , typename... Ts>
    constexpr size_t refl::util::count_if (type_list< Ts... > list, F &&f)
     
    template<typename F , typename... Ts>
    constexpr auto refl::util::filter (type_list< Ts... > list, F f)
     
    template<typename F , typename... Ts>
    constexpr auto refl::util::find_first (type_list< Ts... > list, F f)
     
    template<typename F , typename... Ts>
    constexpr auto refl::util::find_one (type_list< Ts... > list, F f)
     
    template<size_t N, typename... Ts>
    constexpr auto refl::util::find_one (type_list< Ts... > list, const const_string< N > &name)
     
    template<typename F , typename... Ts>
    constexpr auto refl::util::filter (type_list< Ts... > list, F &&f)
     
    template<typename F , typename... Ts>
    constexpr auto refl::util::find_first (type_list< Ts... > list, F &&f)
     
    template<typename F , typename... Ts>
    constexpr auto refl::util::find_one (type_list< Ts... > list, F &&f)
     
    template<typename F , typename... Ts>
    constexpr auto refl::util::contains (type_list< Ts... > list, F &&f)
     
    template<size_t N, typename... Ts>
    constexpr auto refl::util::contains (type_list< Ts... > list, const const_string< N > &name)
     
    template<typename... Ts, typename F >
    constexpr auto refl::util::apply (type_list< Ts... >, F &&f)
     
    template<typename T >
    constexpr bool refl::is_reflectable () noexcept
     
    template<typename T >
    constexpr bool refl::is_reflectable (const T) noexcept
     
    template<typename T >
    constexpr type_descriptor< T > refl::reflect () noexcept
     
    template<typename T >
    constexpr type_descriptor< T > refl::reflect (const T) noexcept
     
    template<size_t N, typename... Ts>
    constexpr auto & refl::util::get (std::tuple< Ts... > &ts) noexcept
     
    template<typename T >
    const char * refl::descriptor::get_display_name (const T &t) noexcept
     
    template<typename T >
    void refl::runtime::debug (std::ostream &os, const T &value)
     
    template<typename T >
    void refl::runtime::debug (std::ostream &os, const T &value, bool compact)
     
    template<typename T >
    void refl::runtime::debug (std::ostream &os, const T &value, bool compact=false)
     
    template<typename T >
    void refl::runtime::debug (std::ostream &os, const T &value, [[maybe_unused]] bool compact)
     
    template<typename... Ts>
    void refl::runtime::debug_all (std::ostream &os, const Ts &... values)
     
     

    Macro Definition Documentation

    - -

    ◆ REFL

    - -
    -
    - - - - - - - - -
    #define REFL( ...)
    -
    - -
    -

    ◆ REFL_DETAIL_ATTRIBUTES

    @@ -740,7 +717,7 @@

    REFL_DETAIL_TYPE_BODY(TypeName, __VA_ARGS__)

    Creates reflection information for a specified type template. Takes an optional attribute list. TemplateDeclaration must be a panenthesis-enclosed list declaring the template parameters. (e.g. (typename A, typename B)). TypeName must be the fully-specialized type name and should also be enclosed in panenthesis. (e.g. (MyType<A, B>)) This macro must only be expanded in the global namespace.

    -

    +

    Examples:

    Creates reflection information for a specified type. Takes an optional attribute list. This macro must only be expanded in the global namespace.

    -

    +

    Examples:

    REFL_TYPE(Point)
    ...
    @@ -786,11 +763,11 @@

    -
    #define REFL_TEMPLATE(TemplateDeclaration, TypeName,...)
    Definition: refl.hpp:2759
    -
    #define REFL_DETAIL_GROUP(...)
    Definition: refl.hpp:2710
    -
    #define REFL_DETAIL_STR(...)
    Definition: refl.hpp:2708
    -
    constexpr const_string< N - 1 > make_const_string(const char(&str)[N]) noexcept
    Definition: refl.hpp:211
    -
    #define REFL_TYPE(TypeName,...)
    Definition: refl.hpp:2742
    +
    #define REFL_TEMPLATE(TemplateDeclaration, TypeName,...)
    Definition: refl.hpp:2828
    +
    #define REFL_DETAIL_GROUP(...)
    Definition: refl.hpp:2779
    +
    #define REFL_DETAIL_STR(...)
    Definition: refl.hpp:2777
    +
    constexpr const_string< N - 1 > make_const_string(const char(&str)[N]) noexcept
    Definition: refl.hpp:227
    +
    #define REFL_TYPE(TypeName,...)
    Definition: refl.hpp:2811

    -
    const F write
    Definition: refl.hpp:2006
    -
    constexpr auto operator()(Args &&... args) const noexcept -> decltype(invoker::invoke(std::forward< Args >(args)...))
    Definition: refl.hpp:1550
    -
    constexpr const auto & get(const std::tuple< Ts... > &ts) noexcept
    Definition: refl.hpp:1940
    -
    static constexpr decltype(auto) get() noexcept
    Definition: refl.hpp:1536
    -
    std::remove_cv_t< std::remove_reference_t< T > > type
    Definition: refl.hpp:470
    -
    Definition: refl.hpp:2049
    -
    void debug_all(std::ostream &os, const Ts &... values)
    Definition: refl.hpp:2571
    -
    constexpr bool is_property(const T t) noexcept
    Definition: refl.hpp:2137
    -
    constexpr size_t count_if(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1243
    -
    Target target_type
    Definition: refl.hpp:2392
    -
    constexpr auto has_bases(const T t) noexcept
    Definition: refl.hpp:2216
    -
    constexpr const T & get(const std::tuple< Ts... > &ts) noexcept
    Definition: refl.hpp:1954
    -
    constexpr auto apply(type_list< Ts... >, F &&f)
    Definition: refl.hpp:1344
    +
    constexpr type_descriptor< T > reflect(const T &) noexcept
    Definition: refl.hpp:1588
    +
    const F write
    Definition: refl.hpp:1963
    +
    constexpr auto operator()(Args &&... args) const noexcept -> decltype(invoker::invoke(std::forward< Args >(args)...))
    Definition: refl.hpp:1409
    +
    constexpr const auto & get(const std::tuple< Ts... > &ts) noexcept
    Definition: refl.hpp:1897
    +
    static constexpr decltype(auto) get() noexcept
    Definition: refl.hpp:1395
    +
    std::remove_cv_t< std::remove_reference_t< T > > type
    Definition: refl.hpp:527
    +
    Definition: refl.hpp:2006
    +
    void debug_all(std::ostream &os, const Ts &... values)
    Definition: refl.hpp:2638
    +
    constexpr bool is_property(const T t) noexcept
    Definition: refl.hpp:2094
    +
    void debug(std::ostream &os, const T &value, [[maybe_unused]] bool compact)
    Definition: refl.hpp:2626
    +
    constexpr size_t count_if(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1777
    +
    Target target_type
    Definition: refl.hpp:2421
    +
    constexpr auto has_bases(const T t) noexcept
    Definition: refl.hpp:2173
    +
    constexpr const T & get(const std::tuple< Ts... > &ts) noexcept
    Definition: refl.hpp:1911
    +
    constexpr auto apply(type_list< Ts... >, F &&f)
    Definition: refl.hpp:1856
    static constexpr size_t size
    Definition: refl.hpp:109
    -
    std::string debug_all_str(const Ts &... values)
    Definition: refl.hpp:2592
    -
    constexpr const_string< N+M - 1 > operator+(const char(&a)[N], const const_string< M > &b) noexcept
    Definition: refl.hpp:249
    -
    Definition: refl.hpp:1798
    -
    refl::member_list< T > member_types
    Definition: refl.hpp:1690
    -
    constexpr std::array< T, 0 > to_array(const std::tuple<> &) noexcept
    Definition: refl.hpp:1112
    -
    constexpr auto find_one(type_list< Ts... > list, const const_string< N > &name)
    Definition: refl.hpp:1313
    -
    constexpr bool is_reflectable() noexcept
    Definition: refl.hpp:1711
    -
    detail::filter< Predicate >::template apply< type_list< Ts... > > type
    Definition: refl.hpp:1064
    -
    constexpr auto operator()(Args &&... args) const -> decltype(invoke(std::declval< Args >()...))
    Definition: refl.hpp:1612
    -
    #define REFL_TEMPLATE(TemplateDeclaration, TypeName,...)
    Definition: refl.hpp:2759
    -
    constexpr attr::property get_property(const T t) noexcept
    Definition: refl.hpp:2149
    -
    const char * get_debug_name(const T &t)
    Definition: refl.hpp:2242
    -
    std::string str() const noexcept
    Definition: refl.hpp:171
    -
    Contains the definitions of the built-in attributes.
    Definition: refl.hpp:729
    -
    Contains a number of constraints applicable to refl-cpp attributes.
    Definition: refl.hpp:738
    -
    constexpr const T & make_const(T &value) noexcept
    Definition: refl.hpp:807
    -
    Definition: refl.hpp:895
    -
    Definition: refl.hpp:768
    -
    constexpr const A & get_attribute(const T t) noexcept
    Definition: refl.hpp:2116
    -
    Definition: refl.hpp:1873
    -
    static constexpr bool can_resolve()
    Definition: refl.hpp:1632
    -
    constexpr debug(F write)
    Definition: refl.hpp:2008
    -
    constexpr const_string< 0 > make_const_string() noexcept
    Definition: refl.hpp:200
    -
    constexpr bool operator==(const const_string< N > &a, const const_string< M > &b) noexcept
    Definition: refl.hpp:260
    -
    static constexpr intptr_t size
    Definition: refl.hpp:588
    -
    constexpr auto substr() const noexcept
    Definition: refl.hpp:180
    -
    refl_impl::metadata::type_info__< T >::template member< N > member
    Definition: refl.hpp:1441
    -
    Definition: refl.hpp:500
    -
    constexpr int ignore(Ts &&...) noexcept
    Definition: refl.hpp:779
    +
    std::string debug_all_str(const Ts &... values)
    Definition: refl.hpp:2660
    +
    constexpr const_string< N+M - 1 > operator+(const char(&a)[N], const const_string< M > &b) noexcept
    Definition: refl.hpp:265
    +
    Definition: refl.hpp:1029
    +
    constexpr std::array< T, 0 > to_array(const std::tuple<> &) noexcept
    Definition: refl.hpp:1648
    +
    constexpr bool is_reflectable() noexcept
    Definition: refl.hpp:1567
    +
    detail::filter< Predicate >::template apply< type_list< Ts... > > type
    Definition: refl.hpp:939
    +
    constexpr auto operator()(Args &&... args) const -> decltype(invoke(std::declval< Args >()...))
    Definition: refl.hpp:1471
    +
    #define REFL_TEMPLATE(TemplateDeclaration, TypeName,...)
    Definition: refl.hpp:2828
    +
    constexpr attr::property get_property(const T t) noexcept
    Definition: refl.hpp:2106
    +
    const char * get_debug_name(const T &t)
    Definition: refl.hpp:2199
    +
    std::string str() const noexcept
    Definition: refl.hpp:167
    +
    Contains the definitions of the built-in attributes.
    Definition: refl.hpp:1133
    +
    Contains a number of constraints applicable to refl-cpp attributes.
    Definition: refl.hpp:1142
    +
    constexpr const T & make_const(T &value) noexcept
    Definition: refl.hpp:1628
    +
    Definition: refl.hpp:1172
    +
    constexpr const A & get_attribute(const T t) noexcept
    Definition: refl.hpp:2073
    +
    Definition: refl.hpp:1104
    +
    constexpr auto find_first(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1820
    +
    static constexpr bool can_resolve()
    Definition: refl.hpp:1491
    +
    constexpr debug(F write)
    Definition: refl.hpp:1965
    +
    constexpr const_string< 0 > make_const_string() noexcept
    Definition: refl.hpp:216
    +
    constexpr bool operator==(const const_string< N > &a, const const_string< M > &b) noexcept
    Definition: refl.hpp:276
    +
    static constexpr intptr_t size
    Definition: refl.hpp:392
    +
    constexpr auto substr() const noexcept
    Definition: refl.hpp:176
    +
    constexpr auto find_one(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1833
    +
    refl_impl::metadata::type_info__< T >::template member< N > member
    Definition: refl.hpp:1300
    +
    Definition: refl.hpp:557
    +
    constexpr int ignore(Ts &&...) noexcept
    Definition: refl.hpp:1600
    Definition: refl.hpp:103
    -
    static constexpr bool value
    Definition: refl.hpp:2434
    -
    constexpr bool is_readable(const T) noexcept
    Definition: refl.hpp:2167
    -
    static constexpr list_type list
    Definition: refl.hpp:2024
    -
    constexpr auto & get(std::tuple< Ts... > &ts) noexcept
    Definition: refl.hpp:1933
    -
    Contains utility types and functions for working with those types.
    Definition: refl.hpp:90
    -
    operator std::string() const noexcept
    Definition: refl.hpp:155
    -
    type_list< Ts... > type
    Definition: refl.hpp:693
    -
    #define REFL_DETAIL_GROUP(...)
    Definition: refl.hpp:2710
    -
    static constexpr decltype(auto) get(U &&target) noexcept
    Definition: refl.hpp:1543
    -
    Definition: refl.hpp:1753
    -
    void debug(std::ostream &os, const T &value)
    Definition: refl.hpp:2562
    -
    Represents a reflected function.
    Definition: refl.hpp:1588
    -
    constexpr const_string< N+M - 1 > operator+(const const_string< N > &a, const char(&b)[M]) noexcept
    Definition: refl.hpp:238
    -
    static constexpr bool is_resolved
    Definition: refl.hpp:1626
    -
    T type
    Definition: refl.hpp:1687
    -
    constexpr bool is_type_v
    Definition: refl.hpp:1898
    -
    constexpr type_descriptor< T > reflect(const T) noexcept
    Definition: refl.hpp:1732
    -
    static constexpr type_descriptor< T > declarator
    Definition: refl.hpp:1455
    -
    constexpr bool operator!=(const char(&a)[N], const const_string< M > &b) noexcept
    Definition: refl.hpp:325
    -
    #define REFL_DETAIL_FORCE_EBO
    Definition: refl.hpp:2268
    -
    static constexpr auto pointer
    Definition: refl.hpp:1526
    -
    trait::as_type_list_t< std::remove_cv_t< decltype(member::attributes)> > attribute_types
    Definition: refl.hpp:1452
    -
    Provides type-level operations for refl-cpp related use-cases.
    Definition: refl.hpp:460
    -
    Definition: refl.hpp:1889
    -
    Contains tag types denoting the different types of reflectable members.
    Definition: refl.hpp:545
    -
    constexpr proxy() noexcept
    Definition: refl.hpp:2400
    -
    static constexpr auto pointer
    Definition: refl.hpp:1620
    -
    std::string debug_str(const T &value, bool compact=false)
    Definition: refl.hpp:2581
    -
    Definition: refl.hpp:553
    -
    constexpr auto find_first(type_list< Ts... > list, F f)
    Definition: refl.hpp:1286
    -
    constexpr auto contains(type_list< Ts... > list, const const_string< N > &name)
    Definition: refl.hpp:1333
    -
    The base type for member descriptors.
    Definition: refl.hpp:1437
    -
    constexpr bool operator==(const const_string< N > &a, const char(&b)[M]) noexcept
    Definition: refl.hpp:292
    +
    static constexpr bool value
    Definition: refl.hpp:2463
    +
    constexpr bool is_readable(const T) noexcept
    Definition: refl.hpp:2124
    +
    static constexpr list_type list
    Definition: refl.hpp:1981
    +
    constexpr auto & get(std::tuple< Ts... > &ts) noexcept
    Definition: refl.hpp:1890
    +
    Contains utility types and functions for working with those types.
    Definition: refl.hpp:81
    +
    operator std::string() const noexcept
    Definition: refl.hpp:151
    +
    type_list< Ts... > type
    Definition: refl.hpp:682
    +
    #define REFL_DETAIL_GROUP(...)
    Definition: refl.hpp:2779
    +
    static constexpr decltype(auto) get(U &&target) noexcept
    Definition: refl.hpp:1402
    +
    Definition: refl.hpp:984
    +
    Represents a reflected function.
    Definition: refl.hpp:1447
    +
    constexpr const_string< N+M - 1 > operator+(const const_string< N > &a, const char(&b)[M]) noexcept
    Definition: refl.hpp:254
    +
    static constexpr bool is_resolved
    Definition: refl.hpp:1485
    +
    T type
    Definition: refl.hpp:1540
    +
    constexpr bool is_type_v
    Definition: refl.hpp:1268
    +
    static constexpr type_descriptor< T > declarator
    Definition: refl.hpp:1314
    +
    constexpr bool operator!=(const char(&a)[N], const const_string< M > &b) noexcept
    Definition: refl.hpp:341
    +
    #define REFL_DETAIL_FORCE_EBO
    Definition: refl.hpp:2297
    +
    static constexpr auto pointer
    Definition: refl.hpp:1385
    +
    trait::as_type_list_t< std::remove_cv_t< decltype(member::attributes)> > attribute_types
    Definition: refl.hpp:1311
    +
    Provides type-level operations for refl-cpp related use-cases.
    Definition: refl.hpp:518
    +
    Definition: refl.hpp:1259
    +
    Contains tag types denoting the different types of reflectable members.
    Definition: refl.hpp:493
    +
    constexpr proxy() noexcept
    Definition: refl.hpp:2429
    +
    static constexpr auto pointer
    Definition: refl.hpp:1479
    +
    std::string debug_str(const T &value, bool compact=false)
    Definition: refl.hpp:2649
    +
    Definition: refl.hpp:501
    +
    The base type for member descriptors.
    Definition: refl.hpp:1296
    +
    constexpr bool operator==(const const_string< N > &a, const char(&b)[M]) noexcept
    Definition: refl.hpp:308
    +
    Definition: refl.hpp:1274
    static constexpr size_t npos
    Definition: refl.hpp:106
    -
    T declaring_type
    Definition: refl.hpp:1446
    -
    type_list< Ts... > list_type
    Definition: refl.hpp:2021
    -
    #define REFL_DETAIL_STR(...)
    Definition: refl.hpp:2708
    -
    constexpr auto filter(type_list< Ts... > list, F f)
    Definition: refl.hpp:1276
    -
    Definition: refl.hpp:762
    -
    constexpr bool is_function(const T) noexcept
    Definition: refl.hpp:2078
    -
    constexpr property(const char *friendly_name) noexcept
    Definition: refl.hpp:1994
    -
    static constexpr auto name
    Definition: refl.hpp:1458
    -
    constexpr std::array< T, sizeof...(Ts)> to_array(const std::tuple< Ts... > &tuple) noexcept
    Definition: refl.hpp:1103
    -
    Definition: refl.hpp:585
    -
    constexpr auto map_to_array(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1192
    -
    static constexpr bool is_writable
    Definition: refl.hpp:1523
    -
    Definition: refl.hpp:1366
    -
    Definition: refl.hpp:744
    -
    constexpr bool operator!=(const const_string< N > &a, const const_string< M > &b) noexcept
    Definition: refl.hpp:281
    -
    Definition: refl.hpp:967
    -
    member::value_type value_type
    Definition: refl.hpp:1512
    -
    The top-level refl-cpp namespace It contains a few core refl-cpp namespaces and directly exposes core...
    Definition: refl.hpp:85
    -
    constexpr auto contains(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1323
    -
    constexpr auto accumulate(type_list< T, Ts... >, F &&f, R &&initial_value)
    Definition: refl.hpp:1227
    -
    constexpr const auto & get_instance(const std::tuple< Ts... > &ts) noexcept
    Definition: refl.hpp:1970
    -
    static constexpr auto resolve()
    Definition: refl.hpp:1642
    -
    constexpr bool is_field(const T) noexcept
    Definition: refl.hpp:2067
    -
    const char * get_display_name(const T &t) noexcept
    Definition: refl.hpp:2253
    -
    static constexpr auto invoke(Args &&... args) -> decltype(member::invoke(std::declval< Args >()...))
    Definition: refl.hpp:1601
    -
    Contains the basic reflection primitives as well as functions operating on those primitives.
    Definition: refl.hpp:1425
    -
    constexpr R accumulate(type_list<>, F &&, R &&initial_value)
    Definition: refl.hpp:1215
    -
    A proxy object that has a static interface identical to the reflected functions and fields of the tar...
    Definition: refl.hpp:2384
    -
    constexpr bool has_attribute(const T) noexcept
    Definition: refl.hpp:2098
    -
    constexpr property() noexcept
    Definition: refl.hpp:1989
    -
    constexpr type_descriptor< T > reflect() noexcept
    Definition: refl.hpp:1725
    -
    constexpr bool operator!=(const const_string< N > &a, const char(&b)[M]) noexcept
    Definition: refl.hpp:303
    -
    static constexpr bool is_static
    Definition: refl.hpp:1520
    -
    constexpr const char * c_str() const noexcept
    Definition: refl.hpp:163
    -
    #define REFL_DETAIL_ATTRIBUTES(DeclType,...)
    Definition: refl.hpp:2717
    -
    U invoke(T &&target, const char *name, Args &&... args)
    Definition: refl.hpp:2605
    -
    Definition: refl.hpp:756
    -
    constexpr const_string< N+M > operator+(const const_string< N > &a, const const_string< M > &b) noexcept
    Definition: refl.hpp:222
    -
    constexpr auto map_to_tuple(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1180
    -
    Definition: refl.hpp:528
    -
    constexpr T & get(std::tuple< Ts... > &ts) noexcept
    Definition: refl.hpp:1947
    -
    Definition: refl.hpp:1841
    -
    Definition: refl.hpp:1857
    -
    Definition: refl.hpp:1388
    -
    #define REFL_DETAIL_TYPE_BODY(TypeName,...)
    Definition: refl.hpp:2723
    -
    constexpr auto to_tuple(const std::array< T, N > &array) noexcept
    Definition: refl.hpp:1131
    -
    constexpr bool operator==(const char(&a)[N], const const_string< M > &b) noexcept
    Definition: refl.hpp:314
    -
    static constexpr const auto name
    Definition: refl.hpp:1699
    -
    Represents a reflected field.
    Definition: refl.hpp:1509
    -
    #define REFL_DETAIL_STR_IMPL(...)
    Definition: refl.hpp:2706
    -
    constexpr const_string< N - 1 > make_const_string(const char(&str)[N]) noexcept
    Definition: refl.hpp:211
    +
    T declaring_type
    Definition: refl.hpp:1305
    +
    type_list< Ts... > list_type
    Definition: refl.hpp:1978
    +
    #define REFL_DETAIL_STR(...)
    Definition: refl.hpp:2777
    +
    Definition: refl.hpp:1166
    +
    constexpr bool is_function(const T) noexcept
    Definition: refl.hpp:2035
    +
    constexpr property(const char *friendly_name) noexcept
    Definition: refl.hpp:1951
    +
    static constexpr auto name
    Definition: refl.hpp:1317
    +
    constexpr bool is_reflectable(const T &) noexcept
    Definition: refl.hpp:1574
    +
    constexpr std::array< T, sizeof...(Ts)> to_array(const std::tuple< Ts... > &tuple) noexcept
    Definition: refl.hpp:1639
    +
    Definition: refl.hpp:389
    +
    constexpr auto map_to_array(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1726
    +
    static constexpr bool is_writable
    Definition: refl.hpp:1382
    +
    Definition: refl.hpp:1200
    +
    Definition: refl.hpp:1148
    +
    constexpr bool operator!=(const const_string< N > &a, const const_string< M > &b) noexcept
    Definition: refl.hpp:297
    +
    Definition: refl.hpp:810
    +
    member::value_type value_type
    Definition: refl.hpp:1371
    +
    The top-level refl-cpp namespace It contains a few core refl-cpp namespaces and directly exposes core...
    Definition: refl.hpp:76
    +
    constexpr auto contains(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1846
    +
    constexpr auto accumulate(type_list< T, Ts... >, F &&f, R &&initial_value)
    Definition: refl.hpp:1761
    +
    constexpr const auto & get_instance(const std::tuple< Ts... > &ts) noexcept
    Definition: refl.hpp:1927
    +
    static constexpr auto resolve()
    Definition: refl.hpp:1501
    +
    constexpr bool is_field(const T) noexcept
    Definition: refl.hpp:2024
    +
    const char * get_display_name(const T &t) noexcept
    Definition: refl.hpp:2285
    +
    static constexpr auto invoke(Args &&... args) -> decltype(member::invoke(std::declval< Args >()...))
    Definition: refl.hpp:1460
    +
    Contains the basic reflection primitives as well as functions operating on those primitives.
    Definition: refl.hpp:1176
    +
    constexpr R accumulate(type_list<>, F &&, R &&initial_value)
    Definition: refl.hpp:1749
    +
    A proxy object that has a static interface identical to the reflected functions and fields of the tar...
    Definition: refl.hpp:2413
    +
    constexpr bool has_attribute(const T) noexcept
    Definition: refl.hpp:2055
    +
    constexpr property() noexcept
    Definition: refl.hpp:1946
    +
    constexpr type_descriptor< T > reflect() noexcept
    Definition: refl.hpp:1581
    +
    constexpr bool operator!=(const const_string< N > &a, const char(&b)[M]) noexcept
    Definition: refl.hpp:319
    +
    static constexpr bool is_static
    Definition: refl.hpp:1379
    +
    constexpr const char * c_str() const noexcept
    Definition: refl.hpp:159
    +
    #define REFL_DETAIL_ATTRIBUTES(DeclType,...)
    Definition: refl.hpp:2786
    +
    constexpr auto filter(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1810
    +
    U invoke(T &&target, const char *name, Args &&... args)
    Definition: refl.hpp:2674
    +
    Definition: refl.hpp:1160
    +
    Definition: refl.hpp:844
    +
    constexpr const_string< N+M > operator+(const const_string< N > &a, const const_string< M > &b) noexcept
    Definition: refl.hpp:238
    +
    constexpr auto map_to_tuple(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1716
    +
    static constexpr member_list< T > members
    Definition: refl.hpp:1549
    +
    Definition: refl.hpp:585
    +
    constexpr T & get(std::tuple< Ts... > &ts) noexcept
    Definition: refl.hpp:1904
    +
    Definition: refl.hpp:1072
    +
    Definition: refl.hpp:1088
    +
    Definition: refl.hpp:1222
    +
    #define REFL_DETAIL_TYPE_BODY(TypeName,...)
    Definition: refl.hpp:2792
    +
    constexpr auto to_tuple(const std::array< T, N > &array) noexcept
    Definition: refl.hpp:1667
    +
    constexpr bool operator==(const char(&a)[N], const const_string< M > &b) noexcept
    Definition: refl.hpp:330
    +
    static constexpr const auto name
    Definition: refl.hpp:1552
    +
    Represents a reflected field.
    Definition: refl.hpp:1368
    +
    #define REFL_DETAIL_STR_IMPL(...)
    Definition: refl.hpp:2775
    +
    member_list< T > member_types
    Definition: refl.hpp:1543
    +
    constexpr const_string< N - 1 > make_const_string(const char(&str)[N]) noexcept
    Definition: refl.hpp:227
    constexpr const_string() noexcept
    Definition: refl.hpp:119
    -
    constexpr bool is_reflectable(const T) noexcept
    Definition: refl.hpp:1718
    -
    void debug(std::ostream &os, const T &value, bool compact)
    Definition: refl.hpp:2497
    -
    constexpr auto get_bases(const T t) noexcept
    Definition: refl.hpp:2229
    -
    constexpr const_string(const char(&data)[N+1]) noexcept
    Definition: refl.hpp:137
    -
    detail::map< Mapper >::template apply< type_list< Ts... > > type
    Definition: refl.hpp:1083
    -
    Definition: refl.hpp:2018
    -
    constexpr operator const char *() const noexcept
    Definition: refl.hpp:147
    -
    static constexpr const auto attributes
    Definition: refl.hpp:1702
    -
    Definition: refl.hpp:561
    -
    Definition: refl.hpp:468
    -
    #define REFL_TYPE(TypeName,...)
    Definition: refl.hpp:2742
    -
    static constexpr auto attributes
    Definition: refl.hpp:1461
    -
    constexpr const T & make_const(const T &value) noexcept
    Definition: refl.hpp:798
    +
    constexpr auto get_bases(const T t) noexcept
    Definition: refl.hpp:2186
    +
    constexpr const_string(const char(&data)[N+1]) noexcept
    Definition: refl.hpp:135
    +
    detail::map< Mapper >::template apply< type_list< Ts... > > type
    Definition: refl.hpp:959
    +
    Definition: refl.hpp:1975
    +
    constexpr operator const char *() const noexcept
    Definition: refl.hpp:143
    +
    static constexpr const auto attributes
    Definition: refl.hpp:1555
    +
    Definition: refl.hpp:509
    +
    Definition: refl.hpp:525
    +
    #define REFL_TYPE(TypeName,...)
    Definition: refl.hpp:2811
    +
    static constexpr auto attributes
    Definition: refl.hpp:1320
    +
    constexpr const T & make_const(const T &value) noexcept
    Definition: refl.hpp:1619
    char data[N+1]
    Definition: refl.hpp:114
    -
    Definition: refl.hpp:1410
    -
    member::member_type member_type
    Definition: refl.hpp:1449
    -
    trait::as_type_list_t< std::remove_cv_t< decltype(type_info::attributes)> > attribute_types
    Definition: refl.hpp:1693
    -
    const std::optional< const char * > friendly_name
    Definition: refl.hpp:1987
    -
    Contains utilities that can have runtime-overhead (like proxy, debug, invoke)
    Definition: refl.hpp:2275
    -
    Definition: refl.hpp:2004
    -
    constexpr auto & get_instance(std::tuple< Ts... > &ts) noexcept
    Definition: refl.hpp:1961
    -
    constexpr bool is_type(const T) noexcept
    Definition: refl.hpp:2089
    -
    constexpr bool is_writable(const T) noexcept
    Definition: refl.hpp:2187
    -
    static constexpr refl::member_list< T > members
    Definition: refl.hpp:1696
    -
    constexpr decltype(auto) identity(T &&t) noexcept
    Definition: refl.hpp:789
    -
    Definition: refl.hpp:750
    -
    constexpr auto find_one(type_list< Ts... > list, F f)
    Definition: refl.hpp:1299
    +
    Definition: refl.hpp:1244
    +
    member::member_type member_type
    Definition: refl.hpp:1308
    +
    trait::as_type_list_t< std::remove_cv_t< decltype(type_info::attributes)> > attribute_types
    Definition: refl.hpp:1546
    +
    const std::optional< const char * > friendly_name
    Definition: refl.hpp:1944
    +
    Contains utilities that can have runtime-overhead (like proxy, debug, invoke)
    Definition: refl.hpp:2304
    +
    Definition: refl.hpp:1961
    +
    constexpr auto & get_instance(std::tuple< Ts... > &ts) noexcept
    Definition: refl.hpp:1918
    +
    constexpr bool is_type(const T) noexcept
    Definition: refl.hpp:2046
    +
    constexpr bool is_writable(const T) noexcept
    Definition: refl.hpp:2144
    +
    constexpr decltype(auto) identity(T &&t) noexcept
    Definition: refl.hpp:1610
    +
    Definition: refl.hpp:1154
    constexpr const_string(const const_string< N > &other) noexcept
    Definition: refl.hpp:127
    -
    Definition: refl.hpp:1985
    -
    constexpr const auto & get_attribute(const T t) noexcept
    Definition: refl.hpp:2125
    -
    constexpr void for_each(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1202
    +
    Definition: refl.hpp:1942
    +
    constexpr const auto & get_attribute(const T t) noexcept
    Definition: refl.hpp:2082
    +
    constexpr void for_each(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1736

    #include <refl.hpp>

    -
    The documentation for this struct was generated from the following file:
      +

      Detailed Description

      +

      template<typename T, typename TypeList>
      +struct refl::trait::prepend< T, TypeList >

      + +

      Prepends a type to the list.

      +

      The documentation for this struct was generated from the following file:
    diff --git a/docs/structrefl_1_1util_1_1const__string.html b/docs/structrefl_1_1util_1_1const__string.html index 6811fed..5993b6b 100644 --- a/docs/structrefl_1_1util_1_1const__string.html +++ b/docs/structrefl_1_1util_1_1const__string.html @@ -140,13 +140,7 @@ struct refl::util::const_string< N >

    Represents a compile-time string. Used in refl-cpp for representing names of reflected types and members. Supports constexpr concatenation and substring, and is explicitly-convertible to const char* and std::string. REFL_MAKE_CONST_STRING can be used to create an instance from a literal string.

    -
    Parameters
    - - -
    <N>The length of the string excluding the terminating '\0' character.
    -
    -
    -
    See also
    refl::descriptor::base_member_descriptor::name
    +

    @typeparam <N> The length of the string excluding the terminating '\0' character.

    See also
    refl::descriptor::base_member_descriptor::name

    Constructor & Destructor Documentation

    ◆ const_string() [1/3]

    diff --git a/docs/structrefl_1_1util_1_1type__list.html b/docs/structrefl_1_1util_1_1type__list.html index 914ce6a..ed35ba0 100644 --- a/docs/structrefl_1_1util_1_1type__list.html +++ b/docs/structrefl_1_1util_1_1type__list.html @@ -117,7 +117,7 @@
    refl::util::map_to_tuple
    -refl::member_list
    +refl::member_list

    Examples

    for_each(type_list<int, float>(), [](auto) { ... });
    @@ -152,7 +152,7 @@

    constexpr void for_each(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1202

    +
    constexpr void for_each(type_list< Ts... > list, F &&f)
    Definition: refl.hpp:1736