module(L)
[
class_<HgeSys>("HgeSys")
.def(constructor<>())
.scope
[
def("System_Start",&HgeSys::System_Start),
def("System_SetStateBool", &HgeSys::System_SetStateBool),
def("System_SetStateInt", &HgeSys::System_SetStateInt),
def("System_SetStateString", &HgeSys::System_SetStateString),
def("Resource_Load",&HgeSys::Resource_Load),
def("Resource_Free",&HgeSys::Resource_Free),
def("Resource_AttachPack",&HgeSys::Resource_AttachPack),
......
]
];
此段代码为C++标准实现,很不可思议,很漂亮有好的语义,内部却藏着可怕的C++特性,现代C++设计方法,请联想标题静思
恩,这个是metaprograming的经典案例,源自luabind,有兴趣的同学可以去看下源码,[]重载,逗号重载,模板的policy设计,一句话C++没有爱~
本文探讨了一段使用C++实现的模块化(module)代码,展示了类_<HgeSys>如何通过构造函数和不同方法来定义和管理系统状态。这段代码巧妙地运用了C++的特性,如逗号操作符重载和模板策略设计,体现了现代C++的元编程技巧。同时,作者提示读者,尽管这类设计方法富有创新,但也可能隐藏着复杂性,挑战着开发者对C++的热爱。
6万+





