Qt сначала обрабатывает исходный код, заменяя сигналы и слоты в конструкции понятные компилятору С++, и только потом компилирует. Как следствие - удобство для пользователя и нарушение стандарта С++. Вы можете попробовать написать свой прекомпилятор для тех же нужд.