> I am not sure what you mean with "all the way" as the new connect()
> options are fully compile time based.
I'm referring to the other half of the problem, the slot definitions. Such as boost::signal<> or sigc::signal<>, both of which allow slot definition without requiring any special syntax or tool support.
> No, this is handled by the compiler itself, or rather its preprocessor. A
> Qt file is a standard C++ header or source file, as can easily be
> verified by running a C++ compiler on it manually. Same is of course true
> for the file generated by moc.
Oh, certainly. I'm not arguing with how it's implemented--in the preprocessor--, just that it does effectively make Qt-using sources a non-standard C++ dialect as a result.
> It would have been an unmanagable situtation for Trolltech to deliver a
> custom compiler for all platforms they supported.
Sure, I understand the historical reasons, and they make perfect sense in this context. But all the other signal/slot mechanisms such as sigc++ and boost::signals require nothing except compiler template support, which all compilers have supported for well over a decade now. It does seem a little odd, in 2012, not to rely on the standard library and facilities like this where it makes a lot of sense.