With C++11 it is already very easy/compact to implement slots and signals, there is no need to maintain non-c++-standard features that produce bugs, problems and constraint the development.
"Q_OBJECT" macro, "public slots:" special feature, "signals", "emit", etc. was very useful with old C++ style programming. Now a day, macros are considered a poor programming practice and "public slots" is not even standard C++.
With C++11 Lambda, the "auto" keyword, and the <functional> header, it is currently at least as easy as with QT to implement signals and slots.
Advantages for QT team:
- A big amount of code less to maintain, which actually imply costs for management, debugging, etc.
Advantages for QT users:
- Full cross-compiler compatibility, full IDE compatibility, no requirment for QMake if all is implemented with C++
- Less problems with Macros/QMake implementation
- Only the deprecation of some features.
- New QT functions to learn/develop.