现在的位置: 首页 > 综合 > 正文

Beyond the C++ Standard Library: An Introduction to Boost — Library 2.1 Conversion

2013年08月10日 ⁄ 综合 ⁄ 共 680字 ⁄ 字号 评论关闭

Library 2. Conversion

Conversion 库如何改进你的程序?

  • 可理解、可维护,以及一致的多态类型转换

  • 静态向下转型使用比static_cast更安全的结构

  • 进行范围判断的数字转换确保正确的值逻辑以及更少的调试时间

  • 正确且可重用的文字转换导致更少的编码时间

C++的多功能性是它获得成功的主要原因之一,但有时也是麻烦的来源,因为语言各部分的复杂性。例如,数字转换规则以及类型提升规则都很复杂。其它转换虽然简单,但也很乏味;多少次我们需要写一个安全的函数[1]来进行strings 和 ints, doubles 和 strings之间的转换?在你写的每个库和程序里,类型转换都可能是有问题的,这就是Conversion 库可以帮助你的地方。它提供了防止危险转换及可复用的类型转换工具。

[1] 避免使用 sprintf 及其相关函数。

Conversion 库由四个转换函数组成,分别提供了更好的类型安全性(polymorphic_cast), 更高效的类型安全防护(polymorphic_downcast), 范围检查的数字转换(numeric_cast), 以及文字转换(lexical_cast)。这些类cast函数共享C++转型操作符的语义。与C++的转型操作符一样,这些函数具有一个重要的品质,类型安全性,这是它们与C风格转型的区别:它们明确无误地表达了程序员的意图[2]。我们所写的代码的重要性不仅在于它可以正确执行。更重要的是代码可否清晰地表达我们的意图。这个库使得我们可以更容易地扩展我们的C++词汇表。

[2] 它们也可以被重载,以使得它们比C++转型操作符更高级。

 

抱歉!评论已关闭.