Метаобъектный компилятор
Мета-объектная система — часть ядра Qt фреймворка для поддержки Qt расширений в С++ таких, как сигналы и слоты для коммуникации между объектами в режиме реального времени и динамических свойств системы.
Мета-объектная система содержит: класс QObject, макрос Q_OBJECT и утилиту moc(Мета-Объектный Компилятор). QObject это базовый класс для всех Qt классов. Q_OBJECT макрос используется для включения мета объектных функций в классах и на этапе компиляции moc работает как препроцессор который преобразует применения макроса Q_OBJECT в исходный код C++.
Использование мета-объектных систем прошло через некоторую критику. В документации Qt было дано несколько вещей в пользу мета-объектных систем, включая плюсы генерации кода, динамичности графических интерфейсов, автоматической связи со скриптовыми языками, не добавляя ограничений и так же хорошая, производительная разработка механизма сигналов и слотов в moc.
Ссылки
править- «The Meta-Object System — QtCore 5.1». Qt Project. 2013-07-04. Retrieved2013-07-04.
- «Using the Meta-Object Compiler (moc)». Qt Project. 2013-07-04. Retrieved2013-07-04.
- «Why Does Qt Use Moc for Signals and Slots?». Qt Project. 2013-07-04. Retrieved 2013-07-04.
- «Re-implementing Qt moc using libclang». Olivier Goffart. 2013-07-04. Retrieved 2013-07-04.