C++实现Reflection
最近1年多,我一直在琢磨和大量使用cli来开发游戏项目,.net系统的反射系统给我
的开发设计思路,带来了很大的冲击。反射真的可以从根本上,让设计思路相对传统
开发模式有很大的改变。
但是反射通常都提供在类似java等动态语言上,后来ms在.net平台上推出了一个很强
大完善的反射机制,我最近1年多的项目都是大量使用他,为我的项目开发,做出了很
多有意思的东西。但是我的victory3d的core因为效率原因,依然是采用纯C++开发,
享受不到.net平台的便利。不少人在呼吁C++标准组织,给C++添加上反射特性,但是
据我所知C++0x规范目前也就能搞一个gc什么的,对于reflection的支持,还不知道要
什么时候。
于是,我决定自己尝试实现一下在c++中,实现reflection,经过2天试验,目前基本
达成实际目标,下面是一个我的c++反射一个class的例子:
///<ReflectExport name="MyTestClass"/>
class testclass : public VReflectBase
{
public:
///<ReflectExport/>
void fun0()
{
return;
}
///<ReflectExport/>
int fun1(float a)
{
return 0;
}