Я хочу создать (std::getline()
) и манипулировать строками UTF-16 в Android NDK, чтобы я мог передать их (относительно) безболезненно обратно в Java для отображения. В настоящее время я использую С++ 0x, используя переключатель LOCAL_CPPFLAGS := -std=c++0x
, который работает (я использую некоторые другие функции 0x). Кажется, компилятор не может найти u16string
. Я включил <string>
и не получил никаких других ошибок. Я хочу сделать что-то вроде:
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 или что-то еще? Что мне делать?
NDK не поддерживает (по крайней мере, официально) поддержку широких символов, UTF-16 или что-то в этом роде. Он также не предоставляет надлежащую библиотеку С++.
string
в полном C ++ 0x режиме в этом (официально экспериментальном) режиме.