gpt4 book ai didi

c++ - 如何使用 boost lexical_cast 库来检查输入

转载 作者:搜寻专家 更新时间:2023-10-30 23:50:19 27 4
gpt4 key购买 nike

我经常使用 boost lexical_cast 库将文本数据解析为数值。然而,在某些情况下,我只需要检查值是否为数字;我实际上不需要或不使用转换。

所以,我正在考虑编写一个简单的函数来测试字符串是否为 double :

template<typename T> 
bool is_double(const T& s)
{
try
{
boost::lexical_cast<double>(s);
return true;
}
catch (...)
{
return false;
}
}

我的问题是,是否有任何优化编译器会丢弃此处的 lexical_cast,因为我实际上从未使用过该值?

有没有更好的技术来使用 lexical_cast 库来执行输入检查?

最佳答案

您现在可以使用 boost::conversion::try_lexical_convert现在在 header boost/lexical_cast/try_lexical_convert.hpp 中定义(如果您只需要 try_lexical_convert)。像这样:

double temp;
std::string convert{"abcdef"};
assert(boost::conversion::try_lexical_convert<double>(convert, temp) != false);

关于c++ - 如何使用 boost lexical_cast 库来检查输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2249711/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com