ACE ロギング マクロを展開できません。これは初歩的な問題ですが、頭を悩ませることはできません。
可変引数リストを使用して独自の ACE ログ マクロを作成しようとしています。私のコンパイラ (gcc バージョン 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC)) は__VA_ARGS__
標準をサポートしています。私の現在の定義は次のとおりです。
#define ERROR_PREFIX ACE_TEXT("ERROR (%T)%?%I")
#define ERROR(FMT,...) ACE_DEBUG((LM_ERROR, ACE_TEXT(FMT) __VA_ARGS__))
この呼び出しシーケンスを介して呼び出したいもの:
ERROR( "This is an example error in file %s\n", errorString.c_str() )
しかし、次のコンパイルエラーが発生します。
error: expected ‘)’ before ‘errorString’
この問題に対処するには、マクロ定義をどのように修正すればよいですか?