问题标签 [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.

0 投票
1 回答
830 浏览

c++ - 将 boost::lexical_cast 与 std::transform 一起使用

g++ 不喜欢:

错误信息是:

这清楚地表明 lexical_cast 作为 transform 的最后一个参数存在问题......有没有办法避免编写包装 lexical_cast 的函数对象?

谢谢!

0 投票
3 回答
1428 浏览

c++ - C++ 用模板提升 lexical_cast?

我正在尝试构建一个将程序设置存储为 std::map 的类。由于所有程序设置都存储为字符串,我想要一个可以返回转换为相关类型的程序设置的访问器方法。我是 C++ 模板的新手,这是我的第一次尝试:

但是,我收到编译器错误:

随着 boost 的错误输出很长,我不确定它有什么问题。

0 投票
4 回答
4173 浏览

c++ - char 指针的模板特化?

boost::lexical_cast是一个很棒的工具,但在我的应用程序中,我遇到了一个string -> bool困扰我的转换限制。我需要将所有字符串如"0","false""FALSE"转换成falseand "1", "true"and "TRUE"into true.

boost::lexical_cast仅支持从/到"0"和的转换"1"。所以我的想法是编写我自己的转换函数,它似乎工作正常:

现在我想编写一个包装器boost::lexical_cast并为它编写我自己的模板专业化。这是我到目前为止所得到的:

这对于整数或 std::string 非常有效,但对于字符串文字或字符指针显然失败:

所以我尝试编写另一个专业化char *但它无法编译!

支持 std::string 和的正确方法是什么char *

编辑1:标题很愚蠢。修复。

编辑 2:我从 boost 本身借了一个解决方案。发布为新答案

0 投票
1 回答
587 浏览

c++ - lexical_cast 的替代方案(标准::字符串)

我有使用 lexical_cast 的模板化代码。

现在我想删除所有的 lexical_cast 调用(因为它不适用于 /clr)。

我需要在 std::string 和它们的值之间转换对象。

所以,第一个方向很简单 (T _from, std::string _to) :

但是我想不出一种从字符串到任何类型的通用方法(我需要一些可以与模板一起使用的通用方法,不能只对每种类型使用特化并使用类似的函数atoi

编辑:

当然,我尝试在相反的方向使用 ostringstream。我收到此错误:

错误 C2784: 'std::basic_istream<_Elem,_Traits> &std::operator >>(std::basic_istream<_Elem,_Traits> &&,_Elem *)' : 无法推导出 'std::basic_istream<_Elem, _Traits> &&' 来自 'std::ostringstream'

0 投票
1 回答
779 浏览

c++ - std::istream 提取设置失败位无明显原因

我正在创建一个原始类型包装器,它可以使用 boost::lexical_cast 从字符串中设置其值。它工作正常,但由于某种原因 std::istream 提取运算符设置了故障位。以下程序打印:

123.45
例外:ios_base::failbit 设置

但是,如果您注释掉“inStream.exceptions(...”这一行,它会起作用并打印:

123.45
123.45

无论您是否使用 unicode 编译,或者如果您使用 int 或 float 作为 ValueType,都没有什么区别,在任何情况下都会设置故障位。

为什么 std::istream 会认为出了问题?

0 投票
2 回答
1756 浏览

c++ - 如何让 Boost.LexicalCast 工作?

我遇到了 boost::lexical_cast 的问题。我正在尝试在 GLM(OpenGL 数学)库中的一个类上使用它。

为了允许词法转换,我为相关类实现了 operator<< 函数:

我像这样测试了运算符:

和:

这工作得很好,但是如果我尝试这个:

我收到以下错误:

编辑:似乎只有在包含 Boost.PropertyTree 的标头时才会出现错误。

0 投票
1 回答
5798 浏览

c++ - boost::lexical_cast 从字符串到字符异常

我不熟悉使用 boost::lexical_cast 并且对其内部结构了解甚少。我正在尝试进行以下演员:

但是,boost 抱怨上面的代码是:

[异常]:错误的词法转换:源类型值无法解释为目标

源是一个字符串,但它总是只有 1 个字符长。

有人可以解释一下吗?

谢谢。

0 投票
2 回答
4067 浏览

c++ - 增强词汇转换查看

这应该是一件容易的事。我有一个函数可以遍历 csv 并基于逗号进行标记并使用标记执行操作。其中之一是将其转换为 int。不幸的是,第一个标记可能并不总是一个 int,所以当它不是时,我想将它设置为“5”。

目前:

0 投票
2 回答
2073 浏览

c++ - boost::lexical_cast 和非内置类型的字符串化

我有一个(也许)关于 boost::lexical_cast 的简单问题与复合类型(在我的情况下是std::vector.

我的模板化字符串化函数的第一个版本如下

一个工作示例如下:

输出 "-3-3-3-3-3-3-3-3"~ ,但出于性能原因,我想利用boost::lexical_cast

现在我更改了函数实现:

虽然此方法适用于内置类型,但它停止适用于前一种情况,当它用于std::vector

如果为向量创建专用模板,问题仍然存在(无法编译)

有什么建议吗?

g++-4.5,ubuntu 11.10 amd64

0 投票
1 回答
4544 浏览

c++ - 启用与 boost::lexical_cast 一起使用的类

来自lexical_cast的代码片段:

根据文件

1> 将流式 arg 的结果返回到基于标准库字符串的流中,然后作为 Target 对象输出。

2> 源是OutputStreamable

3> 目标是 InputStreamable

Question1 > 对于用户定义类型(UDT),OutputStreamable 或 InputStreamable 是否总是需要处理std::string?例如,给定一个包含一个简单整数作为成员变量的类,当我们定义operator<<and时operator>>,实现代码是什么样的?我必须将整数转换为字符串吗?根据我的理解,UDT 似乎总是必须处理std::string才能与之合作,boost::lexical_cast并且boost::lexcial_cast需要中间体std::string来完成真正的转换工作。

Question2 > 为什么上面代码中operator<<or的返回值operator>>没有分别引用std::ostream&or std::istream&