首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用ndk/clang时,std::实验性::可选

使用ndk/clang时,std::实验性::可选
EN

Stack Overflow用户
提问于 2019-05-10 00:11:25
回答 1查看 1.1K关注 0票数 1

我正在尝试建立我的项目,其中使用std::experimental::optional。对于Linux,它编译得很好,但是对于android/ndk,编译器会抛出:

error: no member named 'experimental' in namespace 'std'

我正在使用polly工具链android-ndk-r17-api-24-armeabi-v7a-clang-libcxx14set(CMAKE_CXX_STANDARD 14)进行构建

# Copyright (c) 2015-2018, Ruslan Baratov
# Copyright (c) 2017-2018, Robert Nitsch
# Copyright (c) 2018, David Hirvonen
# All rights reserved.

if(DEFINED POLLY_ANDROID_NDK_R17_API_24_ARMEABI_V7A_CLANG_LIBCXX14_CMAKE_)
  return()
else()
  set(POLLY_ANDROID_NDK_R17_API_24_ARMEABI_V7A_CLANG_LIBCXX14_CMAKE_ 1)
endif()

include("${CMAKE_CURRENT_LIST_DIR}/utilities/polly_clear_environment_variables.cmake")

include("${CMAKE_CURRENT_LIST_DIR}/utilities/polly_init.cmake")

set(ANDROID_NDK_VERSION "r17")
set(CMAKE_SYSTEM_VERSION "24")
set(CMAKE_ANDROID_ARCH_ABI "armeabi-v7a")
set(CMAKE_ANDROID_ARM_NEON TRUE)
set(CMAKE_ANDROID_ARM_MODE TRUE) # 32-bit ARM
set(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION "clang")
set(CMAKE_ANDROID_STL_TYPE "c++_static") # LLVM libc++ static

polly_init(
    "Android NDK ${ANDROID_NDK_VERSION} / \
API ${CMAKE_SYSTEM_VERSION} / ${CMAKE_ANDROID_ARCH_ABI} / \
Clang / c++14 support / libc++ static"
    "Unix Makefiles"
)

include("${CMAKE_CURRENT_LIST_DIR}/utilities/polly_common.cmake")

include("${CMAKE_CURRENT_LIST_DIR}/flags/cxx14.cmake") # before toolchain!

include("${CMAKE_CURRENT_LIST_DIR}/os/android.cmake")

我试着构建一个最小的示例:

#include <experimental/optional>
#include <iostream>

int main() {
    std::experimental::optional<int> b = 6;
    std::cout << b.value()  <<  std::endl;
    return 0;
}

但它使用相同的工具链构建得很好。

我很抱歉,我不能在这里发布我的代码。你知道问题出在哪里吗?

EN

回答 1

Stack Overflow用户

发布于 2019-05-21 05:08:27

更新到NDK r19并只使用std::optional。这在C++17中并不是实验性的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56063576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档