新C++0x标准试用

发布: 2011-04-28 09:31

最近在为工作做一个试验型项目,使用C++开发,属于逻辑流控制型,基本没有计算,大部分模块不要求效率,

借前不久的C++2011标准,gcc-4.6.0新版本发布,开发1w多行代码。

这个项目的设计在自己的服务器上运行,自行安装维护,不需要考虑过多的系统兼容性,

大量使用方面的新功能没有问题,另一个关键问题还在于稳定,因为这是一个理想状态下需要daemon运行的程序。

新的C++2011标准提供了许多很好的功能,

简化代码,有auto自动类型推导,多用于泛型代码,不需要在使用一长串的模板参数

还可使用代码的统一初始化功能,即使复杂的类型,也可在声明时方便给初始值。

灵活代码,有lamba表达式,用于一些常用算法。

省事代码,有智能指针,指针不再裸奔,不过由于使用的一些C库比较多,有些地方没能用。

还一个在特殊场合提高代码效率的“右值引用”,我喜欢把它称作“乾坤大挪移”。

另一个在多线程中常用到的原子类型及相应原子操作,在<atomic>中。

其他更多的新功能看gcc官方吧。

在试运行过程也遇到问题,对系统要求比较高,但运维人员给安装的服务器系统都比较老,

在安装时候,没有明确提系统版本,后来还行麻烦人给升级系统。

即使使用了发行版本的最新版本,基本库保证没有问题,内核版本也还总凑和(我自用Linux系统是最新的2.6.38),

但gcc依旧要自己安装,还不能破坏原来的系统,相当麻烦,十分不爽,这是想尝鲜的代价。

目前在一个不稳定因素,系统的所有包都更新到新的发行版版本,但没有重启服务器,内核还是老版本的

怀疑有些莫名其妙的崩溃问题与此有关,像经常报一些malloc, realloc的崩溃问题,属于heap corrupt,严重的没法改,

需要考虑从运行环境改进了。以前还真没遇到这种严重问题,大不了就是野指针,多次释放内在,内存漏泄。

虽然中间遇到了一些问题,也算与时俱进了。感觉c++这次标准非常有用,与需要其他新型语言功能又有所接近了。

另一个问题,这次标准基本上算是扩展,原来的语言特性没有变化,复杂度也在上长。

目前项目试运行功能没有问题,偶尔还有些稳定性问题,到处查资料做试验,希望能早日解决。



原文: http://qtchina.tk/?q=node/572

Powered by zexport