{"repo":"ghassanpl/reflector","free":true,"listed":false,"github":"https://github.com/ghassanpl/reflector","clone":"git clone https://github.com/ghassanpl/reflector.git","description":"A small tool to create reflection information for C++ projects, ala Unreal's UHT","language":"C++","stars":17,"topics":["cpp","reflection","game-development","gamedev","gamedev-tool","cpp20","cpp20-library"],"license":null,"category":"game-templates","readme_excerpt":"reflector NOTE : This is still a work in progress. Right now the tool mostly works, but is imperfect, generates imperfect code, and has bugs. Use at your own risk. Pull requests welcomed and encouraged and begged for! What is it? Reflector is a C++20 reflection generation tool similar to the Unreal Header Tool. It will scan the headers in your codebase for types/methods/fields annotated with a special reflection syntax, and create files containing reflection information about those entities. The main type of file it will create is the .mirror file, which you are meant to include in the files Reflector is scanning. This will inject reflection information straight into your files, allowing for compile-time reflection of these entities. How to use See Usage in the wiki. Example See the example in the wiki. Dependencies Projects Using Reflector C+\\+20 (C++17 support could be added if requested) optional nlohmann/json if you want out-of-the-box JSON serialization support The Reflector Tool Itself C++20 nlohmann/json magic enum tl::expected - or std::expected if it's available to your compiler my personal header utils library See the vcpkg.json file for up-to date dependency information. UNTODO These are things I am not planning on doing unless someone asks nicely: support for generating code for older C++ versions other platforms (the code is fairly portable, just needs the memory mapping code to be written for non-windows platforms) scriptability/pluginability","default_branch":null,"files":null,"tree":[],"storefront":"/r/ghassanpl","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ghassanpl/reflector/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."}