C++ reflection (P2996) and moc: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
No edit summary |
||
Line 9: | Line 9: | ||
== Reflection for Standard C++ == | == Reflection for Standard C++ == | ||
C++26 will (likely) ship with compile-time reflection. The papers that are relevant | C++26 will (likely) ship with compile-time reflection. The papers that describe features that are relevant for Qt are: | ||
* P2996 "Reflection for C++26" https://wg21.link/P2996 | * P2996 "Reflection for C++26" https://wg21.link/P2996 |
Revision as of 10:34, 27 May 2025
This is a WORK IN PROGRESS page to understand the implications of "Reflection for C++" for the future of Qt and moc.
Some questions that this work aims to answer:
- Can we replace moc with a pure C++ solution?
- If yes, how much source code breakage is to be expected?
- Can porting be automated?
- Is there something missing from standard C++ that we need for moc?
Reflection for Standard C++
C++26 will (likely) ship with compile-time reflection. The papers that describe features that are relevant for Qt are:
- P2996 "Reflection for C++26" https://wg21.link/P2996
- P3394 "Annotations for Reflection" https://wg21.link/P3394
- P3096 "Function Parameter Reflection in Reflection for C++26" https://wg21.link/P3096
- P3491 "define_static_{string,object,array}" https://wg21.link/P3491