You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+28-19Lines changed: 28 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -103,8 +103,8 @@ int main()
103
103
*/ auto [status, personObj] = classPerson->instance();
104
104
105
105
```
106
-
-`RStatus`contains error-code (`rtl::Error`) indicating reflection call success/failure and return value wrapped in `std::any` of call, if any.
107
-
-`Instance`contains the object created (with type erased)on heap, managed with`std::shared_ptr`.
106
+
-`RStatus`provides an errorcode `(rtl::Error)` that indicates the success or failure of the reflection call, and it also contains the return value (if any) wrapped in `std::any`.
107
+
-`Instance`holds the created object (with its type erased), managed on the heap using`std::shared_ptr`.
108
108
```c++
109
109
110
110
/* Create an instance via reflection using a parameterized constructor.
- `std::any_cast` will throw exception if correct type is not specified.
134
+
- `std::any_cast` will throw an exception if correct type is not specified.
135
135
- Check, `CxxTypeRegistration/src/MyReflection.cpp` for all sort of type registrations.
136
136
- Check, `CxxReflectionTests/src` for test cases.
137
137
138
-
## Reflection Features List (status),
139
-
- Create instances & call methods in complete absence of its type.
140
-
- Supports default & copy constructor along with all kinds of overloads.
141
-
- Supports all kinds of member function overloading, including constant function overloads(WIP) for *const objects*.
142
-
- Supports single, multiple, multilevel & virtual inheritance (WIP).
143
-
- Query a class for its super classes & for all its derived classes (vice-versa) (WIP).
144
-
- Resolves *Inheritance- Diamond Problem* (WIP).
145
-
- Supports *virtual methods - Overriding*.
146
-
- No need of any 3rd party dependencies.
147
-
- Manual registration with **NO MACROS**.
148
-
149
-
## TODO,
150
-
- Unit test cases (WIP)
151
-
- Class/Struct's Field reflection (Currently only methods are supported).
152
-
- Enum Class reflection.
153
-
- Access specifiers for reflection *(presently any Method/Field registerd is considered as public)*
138
+
## Reflection Features,
139
+
[x] Register and invoke functions, supporting all overloads.
140
+
[x] Register classes/structs and reflect their methods, constructors, and destructors.
141
+
[x] Invoke the default constructor.
142
+
[x] Invoke the copy constructor with a non-const reference argument.
143
+
[x] Invoke the copy constructor with a const reference argument.
144
+
[x] Invoke any overloaded constructor.
145
+
[x] Invoke non-const member functions.
146
+
[x] Invoke const member functions.
147
+
[x] Invoke static member functions.
148
+
[x] Automatically invoke destructors for objects created on the heap.
149
+
[ ] Reflect properties of classes/structs, providing getter/setter methods.
150
+
[ ] Invoke functions with perfect forwarding.
151
+
[ ] Reflect enums.
152
+
[ ] Reflect classes with composite types that are also reflected.
153
+
[ ] Support single, multiple, multilevel, and virtual inheritance.
154
+
155
+
## License
156
+
This project is licensed under the MIT License. See the LICENSE file for more details.
157
+
158
+
## Contributions
159
+
Contributions are welcome! If you find a bug, have a feature request, or want to contribute to the project, feel free to open an issue or submit a pull request on GitHub.
160
+
161
+
## Contact
162
+
For any questions, suggestions, or feedback, you can reach out via GitHub or email at `[email protected]`.
0 commit comments