事实上,这包括以下几点:通过内存模型、线程、原子操作等来支持本地并行编程(NativeConcurrency)。通过统一初始化表达式、auto、declytype、移动语义等来统一对泛型编程的支持。通过constexpr、POD(概念)等更好地支持系统编程。通过内联命名空间、继承构造函数和右值引用等,以更好地支持库的构建。表中列出了C++11批准通过的语言特性。
而从另一个角度看,编程中程序员往往需要将实物、流程、概念等进行抽象描述。但通常情况下,程序员需要抽象出的不仅仅是对象,还有一些其他的概念,比如类型、类型的类型、算法,甚至是资源的生命周期,这些实际上都是C++语言可以描述的。在C++11中,这些抽象概念常常被实现在库中,其使用将比在C++98/03中更加方便,更加好用。从这个角度上讲,C++11则是一种所谓的“轻量级抽象编程语言”。
总的来说,灵活的静态类型、小的抽象概念、绝佳的时间与空间运行性能,以及与硬件紧密结合工作的能力都是C++11突出的亮点。而反观C++98/03,其最强大的能力则可能是体现在能够构建软件基础架构,或构建资源受限及资源不受限的项目上。因此,C++11也是C++在编程语言领域上一次“泛化”与进步。要实现上面表中的各种特性,需要编译器完成大量的工作。
领取专属 10元无门槛券
私享最新 技术干货