首页 »

ay 发布的文章

源码看stl版本演进中string实现的变化——拷贝/移动的构造和赋值的实质动作和效率

C++标准库STL中的字符串string是基本类型,标准进化过程中对string的最终接口和行为方式有过变化和调整,主要的是C++11要求string不能使用COW(Copy on Write)机制。C++11前很多STL实现(以HP STL为基础衍生)使用的是引用计数支持的写时拷贝方式,即所谓COW,C++11后的基本使用独立堆空间读写各自内存。

这个主要变化前后,string复制和构造的方式,执行过程中着重点,资源和效率都有不同,在源码实现分析下这些变化,可总结出使用string各程序环境的功能实施和效率影响。

代码分析以g++采用的SGI STL为例,gcc支持C++11在版本4.8.5,不同的实现在这个版本前后。

继续阅读全文 »

  • 时间:
  • 分类:C++
  • 留言

C++项目文件组织一般形式

C++作为开发语言的项目一般是系统软件,常见系统级库和系统级应用软件,前者典型如boost,后者很多服务类软件桌面软件。这类工程项目结构一般以编译器编译规则为标准,但不同类型也侧重方面不同。项目的组织形式一般依经验和编译器方便原则有不同的形式。

继续阅读全文 »

  • 时间:
  • 分类:C++
  • 留言