C++11静态assert

C++11静态assert

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

  C++11静态assert

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

  C++11静态assert

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

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

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

上一篇:uva11865 二分流量+最小生成树


下一篇:Multiple “order by” in LINQ(转载)