Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve reflection system and static_variant #156

Merged
merged 3 commits into from
Sep 1, 2019

Commits on Aug 30, 2019

  1. Improve reflection system and static_variant

    Previously, fc reflection generated visitor infrastructure capable of
    visiting each field of a struct; however, this is only useful for run-
    time operations on structures. No compile-time information was preserved
    about the fields of a struct, making compile-time introspection of types
    impossible.
    
    Now FC reflection generates rich compile-time information about the
    members of structs, including types, names, and structure, allowing
    code to be written to explore types in detail at compile-time and fetch
    arbitrary fields at runtime without needing to iterate over the unwanted
    fields.
    
    To make this a reality, a new `typelist` type was added to store this
    compile-time information. This type is also useful within the context of
    `static_variant`, as SV previously used implementation detail types in a
    private namespace to provide this functionality. Now `static_variant`
    uses the reusable functionality of `typelist` to operate, dramatically
    reducing the amount of code dedicated to `static_variant` and also
    making `static_variant` types more flexible to work with since their
    infrastructure is now based on the `typelist` public interface.
    nathanielhourt committed Aug 30, 2019
    Configuration menu
    Copy the full SHA
    c69ea32 View commit details
    Browse the repository at this point in the history

Commits on Aug 31, 2019

  1. Configuration menu
    Copy the full SHA
    94cb185 View commit details
    Browse the repository at this point in the history
  2. Add static_variant::operator==

    For real this time :)
    nathanielhourt committed Aug 31, 2019
    Configuration menu
    Copy the full SHA
    292584c View commit details
    Browse the repository at this point in the history