存档

文章标签 ‘静态检查’

把错误扼杀在编译期——static assert

2011年5月8日 3 条评论

随着泛型编程在C++中用得越来越广泛的使用,更好的静态检查(static checking)以及可定制型错误消息的需求显得越来越有必要。本文的主要内容是讲一些如何在编译期对程序做一些检查、把错误尽可能扼杀在编译期(Complie Time)的方法,这里称之为static assert技术。

Static assert技术主要是利用C++编译器及语言本身的特性来完成,它所用到的主要思想包括以下两点:

  • 1. 表达式在编译期计算所得的结果是常数
  • 2. 传给编译器一个表达式,如果是非零便合法,如果是零则非法
  • 有了上面的思想,我们便可以想办法,利用C++语言的特性,来实现static assert,这里不再卖关子,直接给出几点事实: 阅读全文…