Macros de pré-processamento de várias linhas

Como fazer macro multiprocessador de linha? Eu sei fazer uma linha:

#define sqr(X) (X*X)

mas eu preciso de algo assim:

#define someMacro(X)
    class X : public otherClass
    {
         int foo;
         void doFoo();
    };

Como posso fazer isso funcionar?

Este é apenas um exemplo, a macro real pode ser muito longa.