关于C++的metaprograming

本文探讨了一段使用C++实现的模块化(module)代码,展示了类_<HgeSys>如何通过构造函数和不同方法来定义和管理系统状态。这段代码巧妙地运用了C++的特性,如逗号操作符重载和模板策略设计,体现了现代C++的元编程技巧。同时,作者提示读者,尽管这类设计方法富有创新,但也可能隐藏着复杂性,挑战着开发者对C++的热爱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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++没有爱~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值