Unsigned CharタイプのBoost :: Spiritをコンパイルするにはどうすればよいですか?
-
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」またはそのようなものと呼ばれます。
所属していません StackOverflow