Macros de pré-processamento de várias linhas

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

<code>#define sqr(X) (X*X)
</code>

mas eu preciso de algo assim:

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

Como posso fazer isso funcionar?

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

questionAnswers(4)

yourAnswerToTheQuestion