问题标签 [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++ - 有没有办法使用 SFINAE 来确定对模板化函数的调用是否会由于提供的类型而失败?
我有一个模板类,我使用它来提供一个方法,该方法将用于boost::lexical_cast
将其std::string
参数转换为模板中指定的类型,前提是可以进行词法转换。目前要检查是否有可能,我只是检查是否operator>>
为所讨论的类型定义了。这是一个人为的例子,基本上说明了我在做什么:
到目前为止,这适用于我的代码:所有无法通过词法转换的类型都以第一个版本结束,所有其他类型以第二个版本结束,至少对于我的代码使用它的类型。我担心的是,我基本上是在假设只要目标类型是 InputStreamable ,那么 lexical_cast 就不会失败。lexical_cast的boost 文档概述了一些其他要求,我可能也应该检查这些要求,而不是创建一个复杂的enable-if
并用来mpl::and_
将这些条件串在一起,我想知道:有没有办法使用 SFINAE 直接测试对于给定的类型,该调用是否lexical_cast
会失败,并且仅当它不会失败时才匹配专用模板?
我只见过测试函数或运算符是否存在的示例,但从未测试过调用具有给定类型的模板化函数是否会产生错误。
c++ - 在命名空间中使用 boost::lexical_cast 和自定义 operator<<
给定两个命名空间,每个命名空间都为 std::vector 提供 operator<< 的特化,是否可以使用 boost::lexical_cast?我知道如果我将其中一个运算符提升到全局命名空间中,代码将起作用,但这只会在其他位置导致歧义错误。我可以使用“using”指令来允许 boost::lexical_cast 找到正确的运算符吗?
编辑:到目前为止,我想出的最好的方法是将运算符拉入 .cpp 中的 std 命名空间。这适用于 .cpp 只需要一个版本,但不适用于 .cpp 需要多个版本的一般情况。
c++ - 字符串流到向量
我想知道从 a 写入std::stringstream
a的最佳方法是什么vector<int>
。
下面是一个例子stringstream
:
"31 #00 532 53 803 33 534 23 37"
这是我所拥有的:
然而似乎发生的是,它读取第一件事,然后它到达#00
并返回0
,因为它不是一个数字。
理想情况下,我想要的是,它到达 a#
然后跳过所有字符,直到下一个空格。这可以用标志或其他东西吗?
谢谢。
c++ - boost::lexical_cast 编译时带有警告
编译如下:
产生于此:
为什么?如何避免这个警告?
c++ - C++ 使用带有 boost::lexical_cast 的类
我想将我的测试类与boost::lexical_cast
. 我已经重载operator<<
,operator>>
但它给了我运行时错误。
这是我的代码:
输出:
顺便说一句,我正在使用 Visual Studio 2010 但我已经尝试过使用 g++ 的 Fedora 16 并得到了相同的结果!
c++ - boost::lexical_cast 没有运行时库
我的情况是我想使用 boost::lexical_cast,但不能使用 C/C++ 运行时库,因此不能使用 lexical_cast。我不太了解 Boost,但我见过以下块的使用:
并且想知道是否可以使用#define 以使Boost 不依赖于所述库。
如果 Boost 文档中有特定位置解释了可能的预处理器选项,那也将不胜感激,因为我似乎无法在网上找到它。
c++ - 执行身份提升::lexical_cast 有什么开销?
给定一个函数,例如:
function1
如果传递给的类型已经是 a会产生什么样的开销std::string
?
开销是否因我要使用的类型而异lexical_cast
?
做一个重载的函数来绕过演员表是多余的吗?例如:
boost 的版本可能与您的答案有关,据我所知,它lexical_cast
已在修订版中进行了一些优化。
boost - boost::lexical_cast 带正号
转换为 std::string 时,如何使 boost::lexical_cast 包含正号?
我打算做同样的事情:snprintf( someArray, someSize, "My string which needs sign %+d", someDigit );
。在这里,如果 someDigit 为正数,则 someDigit 将作为 +someDigit 放入字符串中,如果它为负数,则将其作为 -someDigit 放入字符串中。见:http ://www.cplusplus.com/reference/clibrary/cstdio/snprintf/
c++ - 使用 boost::lexical_cast(细绳)
我是初学者,需要解释为什么这不起作用:
myArray[9] 不为零,但结果双精度始终为零。任何帮助将不胜感激。谢谢你。
c++ - 词法转换 C++
我们如何编写一个包装词法转换函数来实现如下行:
我对编程很陌生,想知道我们如何编写函数。我不知道如何找出模板。我们也可以为 double 编写一个包装函数吗?像
??