I know how they work conceptually, but how are signals and slots implemented in the Qt framework? Qt Creator treats them as keywords, but are they simply a set of macros, or is a special pre-processor required before these source files can be compiled?

In other words, if I use Qt's signal/slot features in my code, can I easily compile it on any C++ compiler?