`
rcfalcon
  • 浏览: 227984 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C++模板元编程

阅读更多

昨天WL发给我一段我觉得很“奇怪”的C++代码。。当时没看太懂,后来问了才知道是叫做模板元编程。

 

 

觉得很新奇,于是乎索要了一本电子书,名为《Addison.Wesley. C++.Template.Metaprogramming》。

把第一章稍微看了一下,有点点晕菜,不过大概了解了模板元编程。

 

这本书不决定继续看下去,因为我觉得这种太技术底层的东西,需要用的时候再学吧。否则的话,知道这个技术,知道它能干嘛——就OK了。用某些专家的话说“研究C++就是浪费生命。”——虽然很偏激,但是有时候参考一下还是有道理的。

 

现在总结如下:

 

元编程(metaprogram),按字面上意思说就是“程序的程序”,它是一段程序,用来处理其他程序。比如咱们的编译器,可以处理咱们的代码成中间语言或者机器语言。YACC就是一个典型的代表。

 

元编程在C++中的具体体现是可以使用模板来实现。一般由算法构成模板和特化模板组成。算法构成模板用来描述具体解决方法,特化用来终结模板算法。

比如上面那段程序,前一段binary可以启动具体算法,而后面的binary<0>就是它的一个终结特化。

整个程序可以用来计算二进制转十进制,如 int k = binary<1001>::value 则可以得到二进制数1001转化为10进制的结果。

 

元编程有什么好处?

—— 它能打破编译器对你程序特性的限制,可以将一些计算移到编译时期(compile-time),节省在运行时(runtime)的计算时间。

所以我觉得它非常适合于封装底层代码,这样能极大效率的提高上层复用时的效率。将计算在编译期搞定。

 

另外C++的“准标准库”boost中提供了一个模板元编程的框架,叫MPL(Boost Metaprogramming Library),据说非常优美,我是没空去看了……

 

 

总之我觉得最大的亮点就是C++的模板元编程提供了可以在编译级别解决问题的方法,但其也有局限性,比如计算的肯定是内部生成的数据,而不能引用外部变量。——所以很适合底层封装度高的程序,上层会很受益。

 

分享到:
评论

相关推荐

    《 C++模板》和《C++模板元编程》两本

    C++模板元编程(Template Metaprogramming,TMP)则是利用模板在编译期间进行计算的一种技术。《C++模板元编程》这本书则专注于这一主题,介绍了如何编写能在编译时执行逻辑的模板代码。TMP允许开发者创建编译时的...

    c++模板元编程

    C++模板元编程是一种在编译时执行计算和构建类型的技术,它利用了C++模板的强大功能,将元数据(即关于数据的数据)处理提升到了一个新的层次。在C++中,模板不仅仅是用来创建泛型代码的工具,它们也可以被用作一种...

    C++模板元编程技术与应用

    《C++模板元编程技术与应用》是一本深入探讨C++模板元编程的书籍,旨在让更多的C++程序员了解并掌握这一技术,从而在编程过程中提高效率和代码质量。模板元编程是C++中一种强大的静态编译时编程技术,它允许程序员在...

    c++模板元编程代码

    C++模板元编程是一种在编译时执行计算和创建代码的技术,它利用了C++模板系统的能力,将编程任务从运行时转移到了编译时。模板元编程允许开发者编写更高效、更灵活的代码,特别是在处理类型系统和泛型算法时。在本...

    C++模板元编程技术与应用 荣耀

    C++模板元编程是一种在编译时进行计算和代码生成的技术,它利用C++模板机制的强大功能,将元数据转化为可执行的代码。这一技术在提高程序效率、减少运行时开销、实现类型安全和静态多态等方面具有显著优势。在“C++...

    《C++模板元编程实战:一个深度学习框架的初步实现》.zip

    《C++模板元编程实战:一个深度学习框架的初步实现》是一本专注于C++模板元编程在实际项目中应用的书籍,尤其是将其应用于构建深度学习框架的实例。模板元编程是C++语言中的一种编译时编程技术,它允许开发者在编译...

    c++模板元编程 光盘

    c++模板元编程 光盘 去掉boost库和一些东东 7z自解压

    c++模板元编程详解

    所谓元编程就是编写直接生成或操纵程序的程序,C++ 模板给 C++ 语言提供了元编程的能力,模板使 C++ 编程变得异常灵活,能实现很多高级动态语言才有的特性(语法上可能比较丑陋,一些历史原因见下文)。普通用户对 ...

    C++模板元编程_C++_

    C++模板元编程是C++语言中的一种高级技术,它允许在编译时进行计算和代码生成。模板元编程(Template Metaprogramming,简称TMP)利用C++模板的特性来实现类似编程语言的逻辑,但这一切都在编译期间完成,从而能够...

    C++模板元编程(让更多的C++程序员了解模板元编程,并在此过程中获得快乐!)

    C++模板元编程是一种在编译期间通过模板技术进行计算和逻辑处理的编程技术,它允许程序员编写在编译时执行的代码,而非运行时。模板元编程的主要思想是利用C++模板的特性,尤其是模板特化和递归模板实例化,来实现...

Global site tag (gtag.js) - Google Analytics