风云剑
发表于 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