Conversion 库如何改进你的程序?
可理解、可维护,以及一致的多态类型转换
静态向下转型使用比
static_cast
更 安全的结构进行范围判断的数字转换确保正确的值逻辑以及更少的调试时间
正确且可重用的文字转换导致更少的编码时间
C++的多功能性是它获得成功的主要原因之一,但有时也是麻烦的来源,因 为语言各部分的复杂性。例如,数字转换规则以及类型提升规则都很复杂。其它转换虽然简单,但也很乏味;多少次我们需要写一个安全的函数[1]来进 行string
s 和 int
s, double
s 和 string
s之间的转换?在你写的每个库和程序里,类型转换都可能是有问题的,这就是 Conversion 库可以帮助你的地方。它提供了防止危险转换及可复用的类型转换工具。
[1] 避免使用
sprintf
及其相关函数。
Conversion 库由四个转换函数组成,分别提供了更好的类型安全性(polymorphic_cast
), 更高效的类型安全防护(polymorphic_downcast
), 范围检查的数字转换(numeric_cast
), 以及文字转换(lexical_cast
)。这些类cast函数共享C++转型操作符的语义。与C++的转型 操作符一样,这些函数具有一个重要的品质,类型安全性,这是它们与C风格转型的区别:它们明确无误地表达了程序员的意图[2]。我们所写的代码的重要性不仅在于它可以 正确执行。更重要的是代码可否清晰地表达我们的意图。这个库使得我们可以更容易地扩展我们的C++词汇表。
[2] 它们也可以被重载,以使得它们比C++转型操作符更高级。