关于ACE_BEGIN_VERSIONED_NAMESPACE_DECL的含义
我是一个初学者,这几天看ACE代码,发现很多代码中都包含如下一个宏,但是一致没找到定义得位置,请各位前辈赐教:ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_END_VERSIONED_NAMESPACE_DECL # define ACE_BEGIN_VERSIONED_NAMESPACE_DECL namespace ACE_VERSIONED_NAMESPACE_NAME {
# define ACE_END_VERSIONED_NAMESPACE_DECL } \
using namespace ACE_VERSIONED_NAMESPACE_NAME;
为什么没有人回答这个问题呀?
这个问题我也不懂。请高人解释 #include "ace/Version.h"// Make name 的實作方式:
#define ACE_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,BETA) ACE_ ## MAJOR ## _ ## MINOR ## _ ## BETA
// 轉呼叫Make name的實作
#define ACE_MAKE_VERSIONED_NAMESPACE_NAME(MAJOR,MINOR,BETA) ACE_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,BETA)
// 將用 Version.h 中的 ACE_MAJOR_VERSION, ACE_MINOR_VERSION 與 ACE_BETA_VERSIONmacro 傳給上一個 macro
#define ACE_VERSIONED_NAMESPACE_NAME ACE_MAKE_VERSIONED_NAMESPACE_NAME(ACE_MAJOR_VERSION,ACE_MINOR_VERSION,ACE_BETA_VERSION)
# endif/* !ACE_VERSIONED_NAMESPACE_NAME */
// 下面兩個 macro 將上面做出來的 ACE_VERSIONED_NAMESPACE 跟 C++ 關鍵字 namespace 與 { } 結合起來
# define ACE_BEGIN_VERSIONED_NAMESPACE_DECL namespace ACE_VERSIONED_NAMESPACE_NAME {
# define ACE_END_VERSIONED_NAMESPACE_DECL } \
using namespace ACE_VERSIONED_NAMESPACE_NAME;
假設 Version.h 裡面定義如下
#define ACE_MAJOR_VERSION 5
#define ACE_MINOR_VERSION 5
#define ACE_BETA_VERSION 2
把 ACE_BEGIN_VERSIONED_NAMESPACE_DECL 與 ACE_END_VERSIONED_NAMESPACE_DECL 展開就是
namespace ACE_5_5_2 {
// code ...
}
using namespace ACE_5_5_2;
页:
[1]