我希望解析一个字符串并确保它是小写的。
它必须在这个阶段完成,因为精神可以从这一切中建造树。
所以我有这个规则
struct to_lower_object
{
typedef char result_type;
char operator()(char a) const
{
return std::tolower(a);
}
};
int main()
{
boost::phoenix::function<to_lower_object> lazy_lower;
qi::rule<std::string::iterator, char() >
lower_char=(qi::char_-":")
[
qi::_val=lazy_lower(qi::_1);
];
qi::rule<std::string::iterator, std::string() >
lower_string =
+lower_char;
:::
问题是它不能编译,错误也很大,要发布。
谢谢
编辑:我修复了运算符重载,这是我的错,但问题仍然存在。我相信*这与占位符有关
EDIT2:我已将问题分解以确保它正在处理一个字符而不是一系列字符,但它仍然无法处理相同的大量错误。