Как я могу скомпилировать Boost :: Spirit для типа Unsigned Char?

StackOverflow https://stackoverflow.com/questions/1591218

  •  22-09-2019
  •  | 
  •  

Вопрос

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;

Но все же Boost использует Std: .string внутри. Что мне нужно сделать ?

Это было полезно?

Решение

Решение довольно просто:

вместо

using namespace boost::spirit::ascii;

Я сейчас использую

using namespace boost::spirit::iso8859_1;

Это распознает все зачатки в наборе символов ISO8859.

Другие советы

Проблема, конечно, в том, что нет символов ASCII выше 127. Интерпретация Byte = 8 бит является более недавней, чем это.

Если вы используете ISO8859-1 или UTF-8 в качестве кодирования символов, вам следует правильно настроить компилятор. Этот вариант Micht будет называться «Unsigned char по умолчанию» или что-то в этом роде, чтобы отразить тот факт, что ISO-8859 использует значения символов выше 127.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top