yacl icon indicating copy to clipboard operation
yacl copied to clipboard

调研:YACL 即将升级到 C++20 并放弃对老版本 C++ 的兼容

Open usafchn opened this issue 1 year ago • 3 comments

鉴于 C++20 带来了许多语言新特性,可以提高代码可读性,简化写法,提升 meta programing 能力,提升性能,加快编译速度等等,YACL/HEU/SPU/SCQL 计划从 C++17 全面迁移到 C++20。

目前 YACL 最低要求是 C++17,GCC > 11.2,升级后最低要求 C++20,GCC > 11.2

对使用者的影响

仅影响直接通用 C++ 调用 YACL 的用户,通过其它语言接口(Python SDK)的用户不受影响。

对于 C++ 使用者:YACL 升级 C++20 后直接依赖项目也需要在 20 模式下编译,其中 GCC 11.2 已经支持 C++20 语法,编译器不用变,需要做的是 GCC 编译参数把 -std=c++17 改为 -std=c++20

反馈

考虑到一些项目从 C++17 升到 20 后可能编译不过,如果您对升级 20 有什么疑问或需要技术支持,请留言;或者您确实必须依赖 C++17 版本,也请留言告诉我们

usafchn avatar Dec 08 '23 08:12 usafchn

请问有考虑用std::format代替现在用的第三方libfmt库吗?还有std::span代替absl::span?

maths644311798 avatar Aug 14 '24 01:08 maths644311798

请问有考虑用std::format代替现在用的第三方libfmt库吗?还有std::span代替absl::span?

no,这么做并没有明显的收益,除非我们哪天可以完全干掉 libfmt 和 abseil

anakinxc avatar Aug 14 '24 02:08 anakinxc

请问有考虑用std::format代替现在用的第三方libfmt库吗?还有std::span代替absl::span?

需要先升级到 C++20 才能替换

usafchn avatar Aug 14 '24 02:08 usafchn