http://www.riverace.com/acebooks/apg_errata.htm 에 둘째줄 ^^;
이 ACE_NLOGGING 도 굳이 config.h에 넣을 필요없이
Log_Msg.h를 include하기 전에 정의해주면 되겠더군요.
Log_Msg.h라도 살펴봤으면 알 수 있었는데, 책에
적힌대로만 하다가
삽질 좀 했네요 -_-a
근데 Log_Msg.h를 보면..
#if defined (ACE_NLOGGING)
...
#define ACE_DEBUG(X) do {} while (0)
...
ACE_DEBUG의 동작을 무시하기 위해서 의미없는 구문으로
치환해버린다는 의도는 알겠는데, 왜 굳이 do{}
while(0)을 쓰는지 궁금합니다. ace소스 전체에서 do{
code... }while{0} 문을 종종 보는데, 어떤 이유가 있는
걸까요? 그냥 블럭으로만 감싸도 될것같은데 말이죠.
위 링크를 참고하셔용~
좋은 정보 감사합니다 ^_^