Skip to content

Commit 2dc0d08

Browse files
committed
updated
1 parent 8937986 commit 2dc0d08

File tree

1 file changed

+28
-19
lines changed

1 file changed

+28
-19
lines changed

README.md

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@ int main()
103103
*/ auto [status, personObj] = classPerson->instance();
104104
105105
```
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 error code `(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`.
108108
```c++
109109

110110
/* Create an instance via reflection using a parameterized constructor.
@@ -131,23 +131,32 @@ int main()
131131
std::string nameStr = std::any_cast<std::string>(retName.getReturn());
132132
}
133133
```
134-
- `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.
135135
- Check, `CxxTypeRegistration/src/MyReflection.cpp` for all sort of type registrations.
136136
- Check, `CxxReflectionTests/src` for test cases.
137137
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

Comments
 (0)