作者:唐风
C++11已经问世两年了,各大编译器也都加紧跟进对C++11的特性和库的实现(这里有一份GCC,MSVC,CLANG的对C++11的支持情况表)。在我们还没有来得及消化新的C++的时候,C++标准委员会并没有停下。从C++11正式发布到今天,他们一直在为C++14(以及以后的C++17)努力工作着。4月20日,来自C++标准委员会的网站上的一篇新闻说,用于 C++14 的投票草案已经完成。这意味着 C++14的内容基本上要定型了,这其中包括:
- generic lambdas(泛型的lambda表达式,也就是参数可以不再明确地指定,而可以依靠编译器的自动推导)
- dynamic arrays (an improved version of C99 VLAs) (动态数组)
- variable templates (模板变量)
- reader/writer locks (读/写锁)
optional<T>
- standard library user-defined literals (标准库中的用户自定义字面常量)
- make_unique (用于生成unique智能指针的辅助函数)
以及其它的一些标准库的改进。C++14可以看成C++11特性的一个补丁版本,同时也加入了不少在C++11中来不及加入的重要的语言特性(和标准库)。
伴随着 C++14 诞生的还会有下面这几个额外的提案(目前正在并行地工作着)
- File system -- 基于 Boost.FileSystem version 3发展而来的与平台独立的文件系统库
- Networking -- 网络库,目前只是一部分
- Concept Lite -- 由于种种原因在 C++11 中被毙 Concept 的一部分
在下面这个页面中有更多关于 C++14 的一些提案的说明,和“猜想”:http://www.meetingcpp.com/index.php/br/items/the-bristol-papers-the-state-of-c.html。如果有兴趣的话,可以在其中找到很多有意思的东西。
C++标准委员会已经意识到这是一个需要快速变革的时代,他们在为C++的未来做着自己的努力,正是他们的努力,让C++正发生着令人兴奋的变化。
C++的未来会怎么样也许是一个仁者见仁智者见智的事,但是无论怎么样,我喜欢C++!