Spirit::qi::具有不同字符大小的语法名称
我正在用 Spirit::qi 制作一个解析器,目标是使其与不同的字符大小兼容。
template < typename Iterator >
struct grammar : qi::grammar < Iterator >
{
grammar () : grammar::base_type ( file, alter_string_size_to < Iterator::value_type > ( _szFile ) )
{
}
qi::rule < Iterator > file;
};
鉴于
alter_string_size_to < Iterator::value_type > ( _szFile )
成功返回一个指向包含所需字符大小的 _szFile 的字符串的指针。
当我编译时,
Iterator = std::wstring::const_iterator
我收到以下错误消息
cannot convert parameter 2 from 'unsigned short *' to 'const std::string &'
So .. Grammar::base_type 仅期望 const std::string &作为第二个参数。 我的问题是,如何告诉 qi::grammar 期望一个具有迭代器 value_type size 的字符串?
提前致谢 !
I am making a parser with spirit::qi and aim for making it compatible with different char sizes.
template < typename Iterator >
struct grammar : qi::grammar < Iterator >
{
grammar () : grammar::base_type ( file, alter_string_size_to < Iterator::value_type > ( _szFile ) )
{
}
qi::rule < Iterator > file;
};
Given that
alter_string_size_to < Iterator::value_type > ( _szFile )
successfully returns a pointer to a string containing _szFile in the required char size.
When I compile with
Iterator = std::wstring::const_iterator
I get following error message
cannot convert parameter 2 from 'unsigned short *' to 'const std::string &'
So .. grammar::base_type is only expecting an const std::string & as the second parameter.
My question is, how can I tell qi::grammar to expect a string with its Iterators value_type size ?
Thanks in advance !
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
它在源代码中的定义如下:
所以你不能。正如文档中所述:
因此,您必须根据它进行自己的查找。
It's defined as follows in the source:
So you can't. As it's stated in the doc:
So, you'll have to make your own lookup based on it.