TR2 WRT C++规范的现状和内容

Joh*_*ing 12 c++ standards c++11 c++-tr2

参考链接:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2849.pdf

我正在尝试收集有关TR2的信息以及它与即将推出的C++标准的关系,如果有的话.

到目前为止,这是我的问题.如果我错过了任何重要问题,请回答这些问题.:)

预赛:

  1. 当前的C++标准没有提到浮点值的实际二进制表示.它所说的是浮点表示是"实现定义的".实际上,我所知道的每个实现都使用IEEE 754-2008.但这不是标准的要求.
  2. TR2标识要添加到语言新类型: decimal32,decimal64,和decimal128.

问题/要点评论:

  1. 上面的新类型(decimal64etc)是原生语言,还是库中提供的?
  2. 新类型是否可以解决浮点不精确问题?如果是这样,怎么样?
  3. TR2是否要求这些(或任何)类型的特定二进制表示?
  4. TR2将被接受作为即将推出的C++标准的一部分吗?如果是的话,何时?
  5. 这些新类型的实现是否可用于任何当前可用的库(例如,Boost)?

Ste*_*e M 3

仅供参考,链接的文档不是 TR2。“TR2”指的是一组库扩展,与TR1风格相同,而“十进制浮点算术扩展”的草案就是这样。目前还没有 TR2 草案,原计划在 0x 之后发布。因此,从现在开始,我假设您询问的不是 TR2,而是链接的文档。

  1. 库:但是,草案定义了新的类,在std::decimal这些类下可以轻松包装平台/实现提供的本机类型。此 TR 没有定义十进制文字。
  2. 是: “避免转换错误的最有效方法是使用十进制算术。认识到这一点,IEEE 754-2008 浮点算术标准指定了十进制浮点编码和算术。本技术报告指定了对十进制浮点算术国际标准的扩展。 C++ 编程语言允许以符合 IEEE 754-2008 标准的方式使用十进制算术。”
  3. 是: IEEE 754-2008 中定义的三种十进制编码格式对应三种十进制浮点类型std::decimal::decimal3264 和 128。请参阅此处decimalN表中的链接
  4. 当前的 C++0x 草案中没有这些提案的迹象。也许在下一个标准中,但即使是委员会的成员也无法告诉你什么时候会发布。
  5. 当我进行快速网络搜索时,我没有看到任何十进制库提到这个特定的草案,但是如果您只需要一个库,那么那里有一些库。