在Android项目中禁止使用static_assert

时间:2015-02-25 23:22:52

标签: android-ndk

我正在将一些C ++代码移植到Android。其中一个源文件包含webrtc头文件,该文件在编译期间会导致错误。我已经将问题简化为这个简单的代码:

template <class T, int n>
struct DefaultDeleter<T[n]> {
  // Never allow someone to declare something like scoped_ptr<int[10]>.
 static_assert(sizeof(T) == -1, "do not use array with size as type");
};

我得到的错误是:

[armeabi-v7a] Compile++ thumb: dummyclient <= dummy.cpp
dummy.cpp:7:3: warning: identifier 'static_assert' will become a keyword in C++0x [-Wc++0x-compat]
dummy.cpp:5:8: error: 'DefaultDeleter' is not a template
dummy.cpp:7:17: error: expected identifier before 'sizeof'
dummy.cpp:7:17: error: expected ',' or '...' before 'sizeof'
dummy.cpp:7:70: error: ISO C++ forbids declaration of 'static_assert' with no type [-fpermissive]

相同的代码在Windows和Linux上编译良好。是否有一些Android所需的编译器设置?问候。

1 个答案:

答案 0 :(得分:1)

您需要传递CPPFLAG -std=c++11