找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 5080|回复: 3

关于ACE_BEGIN_VERSIONED_NAMESPACE_DECL的含义

[复制链接]
发表于 2007-12-11 21:46:49 | 显示全部楼层 |阅读模式
我是一个初学者,这几天看ACE代码,发现很多代码中都包含如下一个宏,但是一致没找到定义得位置,请各位前辈赐教:
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_END_VERSIONED_NAMESPACE_DECL
 楼主| 发表于 2007-12-11 21:46:58 | 显示全部楼层
# define ACE_BEGIN_VERSIONED_NAMESPACE_DECL namespace ACE_VERSIONED_NAMESPACE_NAME {
# define ACE_END_VERSIONED_NAMESPACE_DECL } \
  using namespace ACE_VERSIONED_NAMESPACE_NAME;
发表于 2008-3-23 14:01:23 | 显示全部楼层

为什么没有人回答这个问题呀?

这个问题我也不懂。请高人解释
发表于 2009-12-23 20:48:01 | 显示全部楼层
#  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_VERSION  macro 傳給上一個 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;
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-12-23 13:38 , Processed in 0.201364 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表