Skip to content

Commit

Permalink
Version 0.12.0
Browse files Browse the repository at this point in the history
  • Loading branch information
veselink1 committed Jul 18, 2020
1 parent a14586d commit ef9ebe7
Show file tree
Hide file tree
Showing 116 changed files with 5,793 additions and 5,221 deletions.
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

</center>

## refl-cpp v0.11.0 [[Documentation](https://veselink1.github.io/refl-cpp/md__introduction.html)]
## refl-cpp v0.12.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

Expand Down Expand Up @@ -146,6 +146,13 @@ REFL_FUNC(Function, Attribute...)
`Patch` denotes a version which fixed a bug or does not include major new features.
---
### v0.12.0
- Added `std::complex` support metadata. Disable with `REFL_NO_STD_COMPLEX`.
- Added `refl::descriptor::get_reader`/`get_writer` utilities for getter/setter properties.
- Added `refl::trait::index_of` for finding index of type in a `type_list`.
- Added `refl::descriptor::get_display_name_const` as `const_string` alternative to `get_display_name`.
- Fixed #33 (by [james-conrad](https://github.com/james-conrad))
### v0.11.0
- Much improved support for inheritance ([#27](https://github.com/veselink1/refl-cpp/issues/27), [#28](https://github.com/veselink1/refl-cpp/issues/28))
- `refl::type_descriptor::declared_bases` lists base types declared via the `bases<...>` attribute
Expand Down
50 changes: 29 additions & 21 deletions docs/annotated.html

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion docs/annotated_dup.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
var annotated_dup =
[
[ "refl", "namespacerefl.html", "namespacerefl" ]
[ "refl", "namespacerefl.html", "namespacerefl" ],
[ "std", "namespacestd.html", "namespacestd" ]
];
101 changes: 56 additions & 45 deletions docs/classes.html

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions docs/classrefl_1_1descriptor_1_1field__descriptor.html
Original file line number Diff line number Diff line change
Expand Up @@ -405,11 +405,11 @@ <h2 class="memtitle"><span class="permalink"><a href="#ad5a2424645cac6591a1e9cdd
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="anamespacerefl_1_1descriptor_html_ab17264f6fe5ef2e6f10a67304cb40e83"><div class="ttname"><a href="namespacerefl_1_1descriptor.html#ab17264f6fe5ef2e6f10a67304cb40e83">refl::descriptor::invoke</a></div><div class="ttdeci">constexpr auto invoke(MemberDescriptor d, Args &amp;&amp;... args) noexcept -&gt; decltype(d(std::forward&lt; Args &gt;(args)...))</div><div class="ttdoc">Invokes the member with the specified arguments.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2696</div></div>
<div class="ttc" id="anamespacerefl_1_1descriptor_html_a75e6a5698114443414d43d3b4ae1c50c"><div class="ttname"><a href="namespacerefl_1_1descriptor.html#a75e6a5698114443414d43d3b4ae1c50c">refl::descriptor::get_pointer</a></div><div class="ttdeci">constexpr auto get_pointer(MemberDescriptor d) noexcept</div><div class="ttdoc">Returns a pointer to the reflected field/function.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2672</div></div>
<div class="ttc" id="anamespacerefl_1_1trait_html_a90fc62b3597ebdeda8040ff78c0628c3"><div class="ttname"><a href="namespacerefl_1_1trait.html#a90fc62b3597ebdeda8040ff78c0628c3">refl::trait::get_t</a></div><div class="ttdeci">typename get&lt; N, TypeList &gt;::type get_t</div><div class="ttdoc">The N-th type in the provided type_list.</div><div class="ttdef"><b>Definition:</b> refl.hpp:746</div></div>
<div class="ttc" id="aclassrefl_1_1descriptor_1_1field__descriptor_html_afcc7c5c7e2ee1a67cab3a6b526d092d2"><div class="ttname"><a href="classrefl_1_1descriptor_1_1field__descriptor.html#afcc7c5c7e2ee1a67cab3a6b526d092d2">refl::descriptor::field_descriptor::value_type</a></div><div class="ttdeci">member::value_type value_type</div><div class="ttdoc">Type value type of the member.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2250</div></div>
<div class="ttc" id="aclassrefl_1_1descriptor_1_1field__descriptor_html_a955e6c913b0427ccfaf99716d22b4f5b"><div class="ttname"><a href="classrefl_1_1descriptor_1_1field__descriptor.html#a955e6c913b0427ccfaf99716d22b4f5b">refl::descriptor::field_descriptor::is_static</a></div><div class="ttdeci">static constexpr bool is_static</div><div class="ttdoc">Whether the field is static or not.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2270</div></div>
<div class="ttc" id="anamespacerefl_1_1descriptor_html_ab17264f6fe5ef2e6f10a67304cb40e83"><div class="ttname"><a href="namespacerefl_1_1descriptor.html#ab17264f6fe5ef2e6f10a67304cb40e83">refl::descriptor::invoke</a></div><div class="ttdeci">constexpr auto invoke(MemberDescriptor d, Args &amp;&amp;... args) noexcept -&gt; decltype(d(std::forward&lt; Args &gt;(args)...))</div><div class="ttdoc">Invokes the member with the specified arguments.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2771</div></div>
<div class="ttc" id="anamespacerefl_1_1descriptor_html_a75e6a5698114443414d43d3b4ae1c50c"><div class="ttname"><a href="namespacerefl_1_1descriptor.html#a75e6a5698114443414d43d3b4ae1c50c">refl::descriptor::get_pointer</a></div><div class="ttdeci">constexpr auto get_pointer(MemberDescriptor d) noexcept</div><div class="ttdoc">Returns a pointer to the reflected field/function.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2747</div></div>
<div class="ttc" id="anamespacerefl_1_1trait_html_a90fc62b3597ebdeda8040ff78c0628c3"><div class="ttname"><a href="namespacerefl_1_1trait.html#a90fc62b3597ebdeda8040ff78c0628c3">refl::trait::get_t</a></div><div class="ttdeci">typename get&lt; N, TypeList &gt;::type get_t</div><div class="ttdoc">The N-th type in the provided type_list.</div><div class="ttdef"><b>Definition:</b> refl.hpp:760</div></div>
<div class="ttc" id="aclassrefl_1_1descriptor_1_1field__descriptor_html_afcc7c5c7e2ee1a67cab3a6b526d092d2"><div class="ttname"><a href="classrefl_1_1descriptor_1_1field__descriptor.html#afcc7c5c7e2ee1a67cab3a6b526d092d2">refl::descriptor::field_descriptor::value_type</a></div><div class="ttdeci">member::value_type value_type</div><div class="ttdoc">Type value type of the member.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2325</div></div>
<div class="ttc" id="aclassrefl_1_1descriptor_1_1field__descriptor_html_a955e6c913b0427ccfaf99716d22b4f5b"><div class="ttname"><a href="classrefl_1_1descriptor_1_1field__descriptor.html#a955e6c913b0427ccfaf99716d22b4f5b">refl::descriptor::field_descriptor::is_static</a></div><div class="ttdeci">static constexpr bool is_static</div><div class="ttdoc">Whether the field is static or not.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2345</div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
Expand Down
8 changes: 4 additions & 4 deletions docs/classrefl_1_1descriptor_1_1function__descriptor.html
Original file line number Diff line number Diff line change
Expand Up @@ -418,10 +418,10 @@ <h2 class="memtitle"><span class="permalink"><a href="#a6e18ad19be31eb26acfe1e84
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclassrefl_1_1descriptor_1_1function__descriptor_html_a338ea7515da170e4f31c77b2c6857b45"><div class="ttname"><a href="classrefl_1_1descriptor_1_1function__descriptor.html#a338ea7515da170e4f31c77b2c6857b45">refl::descriptor::function_descriptor::is_resolved</a></div><div class="ttdeci">static constexpr bool is_resolved</div><div class="ttdoc">Whether the pointer member was correctly resolved to a concrete implementation.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2373</div></div>
<div class="ttc" id="anamespacerefl_1_1descriptor_html_a75e6a5698114443414d43d3b4ae1c50c"><div class="ttname"><a href="namespacerefl_1_1descriptor.html#a75e6a5698114443414d43d3b4ae1c50c">refl::descriptor::get_pointer</a></div><div class="ttdeci">constexpr auto get_pointer(MemberDescriptor d) noexcept</div><div class="ttdoc">Returns a pointer to the reflected field/function.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2672</div></div>
<div class="ttc" id="anamespacerefl_1_1trait_html_a90fc62b3597ebdeda8040ff78c0628c3"><div class="ttname"><a href="namespacerefl_1_1trait.html#a90fc62b3597ebdeda8040ff78c0628c3">refl::trait::get_t</a></div><div class="ttdeci">typename get&lt; N, TypeList &gt;::type get_t</div><div class="ttdoc">The N-th type in the provided type_list.</div><div class="ttdef"><b>Definition:</b> refl.hpp:746</div></div>
<div class="ttc" id="aclassrefl_1_1descriptor_1_1function__descriptor_html_a5f6c4091c03a8fb9d5f6459c686ea655"><div class="ttname"><a href="classrefl_1_1descriptor_1_1function__descriptor.html#a5f6c4091c03a8fb9d5f6459c686ea655">refl::descriptor::function_descriptor::invoke</a></div><div class="ttdeci">static constexpr auto invoke(Args &amp;&amp;... args) -&gt; decltype(member::invoke(std::declval&lt; Args &gt;()...))</div><div class="ttdoc">Invokes the function with the given arguments.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2340</div></div>
<div class="ttc" id="aclassrefl_1_1descriptor_1_1function__descriptor_html_a338ea7515da170e4f31c77b2c6857b45"><div class="ttname"><a href="classrefl_1_1descriptor_1_1function__descriptor.html#a338ea7515da170e4f31c77b2c6857b45">refl::descriptor::function_descriptor::is_resolved</a></div><div class="ttdeci">static constexpr bool is_resolved</div><div class="ttdoc">Whether the pointer member was correctly resolved to a concrete implementation.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2448</div></div>
<div class="ttc" id="anamespacerefl_1_1descriptor_html_a75e6a5698114443414d43d3b4ae1c50c"><div class="ttname"><a href="namespacerefl_1_1descriptor.html#a75e6a5698114443414d43d3b4ae1c50c">refl::descriptor::get_pointer</a></div><div class="ttdeci">constexpr auto get_pointer(MemberDescriptor d) noexcept</div><div class="ttdoc">Returns a pointer to the reflected field/function.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2747</div></div>
<div class="ttc" id="anamespacerefl_1_1trait_html_a90fc62b3597ebdeda8040ff78c0628c3"><div class="ttname"><a href="namespacerefl_1_1trait.html#a90fc62b3597ebdeda8040ff78c0628c3">refl::trait::get_t</a></div><div class="ttdeci">typename get&lt; N, TypeList &gt;::type get_t</div><div class="ttdoc">The N-th type in the provided type_list.</div><div class="ttdef"><b>Definition:</b> refl.hpp:760</div></div>
<div class="ttc" id="aclassrefl_1_1descriptor_1_1function__descriptor_html_a5f6c4091c03a8fb9d5f6459c686ea655"><div class="ttname"><a href="classrefl_1_1descriptor_1_1function__descriptor.html#a5f6c4091c03a8fb9d5f6459c686ea655">refl::descriptor::function_descriptor::invoke</a></div><div class="ttdeci">static constexpr auto invoke(Args &amp;&amp;... args) -&gt; decltype(member::invoke(std::declval&lt; Args &gt;()...))</div><div class="ttdoc">Invokes the function with the given arguments.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2415</div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
Expand Down
17 changes: 9 additions & 8 deletions docs/classrefl_1_1descriptor_1_1member__descriptor__base.html
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#a410121cb42388625a57cfb91
<div class="fragment"><div class="line"><span class="keyword">struct </span>Foo {};</div>
<div class="line">REFL_AUTO(type(Foo, bases&lt;&gt;, ns::serializable()))</div>
<div class="line"> </div>
<div class="line"><a class="code" href="namespacerefl_1_1descriptor.html#a268faca3e6a1845928f583abe5ef877e">get_attributes</a>(<a class="code" href="namespacerefl.html#ae95fbc2d63a7db5ce4d8a4dcca3d637e">reflect</a>&lt;Foo&gt;()) -&gt; const std::tuple&lt;attr::base_types&lt;&gt;, ns::serializable&gt;&amp;</div>
<div class="line"><a class="code" href="namespacerefl_1_1descriptor.html#a268faca3e6a1845928f583abe5ef877e">get_attributes</a>(<a class="code" href="namespacerefl.html#ae95fbc2d63a7db5ce4d8a4dcca3d637e">reflect</a>&lt;Foo&gt;()) -&gt; const <a class="code" href="namespacestd.html">std</a>::tuple&lt;attr::base_types&lt;&gt;, ns::serializable&gt;&amp;</div>
</div><!-- fragment -->
</div>
</div>
Expand Down Expand Up @@ -329,13 +329,14 @@ <h2 class="memtitle"><span class="permalink"><a href="#a5d009e0abbaad1707d6cdb5c
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="anamespacerefl_1_1descriptor_html_a268faca3e6a1845928f583abe5ef877e"><div class="ttname"><a href="namespacerefl_1_1descriptor.html#a268faca3e6a1845928f583abe5ef877e">refl::descriptor::get_attributes</a></div><div class="ttdeci">constexpr const auto &amp; get_attributes(Descriptor d) noexcept</div><div class="ttdoc">Returns a const reference to the descriptor's attribute tuple.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2524</div></div>
<div class="ttc" id="anamespacerefl_1_1descriptor_html_a84ed2ffb6772717a47f526da332c45c8"><div class="ttname"><a href="namespacerefl_1_1descriptor.html#a84ed2ffb6772717a47f526da332c45c8">refl::descriptor::get_attribute_types</a></div><div class="ttdeci">constexpr auto get_attribute_types(Descriptor d) noexcept</div><div class="ttdoc">Returns a type_list of the descriptor's attribute types.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2541</div></div>
<div class="ttc" id="aclassrefl_1_1descriptor_1_1member__descriptor__base_html_af70beb1e0da54d076535cd8fb3dd5381"><div class="ttname"><a href="classrefl_1_1descriptor_1_1member__descriptor__base.html#af70beb1e0da54d076535cd8fb3dd5381">refl::descriptor::member_descriptor_base::declaring_type</a></div><div class="ttdeci">T declaring_type</div><div class="ttdoc">An alias for the declaring type of the reflected member.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2212</div></div>
<div class="ttc" id="anamespacerefl_1_1trait_html_a90fc62b3597ebdeda8040ff78c0628c3"><div class="ttname"><a href="namespacerefl_1_1trait.html#a90fc62b3597ebdeda8040ff78c0628c3">refl::trait::get_t</a></div><div class="ttdeci">typename get&lt; N, TypeList &gt;::type get_t</div><div class="ttdoc">The N-th type in the provided type_list.</div><div class="ttdef"><b>Definition:</b> refl.hpp:746</div></div>
<div class="ttc" id="anamespacerefl_html_ae95fbc2d63a7db5ce4d8a4dcca3d637e"><div class="ttname"><a href="namespacerefl.html#ae95fbc2d63a7db5ce4d8a4dcca3d637e">refl::reflect</a></div><div class="ttdeci">constexpr type_descriptor&lt; T &gt; reflect() noexcept</div><div class="ttdoc">Returns the type descriptor for the type T.</div><div class="ttdef"><b>Definition:</b> refl.hpp:3257</div></div>
<div class="ttc" id="anamespacerefl_1_1descriptor_html_aff945ef69bf77ab1725a5a8d4c1fea98"><div class="ttname"><a href="namespacerefl_1_1descriptor.html#aff945ef69bf77ab1725a5a8d4c1fea98">refl::descriptor::get_name</a></div><div class="ttdeci">constexpr auto get_name(Descriptor d) noexcept</div><div class="ttdoc">Returns the full name of the descriptor.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2507</div></div>
<div class="ttc" id="anamespacerefl_1_1descriptor_html_afe87e9035c9416033b3514aa094bc0fd"><div class="ttname"><a href="namespacerefl_1_1descriptor.html#afe87e9035c9416033b3514aa094bc0fd">refl::descriptor::get_declarator</a></div><div class="ttdeci">constexpr auto get_declarator(MemberDescriptor d) noexcept</div><div class="ttdoc">Returns the type_descriptor of declaring type of the member.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2647</div></div>
<div class="ttc" id="anamespacerefl_1_1descriptor_html_a268faca3e6a1845928f583abe5ef877e"><div class="ttname"><a href="namespacerefl_1_1descriptor.html#a268faca3e6a1845928f583abe5ef877e">refl::descriptor::get_attributes</a></div><div class="ttdeci">constexpr const auto &amp; get_attributes(Descriptor d) noexcept</div><div class="ttdoc">Returns a const reference to the descriptor's attribute tuple.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2599</div></div>
<div class="ttc" id="anamespacerefl_1_1descriptor_html_a84ed2ffb6772717a47f526da332c45c8"><div class="ttname"><a href="namespacerefl_1_1descriptor.html#a84ed2ffb6772717a47f526da332c45c8">refl::descriptor::get_attribute_types</a></div><div class="ttdeci">constexpr auto get_attribute_types(Descriptor d) noexcept</div><div class="ttdoc">Returns a type_list of the descriptor's attribute types.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2616</div></div>
<div class="ttc" id="aclassrefl_1_1descriptor_1_1member__descriptor__base_html_af70beb1e0da54d076535cd8fb3dd5381"><div class="ttname"><a href="classrefl_1_1descriptor_1_1member__descriptor__base.html#af70beb1e0da54d076535cd8fb3dd5381">refl::descriptor::member_descriptor_base::declaring_type</a></div><div class="ttdeci">T declaring_type</div><div class="ttdoc">An alias for the declaring type of the reflected member.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2287</div></div>
<div class="ttc" id="anamespacerefl_1_1trait_html_a90fc62b3597ebdeda8040ff78c0628c3"><div class="ttname"><a href="namespacerefl_1_1trait.html#a90fc62b3597ebdeda8040ff78c0628c3">refl::trait::get_t</a></div><div class="ttdeci">typename get&lt; N, TypeList &gt;::type get_t</div><div class="ttdoc">The N-th type in the provided type_list.</div><div class="ttdef"><b>Definition:</b> refl.hpp:760</div></div>
<div class="ttc" id="anamespacerefl_html_ae95fbc2d63a7db5ce4d8a4dcca3d637e"><div class="ttname"><a href="namespacerefl.html#ae95fbc2d63a7db5ce4d8a4dcca3d637e">refl::reflect</a></div><div class="ttdeci">constexpr type_descriptor&lt; T &gt; reflect() noexcept</div><div class="ttdoc">Returns the type descriptor for the type T.</div><div class="ttdef"><b>Definition:</b> refl.hpp:3431</div></div>
<div class="ttc" id="anamespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div><div class="ttdef"><b>Definition:</b> refl.hpp:37</div></div>
<div class="ttc" id="anamespacerefl_1_1descriptor_html_aff945ef69bf77ab1725a5a8d4c1fea98"><div class="ttname"><a href="namespacerefl_1_1descriptor.html#aff945ef69bf77ab1725a5a8d4c1fea98">refl::descriptor::get_name</a></div><div class="ttdeci">constexpr auto get_name(Descriptor d) noexcept</div><div class="ttdoc">Returns the full name of the descriptor.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2582</div></div>
<div class="ttc" id="anamespacerefl_1_1descriptor_html_afe87e9035c9416033b3514aa094bc0fd"><div class="ttname"><a href="namespacerefl_1_1descriptor.html#afe87e9035c9416033b3514aa094bc0fd">refl::descriptor::get_declarator</a></div><div class="ttdeci">constexpr auto get_declarator(MemberDescriptor d) noexcept</div><div class="ttdoc">Returns the type_descriptor of declaring type of the member.</div><div class="ttdef"><b>Definition:</b> refl.hpp:2722</div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
Expand Down
Loading

0 comments on commit ef9ebe7

Please sign in to comment.