关于C++的metaprograming

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,System,Class,Constructor,联想)