spirit::qi::不同字符大小的语法名称
spirit::qi::grammar-name with different char size
我正在制作一个带有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 &'
所以。。grammar::base_type只需要常量std::string&作为第二参数。我的问题是,我如何告诉qi::grammar期望一个Iterators value_type大小的字符串?
提前感谢!
它在源代码中定义如下:
grammar(
start_type const& start
, std::string const& name_ = "unnamed-grammar")
: proto::extends<terminal, base_type>(terminal::make(reference_(start)))
, name_(name_)
{}
std::string name_;
所以你不能。正如文档中所述:
name是一个可选字符串,用于为语法命名,对调试和错误处理非常有用。
因此,您必须根据它进行自己的查找。
相关文章:
- 1d 智能指针不适用于语法 (*)++
- C++字符*缓冲区的大小
- HEX值到wchar_t字符(UTF-8)的转换
- 助记符和指向成员语法的指针
- 为什么 Serial.println(<char[]>);返回随机字符?
- 有人能分解一下这个c++模板的语法吗
- C++避免重复声明的语法是什么
- 我的字符计数代码计算错误.为什么
- 字符串-C++后显示的随机字符
- C++ 电话号码字母拨号程序 - 语法错别字?还是非 ASCII 字符?
- 如何将字符设置为函数?我对语法感到困惑...设置<char>max_freq(映射<字符,整数>频率)
- 是否有任何法律语法允许引号出现在 javascript 中的标识符字符旁边?(如"so")
- 精神语法按字符数量分解字符串
- 这是指向大小为 3 个字符数组的指针数组的正确语法吗?
- 将qi::十六进制语法分析器限制为2个字符
- C++将字符数组解析为脚本文件(语法)
- 在比较C++中的字符时,有没有特殊的语法
- spirit::qi::不同字符大小的语法名称
- c++语法混淆-声明无符号字符数组
- 如何访问一个字符从asm在c中,使用asm英特尔语法