【发布时间】:2012-12-22 15:06:18
【问题描述】:
我在扩展 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’
我应该如何最好地修改我的宏定义来解决这个问题?
【问题讨论】: