用了一段时间.net的代理模式,觉得挺好使.且原来C++代码中存在大量需要代理的东西,由于没有近似的东西,都是靠接口实现的,看起来很别扭.遂想我是不是也能做这么一个东西.
boost的function不是很熟悉,但基本实现还是明白的.直接用boost::function的话,有点杀鸡用牛刀的感觉,因为我仅仅只要一个很小很小的代理语法而已.况且,这么多年过去了,写C++代码越来越没有激情,正好有这么个契机,给自己来点激情.
废话不多说,看代码(别看注释,没有注释,看不懂就去看boost::function去)
vfxdelegate.h
vfxdelegate.inl
使用案例:
注:stl::vector<>是std::vector<,VFX::alloctor>的typedef。因此,你只需要把stl替换成std就可以了