// the find
LaurieWired/CallMeMaybe
Runtime reflection library built on C++26 static reflection
CallMeMaybe layers a runtime reflection API on top of C++26's compile-time static reflection (P2996), letting you tag members and methods with an annotation and then look them up, invoke them, and instantiate objects dynamically by name at runtime. It's for C++ developers experimenting with the reflection TS ahead of standardization — think serialization, scripting bindings, or ORM-style mapping without RTTI.
Building the runtime layer on std::meta rather than hand-rolled macros means the API shape (nonstatic_data_members_of, identifier_of, offset_of) mirrors the standard, so knowledge transfers once compilers ship this for real. Opt-in annotation per-member is a sane default — no accidental exposure of internals through blanket registration. Avoiding RTTI entirely with a custom type system is a real technical commitment, not just a marketing line, and matters for embedded or size-constrained targets.
This only builds on GCC 16.1 with an experimental -freflection flag, and the README admits Clang's experimental support causes hash collisions — so there's exactly one usable toolchain right now, and it's not a released compiler. Manual delete on every dynamically-constructed instance is a foot-gun waiting to happen once this gets used past toy examples. No support for std containers or generic types yet, and overloaded free functions with the same name aren't disambiguated, which rules out reflecting a lot of real-world C++ as-is. With 423 stars and a single-author feel, expect the API to shift under you as P2996 itself evolves before ratification.