2009-10-19 4 views
2

부스트 :: 정신은 향상에 :: 정신 :: char_class :: 아스키 :: isalnum()을 주장어떻게 unsigned char 형식에 boost :: spirit을 컴파일 할 수 있습니까?

통과 ascci 문자> 127

나는 표준 : : 문자열에서 모든 내 개인 변수를 변경

~

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

그러나 여전히 부스트는 내부적으로 std : .string을 사용합니다. 나는 무엇을해야합니까?

+1

코드를 게시하고 실행할 때 표시되는 내용을 정확하게 알려주십시오. – razlebe

답변

3

솔루션 위의 문자 값을 사용 않는다는 사실을 반영하기 위해, 그 같은 "기본 문자 부호"또는 뭔가 매우 간단 호출 할 micht :

대신

using namespace boost::spirit::ascii; 

내가 지금

using namespace boost::spirit::iso8859_1; 

사용이는 ISO8859 문자 세트의 모든 charcters을 인식합니다.

1

물론 문제는 127 위에 ASCII 문자가 없다는 것입니다. 바이트 = 8 비트의 해석은 그보다 최근입니다.

ISO8859-1 또는 UTF-8을 문자 인코딩으로 사용하는 경우 컴파일러를 올바르게 구성해야합니다. 이 옵션은 ISO-8859은 127

관련 문제