【发布时间】:2015-08-19 15:40:07
【问题描述】:
我是使用boost spirit的初学者。
我想要做的只是解析一个具有以下格式的时间的文本:
HH:MM::SS
这很容易通过使用以下规则(增强文档)
uint_parser<int, 10, 2, 2> uint2_p;
r = lexeme_d
[
boost::spirit::limit_d(0u, 23u)[uint2_p] >> ':'
>> boost::spirit::limit_d(0u, 59u)[uint2_p] >> ':'
>> boost::spirit::limit_d(0u, 59u)[uint2_p]
];
问题是我收到一个编译器错误,指出 limit_d 不是 boost spirit 命名空间的成员,即使 limit_d 指令位于以下标头中的 boost::spirit 命名空间下:
boost/spirit/home/classic/core/composite/directives.hpp
我已经包含了这个标题。
所以我很困惑我应该包含哪个标头才能编译代码(我使用的是 VS2013)
附:我的代码在没有limit_d 指令的情况下正常工作,所以问题肯定是由limit_d 引起的。
【问题讨论】:
标签: c++ parsing boost-spirit