如何在Android上启用std :: experimental :: optional

时间:2016-11-25 23:51:43

标签: android c++ optional

我想在我的Android应用程序的C ++代码中使用选项,但我无法弄清楚如何配置STL以支持std :: experimental :: optional或std :: optional。如果我只是将“-lc ++ experimental”添加到cppFlags,我的构建失败,“找不到-lc ++实验”。这就是我的Gradle文件的externalNativeBuild部分目前的样子。

externalNativeBuild {
    cmake {
        arguments "-DANDROID_STL=c++_shared"
        cppFlags "-std=c++11", "-frtti", "-fexceptions"
    }
}

如何启用std :: optional或std :: experimental :: optional?

的使用 编辑:我能够下载boost并使用boost :: optional,这很容易,因为它是一个仅限标头的库。如果可能的话,知道如何使用NDK附带的STL之一,这将是一件好事。当我打开$ ANDROID_NDK_HOME / sources / cxx-stl / llvm-libc ++ / include / experimental / optional时,我看到看起来像是std :: experimental :: optional的实现,但它被很多预处理器语句包围着我想象是禁用它。

1 个答案:

答案 0 :(得分:0)

std::optionalC++17 STL的一部分。如果您的编译器支持它,请添加-std=c++17,否则我认为正确的标志是-std=c++1z

See this discussion for more details.