转载 C++ 的“反射”技术

原址: http://www.cppblog.com/tx7do/archive/2006/09/05/12034.html

Lit Window Library
来自 http://sourceforge.net/projects/litwindow 大概看了一下,使用了宏建立了一个比较复杂的数据结构,用来提供成员反查以及成员访问。
 
tinybind
来自 http://sourceforge.net/projects/tinybind/  这个应该不算是反射,不过通过了定义一个Binding函数实现成员和XML的Element之间的绑定,自动实现了XML<->class,对实现C++的“反射”也有一定的参考作用。
 
OODBC
来自 http://www.garret.ru/~knizhnik/cpp.html  这个也应该不算是反射,也是通过宏建立一个记录成员变量在类中的偏移位置的链表。自动实现数据库字段与成员的绑定,有点Hibernate的味道。呵呵。同时,作者提供的另外几个例如FastDB、GigaBase、goods、POST++都使用了类似的技术。

 
AGM::LibReflection: A reflection library for C++.
 
用的是宏,不过实现出来的东西比较有“反射”的味道,而且只需要一个头文件就足够了。不知道g++下表现如何,有空要研究研究。
 
 
boost出了1.32,去  http://boost.c-view.org/ 可以找到。
其中新增加的部分有:
  • Assignment Library: Filling containers with constant or generated data has never been easier, from Thorsten Ottosen.
  • Minmax Library: Standard library extensions for simultaneous min/max and min/max element computations, from Hervé Brönnimann.
  • Multi-index Containers Library: Containers with multiple STL-compatible access interfaces, from Joaquín M López Muñoz.
  • Numeric Conversion Library: Optimized policy-based numeric conversions, from Fernando Cacciola.
  • Program Options Library: Access to configuration data given on command line, in config files and other sources, from Vladimir Prus.
  • Range Library: A new infrastructure for generic algorithms that builds on top of the new iterator concepts, from Thorsten Ottosen.
  • Serialization Library: Serialization/de-serialization of arbitrary C++ data structures to various formats including text, binary, and xml, from Robert Ramey.
  • String Algorithms Library: Collection of string related algorithms for case conversion, trimming, find/replace operations and more, from Pavol Droba.
  • Tribool: 3-state boolean type library, from Doug Gregor.

其中的 Multi-index Containers Library 还是比较有特色,其他的大部分倒是在其他地方也看到过,可能是那些作者加入了boost了吧,没功夫细究了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值