0
状況依存のマクロを作成したいとします。このマクロはMacros.h
というファイルにあります。私はユニットテストルーチンから呼び出されたときにログメッセージを出力しないマクロを定義したい。だから、私はこのようにマクロはUNIT_TESTING
に依存しますのでC++で条件文に展開されるマクロを定義する方法は?
#define LOG_INFO(x) if(!UNIT_TESTING) qInfo().noquote().nospace() << x
のように変更され、私は、コンパイラがで
declaration does not declare anything [-fpermissive]
extern bool UNIT_TESTING; // Whether in course of unit testing
^
を伝え、しかし
extern bool UNIT_TESTING; // Whether in course of unit testing
同じMacros.h
Macros.h
が含まれているファイルで外部が宣言されていると、正常に動作します。私は何かを間違えますか?
あなたは 'extern" Cブロックにいますか? 'UNIT_TESTING'マクロですか? – Jarod42
もちろんこれは条件マクロではありません。これは、条件文に展開される無条件マクロです。 – MSalters
本当にマクロを使いたいですか?ロギングクラスはより多くの弾丸証明であり、印刷するときと印刷しないときにそのクラスに属性を与えることができます。 – NathanOliver