Android NDK的C++11标准支持
C++11于Android NDK它已被支持,本文介绍了如何NDK添加C++11支持标准。
在开源项目Cocos2d-x于,他已经加入C++11支持标准。
1.改动Application.mk文件,加入NDK_TOOLCHAIN_VERSION
NDK_TOOLCHAIN_VERSION=4.8
2.加入APP_CPPFLAGS,在命令行编辑时支持C++11
APP_CPPFLAGS := -frtti -std=c++11
然后编写測试函数。在JNI中调用此函数就可以。
#include <android/log.h> #include <vector>
#include <initializer_list>
using namespace::std; #define LOG_TAG "cachetest"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__) template <typename T>
class MyArray
{
private:
vector<T> m_Array; public:
MyArray() { } MyArray(const initializer_list<T>& il)
{
// Manually populate the elements of the array from initializer_list x
for (auto x: il){ // use range-based for statement to iterate over the elements of the initializer list
m_Array.push_back(x); // push them into the array manually
}
} void showContent()
{
//old way
LOGI("in old way");
for (std::vector<int>::iterator itr = m_Array.begin(); itr != m_Array.end(); ++itr){
LOGI("%d",(*itr));
} LOGI("in c++11 new way");
for (auto x: m_Array){ //x is readonly
LOGI("%d",x);
}
}
}; void test_cpp_new_version_11()
{
auto x = 1;//int x = 1;
int *p = nullptr;//int *p = NULL;
MyArray<int> foo = { 3, 4, 6, 9 };
foo.showContent();
}
详细视频教程,能够參考海同网校视频课程<安卓NDK>开发。
http://www.iotekclass.com/goods/courseDetail?
goodId=83
版权声明:本文博主原创文章,博客,未经同意不得转载。
Android NDK的C++11标准支持的更多相关文章
- Android NDK开发及调用标准linux动态库.so文件
源:Android NDK开发及调用标准linux动态库.so文件 预备知识及环境搭建 1.NDK(native development Kit)原生开发工具包,用来快速开发C.C++动态库,并能自动 ...
- VS2010编译器工具cl对c++11标准支持情况測试
本文探讨了VS2010编译工具cl对C++11标准的支持情况.提供了利用C++11新特性的两段代码来进行測试,并同g++ 4.9.3编译器的编译情况相对照.总的说来:VS2010的编译器工具cl部分支 ...
- Android NDK开发之Android.mk文件
Android NDK开发指南---Android.mk文件 博客分类: Android NDK开发指南 Android.mk文件语法详述 介绍: ------------ 这篇文档是用来描述你的 ...
- 使用GDB调试Android NDK native(C/C++)程序-转
最 近写了些需要跨平台兼容的C++库,Android是其中需要兼容的平台之一.区别于Windows,Mac中功能强大的IDE环境,官方并没有为 Android ndk提供太多的支持.因此,尝试了下通过 ...
- 转:linux下安装或升级GCC4.8,以支持C++11标准
转:http://www.cnblogs.com/lizhenghn/p/3550996.html C++11标准在2011年8月份获得一致通过,这是自1998年后C++语言第一次大修订,对C++语言 ...
- linux下安装或升级GCC4.8,以支持C++11标准
C++11标准在2011年8月份获得一致通过,这是自1998年后C++语言第一次大修订,对C++语言进行了改进和扩充.随后各编译器厂商都各自实现或部分实现了C++中的特性. 如需查看各编译器对C++1 ...
- Linux下改动Matlab配置文件支持C++ 11标准以生成mex
进入matlab 输入mex -v命令查看当前配置 输入命令改动配置文件 命令: !sudo gedit /usr/local/MATLAB/R2013a/bin/mexopts.sh 加入下面蓝色内 ...
- linux下安装或升级GCC4.8.2,以支持C++11标准[转]
在编译kenlm的时候需要安装gcc, 然后还需要安装g++. g++安装命令:sudo apt-get install g++ ----------------------以下为网上转载内容,加上自 ...
- 支持C++11标准
设置CB下的GCC. Settings->Compiler->Compiler Settings勾选Have g++ follow the C++11 ISO C++ language s ...
随机推荐
- 最少拦截系统(杭电1257)(DP)+(贪心)
最少拦截系统 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- Android 推断SD卡是否存在及容量查询
首先要在AndroidManifest.xml中添加SD卡訪问权限 <!-- 在SDCard中创建与删除文件权限 --> <uses-permission android:name= ...
- SVM算法实现(一)
关键字(keywords):SVM 支持向量机 SMO算法 实现 机器学习 假设对SVM原理不是非常懂的,能够先看一下入门的视频,对帮助理解非常实用的,然后再深入一点能够看看这几篇入门文章,作者写得挺 ...
- Serializable Clonable
序列化机制有一种很有趣的用法:可以方便的克隆对象,只要对应的类是可序列化的即可.操作流程:直接将对象序列化到输出流中,然后将其读回.这样产生的新对象是对现有对象的一个深拷贝(deep copy).在此 ...
- .net与Java的WebService互调
本文记录一下.net与Java是如何进行Web Service的互相调用的. 1.准备工作 MyEclipse 10 JDK 1.6.0_13 Visual Studio 2012 .net fram ...
- Android 儿子Activity在启动过程中的流程组件 && 儿子Activity在一个新的进程组件启动过程
1.儿子Activity在启动过程中的流程组件 在Android Activity启动过程http://blog.csdn.net/jltxgcy/article/details/35984557一文 ...
- ANDROID L——Material Design详细解释(UI控制)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lolli ...
- 一个简单的Java死锁示例(转)
在实际编程中,要尽量避免出现死锁的情况,但是让你故意写一个死锁的程序时似乎也不太简单(有公司会出这样的面试题),以下是一个简单的死锁例子,程序说明都写着类的注释里了,有点罗嗦,但是应该也还是表述清楚了 ...
- 谈到一些传统的企业网站SEO问题领域
在网络营销中的时间越长,有时候,企业网站还是有一些传统做法不解.也许,这是它的思想的局限.比如,我最近来到了一个新的工作环境中发现,虽然公司是专业从事传统渠道已经很不错了,但对于网络营销渠道还有改进的 ...
- Shell编程入门(再版)(在)
简单的演示样本Shell规划 演示样例1. #!/bin/bash #This is to show what a shell script looks like echo "Our fir ...