设为首页 加入收藏

TOP

4.2.3 向typeof库注册自定义类
2013-10-07 14:59:45 来源: 作者: 【 】 浏览:75
Tags:4.2.3 typeof 注册 定义

4.2.3  向typeof库注册自定义类

typeof库支持C++(www.cppentry.com)内置的基本类型和STL中的大多数类型,但它没有智能到支持任何类型的程度。如果想让用户自己定义的类能够应用于typeof库,则需要使用库提供的一组宏注册后才能使用。

要向typeof库注册类型,首先要以如下的语句开始:

  1. #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() 

之后的注册类型使用宏BOOST_TYPEOF_REGISTER_TYPE,它必须在全局名字空间使用,宏的参数是类型的完全名称,包括名字空间限定。

示范如何注册类型的代码如下:

  1. #include <boost/typeof/typeof.hpp> 
  2. #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()  
  3. namespace ex  
  4. {  
  5.     struct demo_class{int a,b;};                //一个简单的类  
  6. }  
  7. BOOST_TYPEOF_REGISTER_TYPE(ex::demo_class)  //向typeof库注册类  
  8.  
  9. int main()  
  10. {  
  11.     BOOST_AUTO(x, make_pair("test", ex::demo_class()));  
  12.     cout << typeid(x).name() << endl;  
  13.     x.second.a = 10;  
  14.     x.second.b = 20;  
  15.     cout << x.second.a << x.second.b << endl;  
  16. }  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇4.4 assign 下一篇4.3.1 "无意义"的值

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: