On Friday 9 August 2024 01:36:22 GMT-7 Ivan Solovev via Development wrote: > Do I understand it correctly that the approach with constexpr functions will > allow us to solve the problems with moc (point 2 from the first e-mail of > the thread)?
I've thrown together a sample of what it may look like for the Qt namespace. I have not modified moc yet, so I generated from the moc JSON output and manual editing. I've tested Clang 18, GCC 13.3 and VS 2022 and they all compiled, producing a std::array<uint, 3007>. I also noted in editing this that there's an opportunity for reduction by reusing the definitions of flags that are Q_ENUMs too. moc_qnamespace.cpp is by far the largest in qtbase: $ find -name 'moc*cpp' -printf '%-6s %p\n' | sort -n | tail -3 49965 ./src/corelib/Core_autogen/include/moc_qlocale.cpp 70502 ./src/corelib/Core_autogen/include/moc_qabstractitemmodel.cpp 87549 ./src/corelib/Core_autogen/43AIQRLLGG/moc_qnamespace.cpp I've thrown it at the CI to check more: https://codereview.qt-project.org/c/qt/qtbase/+/582313 But not for all of Qt: $ find -name 'moc*cpp' -size +115168c -printf '%-6s %p\n' 88679 ./qtdeclarative/src/quick/Quick_autogen/include/ moc_qquickvaluetypes_p.cpp 90699 ./qtcharts/src/chartsqml2/ChartsQml_autogen/include/ moc_declarativebarseries_p.cpp 92547 ./qtdeclarative/src/quick/Quick_autogen/include/moc_qquickitem_p.cpp 101065 ./qtquick3d/src/quick3d/Quick3D_autogen/EWIEGA46WW/ moc_qquick3dspecularglossymaterial_p.cpp 104656 ./qtdeclarative/src/quick/Quick_autogen/include/moc_qquickpath_p.cpp 128155 ./qtquick3d/src/quick3d/Quick3D_autogen/EWIEGA46WW/ moc_qquick3dprincipledmaterial_p.cpp 140925 ./qttools/src/designer/src/components/lib/ DesignerComponentsPrivate_autogen/include/moc_qtpropertymanager.cpp 2844668 ./qtopcua/src/opcua/OpcUa_autogen/include/moc_qopcuanodeids.cpp QOpcUa::NodeIds contains a single enum with 16162 entries. I'll need to test that too. The other ones are not big meta objects; the files are big because there are multiple classes in them and the content for signals and slots is large. -- Thiago Macieira - thiago.macieira (AT) intel.com Principal Engineer - Intel DCAI Platform & System Engineering
smime.p7s
Description: S/MIME cryptographic signature
-- Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development