我正在将一些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所需的编译器设置?问候。
答案 0 :(得分:1)
您需要传递CPPFLAG -std=c++11
。