🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 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++转型操作符更高级。