如何使用boost :: spirit :: x3测试有效的双重内容
How to test string for valid double content with boost::spirit::x3?
我正在尝试确定给定字符串是否是有效的双表示。我使用的代码看起来像:
bool testNumeric(const std::string& s)
{
try
{
const auto doubleParser = boost::spirit::x3::double_;
auto iter = s.begin();
auto end_iter = s.end();
double result = 0.;
boost::spirit::x3::parse(iter, end_iter, doubleParser, result);
return iter == end_iter;
}
catch (...)
{
return false;
}
}
我对最终的双重不感兴趣(目前)。如果我给出此功能的输入" 1E10000000",显然对于双重而言太大了,则该程序会在断言中失败(boost_assert)。可以以某种方式将其更改为通过返回代码失败或投掷异常,我可以抓住它?还是我必须用Spirit写自己的双重解析器:: x3?
最后,我创建了一种自定义解析方法,该方法首先使用boost :: spirit :: x3 :: int_在双重字符串表示的指数部分(如果存在)并返回如果指数不满足双重类型的边界。之后,我将有效字符串上的Boost :: Spirit :: X3 :: Double_解析器。
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 欧拉项目#8答案是大以获得有效答案
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- 为什么使用_access时只读测试对读写文件有效
- 测试 ISBN 编号以查看其是否有效
- 如何将迭代器(包括结束和开始之前的迭代器)测试到列表或forward_list保持有效
- 测试用户输入数组中的重复项的最有效方法是什么?
- 如何使用boost :: spirit :: x3测试有效的双重内容
- 有效地测试 QSet 是否包含元素,如果不存在,则插入
- 测试达到最大uint64_t C++大小的有效方法
- 如何测试字符串是否是有效的C++(ish)表达式
- 测试指针是否为null的最有效方法是什么?
- 我是否必须使用neak_ptr.lock()只是为了测试它是否指向有效的对象
- 如何正确测试我的后缀表达式是否有效
- 测试角度是否在范围内(有效且优雅)
- 组织将要进行单元测试的c++项目的有效方法是什么?
- 测试ODBC连接的有效方法
- 持久性测试:为什么以下代码有效
- 有效测试多个学生的编程解决方案
- 根据我的测试,[更有效的c++]中的第3项似乎是无效的