{"repo":"ReflectCxx/ReflectionTemplateLibrary-CPP","free":true,"listed":false,"github":"https://github.com/ReflectCxx/ReflectionTemplateLibrary-CPP","clone":"git clone https://github.com/ReflectCxx/ReflectionTemplateLibrary-CPP.git","description":"Powerful C++ runtime reflection with compile-time guarantees – and ZERO performance compromise.","language":"C++","stars":28,"topics":["cpp","cpp-reflection","cpp20","cxx","dynamic-dispatch","game-engine","metaprogramming","reflection","runtime-reflection","scripting"],"license":"MIT","category":"game-templates","readme_excerpt":"Reflection Template Library (RTL) – A Run-Time Reflection System for C++. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RTL provides type-safe run-time reflection for C++, combining compile-time guarantees with run-time flexibility. It enables name-based discovery and invocation of functions, constructors, and object members through a non-intrusive, type-safe reflection system that follows modern C++ idioms. For example, consider the following function: Using RTL, you can discover this function by name and call it dynamically: No compile-time coupling to target symbols. No unsafe casting. No guesswork. Just run-time lookup and type-safe invocation. Design Highlights Zero-Overhead by Design – Reflection metadata is registered and resolved lazily. You only pay for what you actually use. Non-Intrusive & Macro-Free – No macros, base classes, or intrusive user-type annotations required. Performance – Reflective calls are on par with std::function , and can be even faster when argument and return types are fully specified. See the Performance Summary for benchmark details. A Quick Preview: Reflection That Looks and Feels Like C++ First, create an instance of rtl::CxxMirror : The cxx mirror object provides access to the runtime reflection system. It references metadata for all registered entities and supports name-based lookup. The object may reside in any translation unit. To make it globally accessible while ensuring lazy initialization, a singleton access interface can be used: define and r","default_branch":null,"files":null,"tree":[],"storefront":"/r/ReflectCxx","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ReflectCxx/ReflectionTemplateLibrary-CPP/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}