【发布时间】:2011-10-28 14:20:43
【问题描述】:
我不熟悉使用 boost::lexical_cast 并且对其内部结构了解甚少。我正在尝试做以下演员:
string someString = boost::lexical_cast<char>(sourceString);
但是,boost 抱怨上面的代码是:
[异常]:错误的词法转换:源类型值无法解释为目标
源是一个字符串,但它总是只有 1 个字符长。
谁能解释一下?
谢谢。
【问题讨论】:
-
你这样做有什么原因而不是像
char c = *(sourceString.c_str());这样的东西吗?你为什么要把一个字符串变成一个字符然后把它放回一个字符串? -
或者
char c = sourceString[0];? -
@MikeSeymour 或者你可以这样做......
-
@set - 对不起,我没有正确地写那部分,我打算将它声明为一个字符。我可以这样做,但我只想了解为什么 boost 无法正确转换它。谢谢
-
另外,这不会编译,因为您无法将
lexical_cast<char>的char结果转换为字符串。一旦我解决了这个问题,代码works 只要sourceString包含一个字符。
标签: c++ boost lexical-cast