Tekkaman

导航

 

C++11静态assert

  C++11新的关键字static_assert可以解决模板中的状态检察。 声明采取以下的形式:

  

  这里有一些如何使用static_assert的例子:

  

  当常数表达式值为false时,编译器会产生相应的错误信息。第一个例子是前处理器指令#error的替代方案;第二个例子会在每个模板类型Check生成时检查assertion。

  静态assertion在模板之外也是相当有用的。例如,某个算法的实现依赖于long long类别的大小比int还大,这是标准所不保证的。 这种假设在大多数的系统以及编译器上是有效的,但不是全部。

参考:http://zh.wikipedia.org/wiki/C++0x#.E9.9D.9C.E6.85.8Bassertion

posted on 2014-01-02 21:58  Tekkaman  阅读(598)  评论(0编辑  收藏  举报