why

关于模板元编程

       模板元编程(Template Metaprogramming)更准确的含义应该是“编‘可以编程序的’程序”,而模板元程序(Template Metaprogram)则是“‘可以编程序的’程序”。也就是说,我们给出代码的产生规则,编译器在编译期解释这些规则并生成新代码来实现我们预期的功能。

       模板元编程由于把运算由执行时提前到了编译时,所以其一个特点是运行时很快,效率很高!不过这是以编译耗时为代价的。这个作用主要体现在复杂的数值运算时。另外一个特点是能解决普通的C++程序无法解决的问题,这时才是模板元编程大显身手的时候。这个作用体现在类型识别和处理时。

       因为模板参数都要是编译时常量,而我们的运算需求大部分时候应该都是对变量的运算,所以我认为模板元编程解决数值运算问题可能意义不大,可能主要是用来封装在泛型库底层来完成复杂的类型处理功能。

       还有我觉得最大的问题是,模板元编程就如同正则表达式等一些技术一样,作用很强大,但是用到的地方似乎很少,以至于学习和练习都找不到施展空间~O(∩_∩)O~

posted on 2010-11-01 16:58 why 阅读(588) 评论(2)  编辑 收藏 引用 所属分类: 模板与泛型编程

Feedback

# re: 关于模板元编程 2010-11-02 11:37 陈梓瀚(vczh)

模板元编程也可以用来做那种神奇的类型推导的哈  回复  更多评论   

# re: 关于模板元编程 2010-11-02 11:56 why

对的!我觉得这就是模板元编程最神奇最强大的地方~@陈梓瀚(vczh)
  回复  更多评论   



只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理