如何在Android-ndk(r7)中编译.cpp文件时打开"C++ 0X"实验标准?

use*_*812 6 c++ android-ndk

在检查"android-ndk-linux_x86/sources/cxx-stl/gnu-libstdc ++/include/memory"头文件时,我发现此头包含其他STL头文件,根据

__GXX_EXPERIMENTAL_CXX0X__
Run Code Online (Sandbox Code Playgroud)

旗.我认为这个标志与"C++ 0X"标准有关,这个标准可能在Android-ndk r7中是实验性的.但是,我想在我的项目中打开这个C++标准.(我不确定这个"C++ 0X"标准是否默认开启)

我想知道当我编译Android项目的"project/jni"目录中的.cpp文件时,如何告诉Android-ndk设置此标志.或者我怎么能在我的应用程序中打开实验性的"C++ 0X"标准.

我是否需要在"Android.mk"/"Application.mk"文件中使用例如LOCAL_CPPFLAGS和/或APP_CPPFLAGS指定标志.(我在"Application.mk"中使用"APP_STL:= gnustl_static")

谢谢你的任何建议.

劳伦斯曾

bdo*_*lan 7

C++ 03不是实验标准; 这是默认值.

但是,C++ 0X是一个实验标准.它的官方名称现已设置为C++ 11,但在GCC(以及其他任何地方)的实现都不完整.您可以通过传递--std=c++0x给GCC 来启用它.在抱怨某些内容被破坏之前,请务必检查功能状态页面.

  • 将"LOCAL_CPPFLAGS = -std = c ++ 0x"添加到"Android.mk"有效.谢谢. (3认同)