问题标签 [lexical-cast]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 负数的 lexical_cast 在不同的机器上表现不同
我在两个不同的设备上有相同版本的 boost,但行为是不同的
文档指出它应该给我 INT_MAX(2 的补码翻转),但是在一台机器上我得到一个异常抛出,而在另一台机器上我得到 INT_MAX。
c++ - 启用 boost::lexical_cast 以对小于两倍范围的值抛出超出范围错误
boost::lexical_cast
对于大于 double 的最大值的值引发错误。但是对于小于最小值的数字,它会默默地将其设为零。如何为以后的情况启用超出范围的错误(即,如果一个数字小于 2.22507e-308,那么解析器应该抛出一些错误)?
c++ - 捕获 boost::bad_lexical_cast 时,我可以访问要转换的字符串/令牌吗?
我正在运行的代码可能会boost:bad_lexical_cast
在投射一系列标记时抛出 - 但我无法进入代码并“将标记放在一边”,因此我可以找出实际失败的投射。
是否boost:bad_lexical_cast
让您访问它试图以某种方式强制转换的字符串?除了一些关于类型名称的字段外,我似乎在它的定义中找不到任何东西,但也许我缺少一些东西。
c++ - lexical_cast strtof strtold 失去准确性?
这里:
输出:
为什么输出不是 277499.84?
c++ - 专门为 boost::property_maps 中的枚举提供 boost::lexical_cast
我正在尝试使用在其捆绑的顶点属性内部boost::graph
具有的一个。enum
当我尝试将捆绑属性用于 boost::dynamic_property 时,问题就开始了。看起来我无法为 boost::lexical_cast 获得正确的模板专业化来识别类型。
如果我尝试enum
直接编写,一切正常。尝试将其放入动态属性时,出现以下错误:
该行Target type is neither std::istreamable nor std::wistreamable
向我表明, lexical_cast 没有正确专门化。然而,直接使用词法转换似乎工作得很好。
c++ - 如何将 boost::lexical_cast 与 folly::fbstring 一起使用?
以下程序:
给出这个输出:
这是因为lexical_cast
没有意识到这fbstring
是一个string
-like 类型,而只是将stream << in; stream >> out;
其转换为通常的类型。但是operator>>
对于字符串在第一个空格处停止,lexical_cast
检测到整个输入没有被消耗,并抛出异常。
有什么方法可以教授lexical_cast
(fbstring
或更一般地说,任何string
类似的类型)?
c++ - boost::lexical_cast 和 boost::units::quantity 不再编译
我对解析通过 boost_program_options 获取的值以提升::units 数量的代码有疑问。它以前工作得很好,现在,在新的设置上,不再工作了。晦涩的错误消息暗示了 boost::lexical_cast 的问题,它似乎被 program_options 使用。
一个最小的例子(我摆脱了所有程序选项的东西)是
这在我的旧设置(gcc 4.7.2,boost 1.49)上编译没有错误,但是在带有 boost 1.55 的 gcc 4.9.2 上不再编译(顺便说一下,请忽略这样一个事实,即使它编译,它也会在无论哪种情况,因为实际上没有从流中读取任何内容;我不想通过包含整个解析逻辑来混淆这篇文章)。相反,我收到错误消息
如果我在词法转换中使用不同的自定义类型(不是 boost::units::quantity)并为其重载 >> 运算符,或者如果我直接尝试从字符串流中读取数量,一切正常。
有人可以告诉我我在这里做错了什么吗?
c++ - 使用 lexical_cast 时精度丢失(细绳)
使用 boost::lexical_cast 时(我在 VS2013 上使用 boost 版本 1.58),我无法获得字符串中指定的确切值,即使它可以在浮点数中表示:
r 是 91.249992 (0x42B67FFF) 而不是 91.250000 (0x42b68000)
先前版本的 boost 表现出预期的方式。是否有我缺少的精度设置?
c++ - 为什么 lexical_cast 要求 operator>> 在匹配的命名空间中?
这是一个测试用例:
Boost 拒绝转换,声称没有匹配operator>>
:
(演示)
但是,当我operator>>
在 namespace中声明/定义时,代码的工作方式与宣传的一样N
。
为什么?为什么查找会失败?