2013年03月20日 星期三 09:33
Hello all, RT。 我查阅了维基C++11的相关内容,该标准11年已经正式发布。按理说间隔一年,应该各编译器已经成熟实现了吧? 我的项目希望跨IOS,android,Linux,甚至Win和MacOS等平台,我发现Linux的个g++依然没有-std=c++11,它目前用的是-std=c++0x,而在ios开发环境中已经支持c++11,android上我测试过,至少shared_ptr那部分也没问题。 现在很纠结,用c++11到项目中就目前编译器支持而言是否合适?有没有哪些成熟的项目已经迈出这步? 望指点! Thanks B.R Kermit
2013年03月20日 星期三 10:48
关于具体项目不熟悉。GCC 4.7已经支持选项-std=c++11,支持幅度也提升很大。而即将发布的GCC 4.8将和Mac 上的Clang一样提供最好的C++11特性支持。 Android可能是个问题。我也不知道NDK里什么时候和怎么样更新编译器。 具体的编译器支持程度,可以参考以下链接: http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport http://gcc.gnu.org/gcc-4.8/cxx0x_status.html 对于部分C++11特性,我有个用来检查的头文件,也许你也可以参考: http://nvwa.cvs.sourceforge.net/viewvc/nvwa/nvwa/c%2B%2B11.h?view=markup 2013/3/20 Kermit.Mei <kermit.mei在gmail.com>: > Hello all, > > RT。 > 我查阅了维基C++11的相关内容,该标准11年已经正式发布。按理说间隔一年,应该各编译器已经成熟实现了吧? > 我的项目希望跨IOS,android,Linux,甚至Win和MacOS等平台,我发现Linux的个g++依然没有-std=c++11,它目前用的是-std=c++0x,而在ios开发环境中已经支持c++11,android上我测试过,至少shared_ptr那部分也没问题。 > > 现在很纠结,用c++11到项目中就目前编译器支持而言是否合适?有没有哪些成熟的项目已经迈出这步? > > 望指点! > > > > Thanks > B.R > Kermit > _______________________________________________ > zeuux-universe mailing list > zeuux-universe在zeuux.org > http://www.zeuux.org/mailman/listinfo/zeuux-universe > > ZEUUX Project - Free Software, Free Society! > http://www.zeuux.org -- Wu Yongwei URL: http://wyw.dcweb.cn/
2013年03月20日 星期三 12:56
在 2013-3-20,上午10:48,Yongwei Wu <wuyongwei在gmail.com> 写道: > 关于具体项目不熟悉。GCC 4.7已经支持选项-std=c++11,支持幅度也提升很大。而即将发布的GCC 4.8将和Mac > 上的Clang一样提供最好的C++11特性支持。 > > Android可能是个问题。我也不知道NDK里什么时候和怎么样更新编译器。 > > 具体的编译器支持程度,可以参考以下链接: > > http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport > http://gcc.gnu.org/gcc-4.8/cxx0x_status.html > > 对于部分C++11特性,我有个用来检查的头文件,也许你也可以参考: > > http://nvwa.cvs.sourceforge.net/viewvc/nvwa/nvwa/c%2B%2B11.h?view=markup OK,多谢YongWei兄! Android我刚才看了,最新的NDK提供的是 gcc 4.7, 而且按照之前我的测试, 至少shared_ptr这个东西是支持到了,不过当时好像没升级,要加如的编译参数 是 -std=c++0x。 我回头用你给出的头文件再测测。 目前的我想的办法是 typedef MyTypePtr std::shared_ptr, 如果万一出问题,有 不支持的平台,我重新实现一次这些接口也不至于用不了。 B.R Kermit > > 2013/3/20 Kermit.Mei <kermit.mei在gmail.com>: >> Hello all, >> >> RT。 >> 我查阅了维基C++11的相关内容,该标准11年已经正式发布。按理说间隔一年,应该各编译器已经成熟实现了吧? >> 我的项目希望跨IOS,android,Linux,甚至Win和MacOS等平台,我发现Linux的个g++依然没有-std=c++11,它目前用的是-std=c++0x,而在ios开发环境中已经支持c++11,android上我测试过,至少shared_ptr那部分也没问题。 >> >> 现在很纠结,用c++11到项目中就目前编译器支持而言是否合适?有没有哪些成熟的项目已经迈出这步? >> >> 望指点! >> >> >> >> Thanks >> B.R >> Kermit >> _______________________________________________ >> zeuux-universe mailing list >> zeuux-universe在zeuux.org >> http://www.zeuux.org/mailman/listinfo/zeuux-universe >> >> ZEUUX Project - Free Software, Free Society! >> http://www.zeuux.org > > > > -- > Wu Yongwei > URL: http://wyw.dcweb.cn/ > _______________________________________________ > zeuux-universe mailing list > zeuux-universe在zeuux.org > http://www.zeuux.org/mailman/listinfo/zeuux-universe > > ZEUUX Project - Free Software, Free Society! > http://www.zeuux.org
2013年03月20日 星期三 21:09
2013/3/20 Kermit.Mei <kermit.mei在gmail.com>: > 在 2013-3-20,上午10:48,Yongwei Wu <wuyongwei在gmail.com> 写道: > >> 关于具体项目不熟悉。GCC 4.7已经支持选项-std=c++11,支持幅度也提升很大。而即将发布的GCC 4.8将和Mac >> 上的Clang一样提供最好的C++11特性支持。 >> >> Android可能是个问题。我也不知道NDK里什么时候和怎么样更新编译器。 >> >> 具体的编译器支持程度,可以参考以下链接: >> >> http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport >> http://gcc.gnu.org/gcc-4.8/cxx0x_status.html >> >> 对于部分C++11特性,我有个用来检查的头文件,也许你也可以参考: >> >> http://nvwa.cvs.sourceforge.net/viewvc/nvwa/nvwa/c%2B%2B11.h?view=markup > > OK,多谢YongWei兄! > > Android我刚才看了,最新的NDK提供的是 gcc 4.7, 而且按照之前我的测试, > 至少shared_ptr这个东西是支持到了,不过当时好像没升级,要加如的编译参数 > 是 -std=c++0x。 4.7应该支持-std=c++11了吧。会不会是以前老版本上发现只能用-std=c++0x的?4.6就不能用-std=c++11的。 > 我回头用你给出的头文件再测测。 目前的我想的办法是 > typedef MyTypePtr std::shared_ptr, 如果万一出问题,有 > 不支持的平台,我重新实现一次这些接口也不至于用不了。 单就shared_ptr的问题,不建议你的方法。shared_ptr已经够标准化了。实在担心用类似下面的方法: #if defined(HAVE_CXX11_SHARED_PTR) using std::shared_ptr; #elif defined(HAVE_TR1_SHARED_PTR) using std::tr1::shared_ptr; #elif defined(HAVE_BOOST_SHARED_PTR) using boost::shared_ptr; #else #error "shared_ptr not defined!" #endif 也就是说,利用名空间和using,而不是自定义的奇怪名字。 -- Wu Yongwei URL: http://wyw.dcweb.cn/
2013年03月21日 星期四 00:47
在 2013-3-20,下午9:09,Yongwei Wu <wuyongwei在gmail.com> 写道: > 2013/3/20 Kermit.Mei <kermit.mei在gmail.com>: >> 在 2013-3-20,上午10:48,Yongwei Wu <wuyongwei在gmail.com> 写道: >> >>> 关于具体项目不熟悉。GCC 4.7已经支持选项-std=c++11,支持幅度也提升很大。而即将发布的GCC 4.8将和Mac >>> 上的Clang一样提供最好的C++11特性支持。 >>> >>> Android可能是个问题。我也不知道NDK里什么时候和怎么样更新编译器。 >>> >>> 具体的编译器支持程度,可以参考以下链接: >>> >>> http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport >>> http://gcc.gnu.org/gcc-4.8/cxx0x_status.html >>> >>> 对于部分C++11特性,我有个用来检查的头文件,也许你也可以参考: >>> >>> http://nvwa.cvs.sourceforge.net/viewvc/nvwa/nvwa/c%2B%2B11.h?view=markup >> >> OK,多谢YongWei兄! >> >> Android我刚才看了,最新的NDK提供的是 gcc 4.7, 而且按照之前我的测试, >> 至少shared_ptr这个东西是支持到了,不过当时好像没升级,要加如的编译参数 >> 是 -std=c++0x。 > > 4.7应该支持-std=c++11了吧。会不会是以前老版本上发现只能用-std=c++0x的?4.6就不能用-std=c++11的。 android的g++4.7是支持的,我在命令行试过了。 > >> 我回头用你给出的头文件再测测。 目前的我想的办法是 >> typedef MyTypePtr std::shared_ptr, 如果万一出问题,有 >> 不支持的平台,我重新实现一次这些接口也不至于用不了。 > > 单就shared_ptr的问题,不建议你的方法。shared_ptr已经够标准化了。实在担心用类似下面的方法: > > #if defined(HAVE_CXX11_SHARED_PTR) > using std::shared_ptr; > #elif defined(HAVE_TR1_SHARED_PTR) > using std::tr1::shared_ptr; > #elif defined(HAVE_BOOST_SHARED_PTR) > using boost::shared_ptr; > #else > #error "shared_ptr not defined!" > #endif > > 也就是说,利用名空间和using,而不是自定义的奇怪名字。 嗯,我参考下这个用吧。今天还在想尽量回避这些支持面还没有完全覆盖到所有 平台的东西。所以最后把内存释放做成类似QT的父子对象管理的方式来弄了。 > > -- > Wu Yongwei > URL: http://wyw.dcweb.cn/ > _______________________________________________ > zeuux-universe mailing list > zeuux-universe在zeuux.org > http://www.zeuux.org/mailman/listinfo/zeuux-universe > > ZEUUX Project - Free Software, Free Society! > http://www.zeuux.org
Zeuux © 2024
京ICP备05028076号