プリプロセッサについて熱く語るスレ。
■ このスレッドは過去ログ倉庫に格納されています
0151デフォルトの名無しさん
NGNG目指してるんだが、下のコードで、IGNORE(CAUSE_ERROR)はエラーにならないのに
IGNORE_X(CAUSE_ERROR)がエラーになるのはなぜだ?わかる人がいたら教えてくれ。
#define THREE_ARG_MACRO(x, y, z)
#define CAUSE_ERROR THREE_ARG_MACRO(foo) /* 展開されたらエラー */
#define EAT(_)
#define IGNORE(x) EAT(#x) /* 引数xを展開せずに飲み込む */
#define IGNORE_X(x) IGNORE(x) EAT(#x) /* 間接的にIGNOREを呼ぶ */
IGNORE(CAUSE_ERROR) /* ok */
IGNORE_X(CAUSE_ERROR) /* macro "THREE_ARG_MACRO" requires 3 arguments, but only 1 given */
■ このスレッドは過去ログ倉庫に格納されています