<分区>
我曾经专业地使用 C++ 进行编程,但那是很久以前的事了。现在我回到它。男孩,C++ 进化了!
我一直在研究 C++11 中引入的最新特性,包括 lambda 表达式、良好的多线程支持(以前只支持 boost 的东西)等。
最近,在我的 Ubuntu 16.04 LTS 机器上,我一直在这样编译:
g++ -std=c++11 filename.cpp
但是,显然还有 C++14 和 C++17。如果我想完全了解现代 C++ 编程实践,我应该改为像这样编译吗?
g++ -std=c++17 filename.cpp
假设我的代码以任何一种方式编译,有什么理由不应该只使用 C++17 编译我的所有新代码?
我已经在深入研究 C++14 中的 shared_timed_mutex
,但还没有玩过更新的东西,比如 atomic
,它在 C++17 中。因此,在某些方面,我想我最终会需要 C++17。
我只是想了解在编译时始终使用 C++17 是否对我有任何伤害。
为了提供更多上下文,我只针对一个平台 (Ubuntu Linux) 进行编译。无需考虑向后兼容性或其他操作系统。考虑到这一点,考虑到我希望学习最新的 C++ 功能,我是否有任何理由不应该总是使用 C++17 进行编译?
或者,换句话说,截至今天,2018 年 4 月 11 日,我是否可以假设使用 -std=c++17
进行编译使用完全发布的功能,其中没有任何一项是实验性的?