現在、コンパイラフラグに基づいて関数を定義しようとしています。 TRACEフラグが設定されている場合は、情報をトレースコンポーネントに渡すマクロを定義します。マクロパラメータリスト内のポインタ
#define TRACERPTR(Reporter * pReporter, traceComponent eComponent, traceLevel eLevel, string sFormat, formatArgs...) \
if (pReporter != NULL) { pReporter->trace(eComponent, eLevel, sFormat, ##formatArgs); }
Reporterは、このマクロの上に同じ.hファイルで定義されたクラスです。レポータオブジェクトのポインタを渡す必要があります。レポータオブジェクトは、トレース機能の呼び出しに使用されます。
しかし、私はコンパイラエラーを取得:
error: "*" may not appear in macro parameter list
私はちょうど「*」を削除した場合に生じるものになど興味があった - 「マクロのパラメータは、カンマ区切りでなければならないエラーが発生しました"
ここで間違っていることはありますか?
あなたの知識が正しい引数の種類を必要としない、ので、あなたのソリューションです。 –
最初に対応して、あなたの知識は正しいです。ありがとう。 – BSchlinker
@ BSchlinker:どうぞよろしくお願いいたします。 – JAB