1
私は(std::getline()
)を作成してAndroid NDKのUTF-16文字列を操作したいので、(比較的)苦労なくJavaに戻して表示することができます。現在、私はC++ 0xを使用しています。これは、LOCAL_CPPFLAGS := -std=c++0x
スイッチを使用しています(他の0x関数を使用しています)。コンパイラがu16string
を見つけることができないようです。私は<string>
を含んでおり、他のエラーは発生しません。私は次のようなことをしたい:アンドロイドのu16stringとchar16_t NDK
ifstream file(fileName);
if(!file.is_open()) {
return false;
}
while(!file.eof()) {
u16string fileLine;
std::getline(file, fileLine);
// Do stuff with fileLine
}
return true;
NDKに古いバージョンのGCCが含まれていますか?私は何をすべきか?
+1:NDKはC++ライブラリの申し訳ありません。 – ognian
NDKはC++ 0xモードでネイティブにUTF-16をサポートするGCCを使用していると言われます。私は、いくつかのプリプロセッサフューがあることを期待していると思います。それは、 'string's(完全にC++ 0xのとき)を認識するために行うことができるものです。 – Warpspace
@Warpspace NDK NDK 4b)には、gcc-4.4.0が付属しています。これは実際に新しいC++ 0x文字タイプchar16_tとchar32_tをサポートするはずですが、ライブラリサポートはありません。 Android NDKはstd :: stringも知らない。一番簡単なのはおそらくUTF-8を使うことでしょう.JNIは両方の方法をサポートしています。それ以外の場合はstlport(C++ 0xサポートなし)を使用してstd :: stringまたはstd :: basic_stringを提供し、char16_tのchar_traitsを定義/実装し、独自のu16stringをbasic_stringとして定義することができます。 stlportがwchar_t/wstringをサポートしているかどうかは不明です。 –
sstn