正文

C++ 反射2012-08-09 17:21:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/lqf110/53703.html

分享到:

C++ 的“反射”技术

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了吧,没功夫细究了。

阅读(9635) | 评论(8)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册