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