- 主题:3202年了,c++项目用哪个标准比较好
98/03太考古,即使不用模板,没有auto, lambda 也不太舒服,肯定不用了
20 比较新,工具支持还不完美,这个坑最好还是不踩
那比较保守的11/14 和改动比较大的 17 之间,选择哪个好呢?
用模板的话,17里的 if constexpr 还是挺好的
17的支持现在还有大的坑要避吗?
--
FROM 221.217.26.*
【 在 ziqin 的大作中提到: 】
: 11, 17是主版本的,14, 20是升级完善版,论坑,还是17多一些
: 20不碰coroutine没什么坑
:
20的module都实现好了?可以放心用?
--
FROM 221.217.26.*
【 在 hgoldfish 的大作中提到: 】
: c++11 吧。新的标准也没啥用。
:
新标准经常有个别功能挺好用的
--
FROM 221.217.26.*
【 在 newzzdx 的大作中提到: 】
: C++20最好
但是最新的标准,工具支持有个成熟和稳定的过程
项目毕竟不是大作业,为稳妥起见,一般都是稍微保守一些
--
FROM 221.217.26.*
【 在 frosen 的大作中提到: 】
: 11必须要
: 可以完全放弃指针那个坑货
: 再新的版本多了啥特性完全感觉不出来
确实大多数人用不到11之后新增的功能
但也确实有些部分的功能在特定的场景下,能省很多麻烦
--
FROM 221.217.26.*
【 在 z16166 的大作中提到: 】
: 取决于哪个编译器
: MSVC的C++20支持,官方早就宣布全部实现而且可以用于生产了,最近这些年MSVC的步伐很快,早已不是MSVC 6那个时代的印象了
: gcc和clang的C++20还缺一些
: ...................
以往的经验是vc的进度稍微慢一些。现在反而更快了?
--
FROM 221.217.26.*
【 在 GoGoRoger 的大作中提到: 】
: 这有啥可想的,稳定可靠的前提下,越新越好,我们 17。
发自「今日水木 on M2007J17C」
稳定可靠之外,还有个性能也是需要考量的因素
比如引入某个功能之后,编译速度有没有大幅变化
17现在足够稳定可靠了吗
--
FROM 221.217.26.*
【 在 ziqin 的大作中提到: 】
: 讲真,module似乎没什么大用,除了编译快一些,发布的时候又不能发布module
:
编译快就是很大的福利啊
如果将来能够进化到像现代语言那样,不需要头文件和cpp分离
可以只用一个文件,c++程序员的生活就更更幸福一些
--
FROM 221.217.26.*
【 在 ziqin 的大作中提到: 】
: 不写模板和高性能计算,20的确用处不大
: 一旦涉及高性能计算,必须constexpr, 必须literal,必须[[likely]], [[unlikely]], 必须能compile time的就compile time,必须std::variant来代替基类指针, 必须varidic template, 写trait必须folding expression,另外23里加了flat_map和flat_hash_map也是必用。
: 简直不能更多
: ...................
这些其实都是编译时间和编程时间的交易
所谓的高性能计算,其实应用范围很窄,很多地方手撸就可以
必须的程度其实是需要看算总账的结果吧
--
FROM 221.217.26.*
【 在 mopo 的大作中提到: 】
: 不考虑遗留代码、模块集成和os限制的话当然越新越好,而且现在有docker的隔离os也不是什么问题了
也不是。新工具实现经常不完善,有各种或明或暗的坑
等你掉坑里后悔想撤退的时候,沉没成本肯定已经比较高了
生产型项目保守谨慎,不是天上掉下来的,都是以前的血泪经验换来的
--
FROM 222.71.215.*