3 ms·
More like C++ hates everyone except for C++ compilers.
by GoblinSlayer 5y ago
More like C++ hates everyone except for C++ compilers.
- einpoklum 5y agoFYI: Qt is rather ancient C++ by now.
- GoblinSlayer 5y agoIs Qt C++? AFAIK it has some sort of custom preprocessor, does it work with a naive vanilla C++ compiler?
- throwaway2037 5y agoIt is called the Meta Object Compiler (moc). You can read more about it here: https://doc.qt.io/qt-6/why-moc.html https://doc.qt.io/qt-6/why-moc.html It parses your C++ headers to generate helpful metadata used for runtime reflection and slot-and-signals. All the generated code is C++. The latest versions of CMake support moc out of the box, so developers hardly notice the moc step.
- GoblinSlayer 5y agoSo Qt doesn't work without moc, right?
- throwaway2037 5y agoNo, it is possible to hand code everything that moc generates.
- GoblinSlayer 5y agoAnd PyQt generates that metadata to make signals work?
- p_l 5y agoIt used to be much more involved in the past. Of course you could hand write the code, but as it was originally I believe a preprocessor was the only way to sensibly write signal support, something that AFAIK stopped being true around 2003 but by then moc was entrenched.
- throwaway2037 5y agoPyQt and PySide (both Python libraries that allow you to use Qt libraries) do not required you to use 'moc'.
- throwaway2037 5y agoYes, the code base is very old, about 25 years. However, it is constantly upgraded. The most recent version, Qt 6, supports C++ 17.