几天前,C++20 草案已经获得了标准委员会的全票通过,C++2a 草案讨论的几个重要内容,比如“概念(concept)”、“范围库(Ranges Library)”、“协程(Coroutines)” 和 “模块(Module)” 都加到 C++20 的标准中了,剩下的就是看编译器厂商的支持速度了。目前看 CLANG 、GCC 和 Microsoft 是比较积极的三家,语言特性和库支持的最快的是 GCC,其次是 CLANG 和 Visual C++,估计最快到年底就能看到支持全部 C++ 20 特性的编译器了。
图(1)C++ 20 的 Big Four
毫无疑问,在目前主流的编程语言中,C++ 是最难掌握的编程语言,没有之一。我常常和朋友调侃,C++ 是最适合做高校考试用的语言,因为 C++ 的内容繁杂,知识点多,当然,“坑”也多,非常适合出题考试。从易到难,大学四年考题都不会有重复的。除了对初学者门槛太高,传统的 C++ 语言特性上支持的也很弱,与其他编程语言相比,做同样的功能,C++ 往往需要写更多的代码。不过从 C++11 开始,一直到 C++17,这种情况开始有了明显地改善,各种之前被 C