【发布时间】:2016-02-19 18:47:21
【问题描述】:
我在两个不同的设备上有相同版本的 boost,但行为却不同
lexical_cast<uint>("-1")
文档说明它应该给我 INT_MAX(2 的补码翻转),但在一台机器上我得到一个异常抛出,而在另一台机器上我得到 INT_MAX。
【问题讨论】:
-
INT_MAX?文档在哪里说的? -
@Ant, the FAQ 讨论了将 字符串
"-1"转换为uint时会发生什么(这最终依赖于 C 对scanf的规则),但是我在文档中看不到任何关于铸造-1的内容。事实上,我看不到从任何非字符串类型转换为另一种非字符串类型的任何内容,除非它表明numeric_cast“可能会提供更合理的行为”。所以,馄饨,请提供一个引用,也许告诉你为什么不使用numeric_cast。 -
忘记引用了。它用于字符串转换。很抱歉造成混乱。
标签: c++ boost lexical-cast