Skip to content

关于本章

本章讨论c++语言的发展,演进,重点关注各个版本的c++语言的new feature。

C++ 版本计划

cppreference C++11中介绍了:

C++ updates every 3 years regularly

C++ Standards Committee Papers

NOTE: 相当于python PEP

Final Committee Draft

最终标准化草案

What is new in C++

python的官方文档的“What’s New in Python”会详细的罗列python的各个版本的what is new,cppreference中也有类似的、专门就某一版本的改进的、引入的新特性进行说明的章节,同时它也把这些杂糅进了各个具体章节中,阅读这些有利于开发者掌握这门语言的演进轨迹,下面收集了关于这方面的一些素材:

素材 说明
cppreference version 在cppreference version中对各个版本c++的改进进行了详细说明,是官方版的what is new in c++。
cppreference C++ compiler support C++ compiler support,仔细阅读原文就会发现它所讨论的是各种c++ compiler对各个版本c++所引入的feature的支持,并且,它的罗列是非常详细、以时间为顺序的,所以可以作为what is new in c++。
维基百科C++11 维基百科对各个版本的C++进行了总结,可以作为What is new in C++。

C++发展方向

1、C++不断引入新的特性,我们需要从更高地层次来思考这些特性对C++的具体改进,这样我们能够梳理清楚C++的发展脉络,下面是我总结的一些方面。

2、总的来说,C++是遵循在C++design-principle-feature-philosophy章节中,总结的思路在进行演进的。

Value-semantic

C++的一个发展方向就是充分发挥value-semantic,在 C++\Language-reference\Basic-concept\Reference-and-Value-Semantics 章节对这个主题进行了探讨。

User-defined literal

feature 引入版本 章节
User-defined literals for std:: types C++14

Static and compile time

C++的一个显著特点就是: 充分发挥compile time、static type safety,这基本上涵盖了C++的很多内容。在下面章节中,也对此进行了总结:

1、Comparison-of-programming-language\C++VS-C\Type-system

2、C++\Guide\Compile-time-and-run-time

3、CppCoreGuidelines Philosophy

P.4: Ideally, a program should be statically type safe

P.5: Prefer compile-time checking to run-time checking

GP and TMP

NOTE:

GP: generic programming

TMP: template meta-programming

1、提供 uniform、consistent的interface、API、syntax

参见 Uniform-consistent-interface-API-syntax 章节。

2、Template

C++的一个发展发现是对template-meta programming的强化。

feature 引入版本 章节
Constraints and concepts C++20
Abbreviated function templates C++20
class template argument deduction C++17
Type transformation _t aliases Δ C++14 C++\What-is-new-in-C++\C++14\TransformationTrait

Static type safety

充分发挥static compile time是C++的一个重要特征,这保证了C++的static type safety,这在如下章节中进行了讨论:

1、Comparison-of-programming-language\C++VS-C\Type-system

Compile time computation

参见:

1、C++\Guide\Compile-time-and-run-time

Simplify

C++另外一个非常重要的发展方向是: simplify; simplify能够大大增加C++ programmer的研发效率,在Simplify 章节中对这个主题进行了详细探讨。

Performance optimization

C++另外一个非常大的发展方向是: 提高C++ program的performance,在 C++\Guide\Optimization 章节中对这个主题进行了详细探讨。