从学通信的博士到从事IT行业的工程师 从原华为项目经理,到现任职公司架构师
发布时间:2012-12-30 19:05:51
在新的C++标准C++11[1]中,增强了对Unicode的支持。char被定义为能够存储UTF-8的8位编码。还增加了用于支持UTF-16和UTF-32的数据类型char16_t和char32_t。Unicode是为了表示世界上所有语言而诞生的。任何文字在Unicode都对应一个值,称为代码点。UCS-2和UCS-4分别用2个和4个表示这种对应关系。这些定义没有说明代码点任何在计算机中存储,规定存储格式的标准称为UTF。UTF-16和UTF-32分别对应存储UCS-2和UCS-4, 即它们都是定长(应该是变长)的。UTF-8是变长编码,长度可从一个字节到四个字节。IETF要求所有互联网协议都......【阅读全文】
发布时间:2012-12-23 21:22:33
最近的项目一直在讨论如何管理头文件,原项目使用Visual Studio开发,源文件中对头文件的引用比较乱,有很多类似于"../../include/header.h"的头文件引用。现在要移植到类UNIX平台,头文件的引用管理问题也逐渐显露出来。IDE的使用一方面简化了我们的开发工作,另一方面也让我们丧失了对某些领域的控制,或者说让我们疏忽了对某些领域的控制感,不知不觉我们就按照IDE的默认方式做了,甚至转而适应IDE的默认方式。这就如同猎人转而耕作农田,农民转向城市打工,都逐渐丢失掉原应持有的生存本领。也许这就是社会和技术进步的负面影响吧!看到问题之后,我们找一个参照物,看看到底怎......【阅读全文】
发布时间:2012-12-23 21:04:18
std::auto_ptr封装动态申请对象内存返回的指针,并且其行为也和普通指针一样。最重要的一点,程序员不必记得去释放之前申请的内存,当std::auto_ptr销毁时,其封装的指针所指向的内存也会自动销毁。当需要处理异常时,这尤其重要,RAII技术保证异常发生后,在栈上保存的对象依次销毁释放,直至异常被捕获。当动态申请对象数组时,std::auto_ptr就不在适用了。这是因为std::auto_ptr销毁函数(析构函数)的默认实现是调用delete操作符销毁所封装对象的内存空间(包括调用对象的析构函数),而动态申请的数组需要适用delete[]释放空间(包括调用数组汇总各个对象的析构函数......【阅读全文】