文字列を解析して、小文字であることを確認したいと思います。
精神はそれから木を構築するので、それはこの段階で行われなければなりません。
だから私はこのルールを持っています
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:問題を分割して、一連の文字ではなく文字で機能していることを確認しましたが、同じ範囲のエラーでは機能していません。