android NDK |如何确定哪个C++;NDK 9c支持的标准 我想在我的Android原生项目上尝试C++(特别是C++ 11)的新特性。 如何确定NDK修订版9C?支持的C++标准?

android NDK |如何确定哪个C++;NDK 9c支持的标准 我想在我的Android原生项目上尝试C++(特别是C++ 11)的新特性。 如何确定NDK修订版9C?支持的C++标准?,android,c++,c++11,android-ndk,compiler-flags,Android,C++,C++11,Android Ndk,Compiler Flags,更新 比如说万一 int arr[] = {1,2,3,4,5}; for(int& e : arr) { e = e*e; } 我得到 error: range-based-for loops are not allowed in C++98 mode 这是否意味着NDK只支持C++98标准?根据,版本9c支持GCC4.8和Clang 3.3,两者都完全符合C++11。要真正使用C++11,您需要使用标志-std=C++11编译一些好的东西怎么样?有gcc 4.8和clan

更新

比如说万一

int arr[] = {1,2,3,4,5};
for(int& e : arr)
{
    e = e*e;
}
我得到

error: range-based-for loops are not allowed in C++98 mode

这是否意味着NDK只支持C++98标准?

根据,版本9c支持GCC4.8和Clang 3.3,两者都完全符合C++11。要真正使用C++11,您需要使用标志
-std=C++11

编译一些好的东西怎么样?有gcc 4.8和clang 3.3支持,所以这意味着几乎所有内容都来自C++11,模错误。@TemplateRex,为什么在这种情况下我会出错?因为C++98不支持循环的范围。您需要使用
-std=c++11
模式编译。@CAMOBAP完成,请参阅答案!我已经为C++11启用了构建,但仍然无法为启用范围
;我得到的错误如下:
foo.cpp:83:33:error:“begin”未在此范围内声明
-知道可能发生了什么吗?我使用的是
stlport\u static
如果有区别的话(我不能使用gnustl,因为我依赖另一个库)。@fluffy如果你使用的是任何第三方STL版本,那么所有赌注都没有了。您可能想查阅STL的文档,看看它们是否支持C++11或更高版本。我知道与Android NDK捆绑的STLPort版本还没有明确的C++11支持,但我希望该范围无论如何都能工作,因为它提供了相同的迭代器语义。不过,显然不是这样,所以我将只使用
BOOST\u FOREACH
(这很好)。谢谢。这取决于STL是否为C数组提供非成员
begin()
end()
。您应该能够在
std::vector
上使用range for,例如,因为有range for将返回到成员
.begin()
.end()
上,我是在
std::deque
上尝试的,并得到了该错误。这就是为什么我所犯的错误如此奇怪的原因。哦,好吧。也许有一天现实生活会赶上2011年的未来