Qt: возможно ли использовать технику миксинов? - PullRequest
1 голос
/ 30 марта 2010

Библиотека Qt включает в себя расширенные возможности метапрограммирования, используя собственный компилятор moc предварительной обработки. Кто-нибудь знает, можно ли через него создавать какие-то дополнения? Например, у меня есть QString и я хочу добавить к нему метод без подклассов и изменения существующего кода. Есть ли у Qt такие решения для этого?

1 Ответ

3 голосов
/ 30 марта 2010

Я почти уверен, что компилятор moc не считается метапрограммированием согласно наиболее распространенному определению .

Кроме того, вы не можете добавлять методы в класс, используя его.

Infact, в C ++, вы никогда не можете добавлять методы к классу вне его объявления, и moc (или любая другая утилита QT) фактически никогда не касается определения класса. это только добавляет некоторую метаинформацию к нему и дополнительный код, который заботится о механизме сигналов и слотов. Это очень мало связано с настоящим метапрограммированием.

...