C++ 的“反射”技术

简介: 这个也应该不算是反射,也是通过宏建立一个记录成员变量在类中的偏移位置的链表。自动实现数据库字段与成员的绑定,有点Hibernate的味道。呵呵。同时,作者提供的另外几个例如FastDB、GigaBase、goods、POST++都使用了类似的技术。
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了吧,没功夫细究了。

目录
相关文章
|
30天前
|
Linux 数据处理 C++
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(一)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
69 0
|
30天前
|
存储 Linux API
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(三)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
31 1
|
30天前
|
消息中间件 Linux 数据处理
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(二)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
30 1
|
30天前
|
存储 编解码 vr&ar
用C++实现视频编码器:FFmpeg与SDL技术结合,轻松编写高效编解码器
用C++实现视频编码器:FFmpeg与SDL技术结合,轻松编写高效编解码器
68 0
|
3月前
|
存储 C++ 计算机视觉
【三维重建技术】C++医学影像处理系统源码
医学影像存储与传输系统是PACS和RIS系统完美结合在一起的综合应用系统。系统的硬件结构由高性能服务器、大容量存储设备、高速网络、各种信息采集设备、各种诊断及应用工作站组成;系统的基本结构由系统管理、图像采集传输与存贮和图像处理与辅助诊断应用三大部分构成。
46 10
|
30天前
|
存储 算法 编译器
C/C++编译器局部优化技术:局部优化是针对单个函数或基本块进行的优化
C/C++编译器局部优化技术:局部优化是针对单个函数或基本块进行的优化
31 0
|
25天前
|
算法 编译器 C++
【C++ 泛型编程 中级篇】C++ 编译时技术:探索 if constexpr 和 std::enable_if
【C++ 泛型编程 中级篇】C++ 编译时技术:探索 if constexpr 和 std::enable_if
38 0
|
28天前
|
存储 算法 安全
【C++ 泛型编程 高级篇】 C++编译时函数调用技术深度解析
【C++ 泛型编程 高级篇】 C++编译时函数调用技术深度解析
36 1
|
30天前
|
缓存 编译器 程序员
C/C++编译器链接优化技术:链接优化是在编译器和链接器之间进行的优化
C/C++编译器链接优化技术:链接优化是在编译器和链接器之间进行的优化
34 0
|
30天前
|
缓存 编译器 程序员
C/C++编译器并行优化技术:并行优化针对多核处理器和多线程环境进行优化,以提高程序的并行度
C/C++编译器并行优化技术:并行优化针对多核处理器和多线程环境进行优化,以提高程序的并行度
60 0