我在扩展 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’
我应该如何最好地修改我的宏定义来解决这个问题?