风云剑 发表于 2020-3-19 16:02:27

能稳定地干活才是硬道理!
你说的有一定道理,在生产环境下,一般是避免追新的,这里其实是有历史包袱问题。
但郭老大的这个软件其实没什么历史包袱,甚至可以完全重来,这种情况下,紧跟新潮流是正常举动。

风云剑 发表于 2020-3-19 16:05:50

而且,我感觉郭老大是一个追求极致的人,要求完美无瑕,这种情况当然是使用新标准更好了,毕竟,十几年来,标准的更新不也这个目标吗?

gxqcn 发表于 2020-3-19 16:55:24

知我者,风云剑也

gxqcn 发表于 2020-3-25 14:27:18

VS2019 今天刚推出了更新 16.5.1,经测试,仍未修复

wayne 发表于 2020-3-27 12:38:47

我搜了下, 三路比较运算符<=> 是 C++20才引入的,根据编译器支持清单来看, https://zh.cppreference.com/w/cpp/compiler_support
说是 VS编译器的版本 19.20*       开始支持.

gxqcn 发表于 2020-3-27 14:23:05

现在最新的 _MSC_VER 被定义为 1925,即表示 MS VC++ 编译器主版本号为 19,次版本号为 25;
上面链接提到的 19.20*,在 ToolTip 中提示为“VS 2019 16.0”,也就是说微软对该标准早就实现了,只是略有瑕疵。

wayne 发表于 2020-3-28 09:39:12

太新了. MSVC都跑到前头了, gcc 要 版本10 才支持. 而 https://gcc.gnu.org/ 上还没有正式公开10的下载链接...

wayne 发表于 2020-3-28 11:08:22

这个按照我的理解, 还不能说是三路比较运算符的bug, 因为代码里面争议比较大的 是{}初始化, 我一般都是在表达式里 慎用多个++的.
const auto cmp{ ++a <=> ++b }
const auto cmp{ *++p1 <=> *++p2 }
我们换成
++p1; ++p2;
const auto cmp{ *p1 <=> *p2 };就没事了.
=========
这里面的争议是我们用表达式来初始化变量.这个表达式的运算应该 是在 编译阶段完成的.编译阶段如果做不到就会退化成 普通表达式, 在运行期 来做.
..

gxqcn 发表于 2020-3-28 11:09:09

现在 MS 对标准的支持越来越好了:)

wayne 发表于 2020-3-28 13:18:49

YouTube上有一个视频, 叫做 Forbidden C++ , 就是枚举一些C++里用C的特性的时候出现的各种坑,比如全局变量,宏, goto, using namespace,娱乐性很强,:lol .

https://youtu.be/j0_u26Vpb4w
页: 1 [2] 3 4
查看完整版本: 发现微软编译器三路比较运算(<=>)的一个大 bug!