Unsigned CharタイプのBoost :: Spiritをコンパイルするにはどうすればよいですか?

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文字セットのすべてのcharcterを認識します。

他のヒント

問題は、もちろん127を超えるASCII文字がないことです。BYTE= 8ビットの解釈はそれよりも最近です。

ISO8859-1またはUTF-8を文字エンコードとして使用している場合は、コンパイラを正しく構成する必要があります。このオプションは、ISO-8859が127を超える文字値を使用しているという事実を反映するために、「デフォルトのchar unsigned」またはそのようなものと呼ばれます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top