Android NDK: ошибка компиляции с std::execution в C++17C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Android NDK: ошибка компиляции с std::execution в C++17

Сообщение Anonymous »

Я пытаюсь скомпилировать программу на C++ с помощью Android NDK, которая использует функцию C++17 std::execution.
В процессе сборки Я столкнулся со следующими ошибками:

Код: Выделить всё

error: no member named 'par' in namespace 'std::execution'
error: no member named 'par_unseq' in namespace 'std::execution'
Пример программы:

Код: Выделить всё

#include 
#include 
#include 

int main() {
std::vector vec = {1, 2, 3, 4, 5};
std::for_each(std::execution::par, vec.begin(), vec.end(), [](int &n) { n *= 2; });
return 0;
}
Команда компиляции:

Код: Выделить всё

/Users/A.Chavez/Library/Android/sdk/ndk/27.0.11902837/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ \
--target=aarch64-none-linux-android24 \
--sysroot=/Users/A.Chavez/Library/Android/sdk/ndk/27.0.11902837/toolchains/llvm/prebuilt/darwin-x86_64/sysroot \
-std=c++20 \
-stdlib=libc++ \
-I/Users/A.Chavez/Library/Android/sdk/ndk/27.0.11902837/sources/cxx-stl/llvm-libc++/include \
-I/Users/A.Chavez/Library/Android/sdk/ndk/27.0.11902837/sources/cxx-stl/llvm-libc++abi/include \
-I/Users/A.Chavez/Library/Android/sdk/ndk/27.0.11902837/sources/android/support/include \
-c test.cpp
Контекст:
Я установил для APP_CPPFLAGS значение -std=c++20 и для APP_STL значение c++_shared в моем файле CMakeList.txt. Я использую NDK версии 27.0.11902837, но это происходит с любым NDK, который должен поддерживать C++17.
В документации указано, что libc++ должен поддерживать современные функции C++, но кажется, что std::execution может поддерживаться не полностью.
  • Как устранить эту ошибку и успешно скомпилировать программу с помощью Android NDK?
  • Требуется ли какая-либо конкретная настройка или дополнительные действия для включения поддержки std::execution?
Я использую CMake для сборки проекта

Подробнее здесь: https://stackoverflow.com/questions/786 ... ion-in-c17
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»