C++ reflection (P2996) and moc

From Qt Wiki
Revision as of 10:06, 27 May 2025 by Peppe (talk | contribs) (Created page with "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 tha...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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 are relevant here 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