これは元の質問の一部ではありませんでしたが、複数行のマクロに埋め込まれたコメントに注意が必要であると述べている回答は他にありません。
- C ++スタイルのコメントは、行継続エスケープ文字を含む行には表示されない場合があります。
- Cスタイルのコメントは、行継続エスケープ文字で区切られた複数行にまたがることはできません。
例:
// WRONG:
#define someMacro(X) \
// This comment is a problem. \
class X : public otherClass \
{ \
int foo; \
void doFoo(); \
};
// WRONG:
#define someMacro(X) \
/* This comment is also \
* a problem. */ \
class X : public otherClass \
{ \
int foo; \
void doFoo(); \
};
// OK:
#define someMacro(X) \
/* This comment is fine. */ \
class X : public otherClass \
{ \
int foo; /* This is OK too! */ \
void doFoo(); \
};