39-杂项
18.7.4 杂项
C99引入了依赖于实现的扩展整型,C++11继承了这种传统。在使用128位整数的系统中,可使用这样的类型。在C语言中,扩展类型由头文件stdint.h支持,而在C++中,为头文件cstdint。
C++11提供了一种创建用户自定义字面量的机制:字面量运算符(literal operator)。使用这种机制可定义二进制字面量,如1001001b,相应的字面量运算符将把它转换为整数值。
C++提供了调试工具assert。这是一个宏,它在运行阶段对断言进行检查,如果为true,则显示一条消息,否则调用abort()。断言通常是程序员认为在程序的某个阶段应为true的东西。C++11新增了关键字static_assert,可用于在编译阶段对断言进行测试。这样做的主要目的在于,对于在编译阶段(而不是运行阶段)实例化的模板,调试起来将更简单。
C++11加强了对元编程(metaprogramming)的支持。元编程指的是编写这样的程序,它创建或修改其他程序,甚至修改自身。在C++中,可使用模板在编译阶段完成这种工作。