u16string и char16_t в Android NDK

1

Я хочу создать (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 или что-то еще? Что мне делать?

Теги:
c++11
android-ndk
unicode
utf-16

1 ответ

3
Лучший ответ

NDK не поддерживает (по крайней мере, официально) поддержку широких символов, UTF-16 или что-то в этом роде. Он также не предоставляет надлежащую библиотеку С++.

  • 3
    +1: NDK - это извинительное оправдание библиотеки C ++
  • 0
    Мне сказали, что NDK использует GCC, который в режиме C ++ 0x изначально поддерживает UTF-16. Полагаю, я надеюсь, что есть какой-нибудь препроцессор-фу или что-то, что можно сделать, чтобы он распознал string в полном C ++ 0x режиме в этом (официально экспериментальном) режиме.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню