Skip to content

Commit 00c1eb5

Browse files
authored
Merge branch 'release' into develop
2 parents ab87b86 + 2450272 commit 00c1eb5

File tree

1 file changed

+11
-12
lines changed

1 file changed

+11
-12
lines changed

README.md

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
[![CMake](https://img.shields.io/badge/CMake-Enabled-brightgreen)](https://cmake.org) [![C++20](https://img.shields.io/badge/C++-20-blue)](https://isocpp.org) [![RTL Build](https://github.com/ReflectCxx/ReflectionTemplateLibrary-CPP/actions/workflows/build.yml/badge.svg?branch=release)](https://github.com/ReflectCxx/ReflectionTemplateLibrary-CPP/actions/workflows/build.yml?query=branch%3Arelease) [![License: MIT](https://img.shields.io/badge/License-MIT-green)](LICENSE)
66

77
### 🪞 What’s “Reflection”?
8-
98
Reflection lets you interact with code by `name` instead of by `type`. Imagine you’ve written a simple function,
109
```c++
1110
std::string complexToStr(float real, float img);
@@ -23,7 +22,6 @@ if(cToStr) { // Function materialized?
2322
*Just run-time lookup and type-safe invocation*.
2423

2524
### ⚡ Performance!
26-
2725
Overhead? Practically none. **RTL**’s reflective calls — when return and argument types are known — are just a native function-pointer hop, often faster than `std::function`.
2826

2927
Yes — `rtl::function` is faster than `std::function`.
@@ -32,7 +30,6 @@ Microbenchmarks show reflective invocations through `rtl::function` have lower c
3230
Once the functions start doing real work, both perform identically — always, under all conditions.
3331

3432
### 💡 In One Line
35-
3633
***"RTL is a lightweight, static library that enables a robust, type-safe run-time reflection system for C++ — as flexible as in managed languages, yet as close as possible to native performance."***
3734

3835
## What’s more?
@@ -131,19 +128,19 @@ RTL doesn’t invent a new paradigm — it extends C++ itself. You create object
131128

132129
## Reflection Features
133130

134-
***Function Reflection** 🔧 – Register and invoke C-style functions, supporting all kinds of overloads.
135-
***Class and Struct Reflection** 🏗️ – Register and dynamically reflect their methods, constructors, and destructors.
136-
***Complete Constructor Support** 🏗️:
131+
***Function Reflection** – Register and invoke C-style functions, supporting all kinds of overloads.
132+
***Class and Struct Reflection** – Register and dynamically reflect their methods, constructors, and destructors.
133+
***Complete Constructor Support** :
137134
* Default construction.
138135
* Copy/Move construction.
139136
* Any overloaded constructor.
140137

141-
***Allocation Strategies & Ownership** 📂:
138+
***Allocation Strategies & Ownership** :
142139
* Choose between `Heap` or `Stack` allocation.
143140
* Automatic move semantics for ownership transfers.
144141
* Scope-based destruction for `Heap` allocated instances.
145142

146-
***Member Function Invocation** 🎯:
143+
***Member Function Invocation** :
147144
* Static methods.
148145
* Const/Non-const methods.
149146
* Any overloaded method, Const/Non-Const based as well.
@@ -182,10 +179,12 @@ To build, use any IDE applicable to the generator, or build straight from CMake:
182179
cmake --build .
183180
```
184181

185-
Run the **CxxRTLTestApplication** binary generated in the `../bin` folder. *(Tested MSVC-19, GCC-14 & Clang-19)*
186-
* See `CxxTestRegistration/src/MyReflectionTests/` for introductory type registration & reflective programming examples.
187-
* See `CxxRTLTestApplication/src` for detailed test cases.
188-
182+
Run the `RTLTestRunApp` or `RTLBenchmarkApp` binaries generated in the `bin/` directory. (Tested with MSVC 19, GCC 14, and Clang 19)
183+
* See `CxxTestRegistration/src/MyReflectionTests/` for introductory examples of type registration and reflective programming.
184+
* See `RTLTestRunApp/src` for detailed test cases.
185+
* See `RTLBenchmarkApp/src` for benchmarking implementations.
186+
* Run `run_benchmarks.sh` to perform automated benchmarking, from micro-level tests to scaled workloads.
187+
189188
## Contributions
190189

191190
Contributions welcome! Report bugs, request features, or submit PRs on GitHub.

0 commit comments

Comments
 (0)