参考链接:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2849.pdf
我正在尝试收集有关TR2的信息以及它与即将推出的C ++标准之间的关系(如果有的话)。
到目前为止,这是我的问题。如果我错过了任何重要问题,请回答这些问题。 :)
decimal32
,decimal64
和decimal128
。 decimal64
等)是否是该语言的原生类型,或者是否在库中提供?答案 0 :(得分:3)
仅供参考,链接文件不是TR2。 “TR2”指的是一组库扩展,与TR1的样式相同,而“十进制浮点算术扩展”的草案就是这样。目前还没有TR2草案,最初计划在0x之后出来。所以从现在开始,我假设你不是在询问TR2,而是链接文件。
std::decimal
下的新类,它可以轻松地包装平台/实现提供的本机类型。此TR不定义小数文字。std::decimal::decimal32
,64和128.请参阅decimalN
链接在表here. 答案 1 :(得分:2)
我碰巧参加了IBM最初向WG14和WG21提出小数类型的会议。他们最初的提议是将它们作为本机类型提供,这几乎是C中唯一的解决方案。但是,WG21并不完全相信并指出C ++已经将std::complex<>
作为数学类型在库中,所以为什么不std::decimal<>
?当指针显示std::decimal
显然可以包装_Decimal
编译器扩展时,对性能开销的初步混淆很快就结束了。
在说明这可以在库中完成之后,接下来的问题是它是否应该在标准库中。毕竟这是一个有用的专业领域。最常见的域名,财务,实际上并不需要它(它们确实需要十进制定点,而不是十进制浮点数)。在反馈之后,IBM没有进一步推动他们的提案。
这些类型不解决了浮点不准确的问题。 1/3仍然无法代表。但是,1/5是。
答案 2 :(得分:1)
decNumber++是IBM的参考实现。