如何为unsigned char类型编译boost :: spirit?

时间:2009-10-19 21:19:52

标签: c++ boost boost-spirit

boost :: spirit断言     升压::精神:: char_class :: ASCII ::字符isalnum()

传递ascci字符> 127.

我将所有私有变量从std :: string更改为

typedef std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >
 u_string;

但仍然在内部使用std:.string。我该怎么办?

2 个答案:

答案 0 :(得分:3)

解决方案非常简单:

而不是

using namespace boost::spirit::ascii;

我现在用

using namespace boost::spirit::iso8859_1;

它识别iso8859字符集中的所有字符。

答案 1 :(得分:1)

问题当然是127以上没有ASCII字符。字节= 8位的解释比这更新。

如果您使用ISO8859-1或UTF-8作为字符编码,则应正确配置编译器。这个选项被称为“默认字符无符号”或类似的东西,以反映ISO-8859使用高于127的字符值这一事实。