Поддерживает ли NDK C++14?

В настоящее время работаю над чем-то, где мне нужно разработать какую-то функцию с использованием C++14, но все еще интересно, может ли она поддерживаться Bionic и NDK??

Из статуса Bionic Wiki функции C++11 был реализован/включен в Bionic. Единственная загвоздка в том, что это делается для Android Oreo и выше (что полностью подходит для моей разработки: p)

Итак, мой вопрос будет таким:

  • Пожалуйста, помогите мне, я что-то упустил здесь с Bionic Status? Статус, который я проверяю, правильный?
  • Если в Bionic нет поддержки C++14, будут ли функции C++14 включены/реализованы в Bionic в ближайшем будущем? Есть какое-нибудь объявление по этому поводу?

person Novice    schedule 03.05.2019    source источник
comment
Bionic — это стандартная библиотека C. Он не может поддерживать какие-либо функции стандартной библиотеки C++, не говоря уже о C++14. Вы просите только NDK?   -  person P.W    schedule 03.05.2019
comment
Я не уверен, как С++ 14 относится к Bionic (?). Реализация STL для NDK — libc++. Не могли бы вы уточнить, что вы имеете в виду?   -  person Michael    schedule 03.05.2019
comment
Да, я полностью согласен с тем, что bionic — это библиотека C. Я могу ошибаться, поправьте меня, если я ошибаюсь: если я разработал какую-то библиотеку, используя NDK с API-интерфейсами C++14, и я развертываю ее с помощью приложения, будет ли она по-прежнему работать, если у Bionic нет C++ 14 поддержка. (Я обновлю вопрос соответственно, если потребуется.)   -  person Novice    schedule 03.05.2019
comment
Поддерживает ли NDK C++14, зависит от того, какую версию NDK вы используете. Если вы используете последнюю версию (в настоящее время 19c), то ответ — да.   -  person Michael    schedule 03.05.2019
comment
Если я разработал какую-то библиотеку с помощью NDK с API-интерфейсами C++14 и развертываю ее с помощью приложения, будет ли она по-прежнему работать. Да, важна версия NDK, которую вы используете при сборке. Как поясняется в документации: В Android библиотека libc++, используемая NDK, не является частью ОС. Это дает пользователям NDK доступ к новейшим функциям libc++ и исправлениям ошибок даже при работе со старыми версиями Android. Компромисс заключается в том, что если вы используете libc++_shared.so, вы должны включить его в свой APK. Если вы создаете приложение с помощью Gradle, это выполняется автоматически.   -  person Michael    schedule 03.05.2019


Ответы (1)


Bionic — это стандартная библиотека C. Он не поддерживает какие-либо функции стандартной библиотеки C++, не говоря уже о C++14.

Если вы спрашиваете о NDK, то на странице cpp-support для NDK, libc++ LLVM — это стандартная библиотека C++, которая использовалась ОС Android начиная с Lollipop и поддерживает функции C++17.

введите здесь описание изображения

person P.W    schedule 03.05.2019
comment
У меня есть сомнения в отношении интеграции и исполнения. Если вы видите мой комментарий выше, я описал сценарий. Я не уверен, прав я или нет. - person Novice; 03.05.2019