secretflow / yacl

YACL (Yet Another Common crypto library) is a C++ library that contains cryptography, network and io modules which other SecretFlow code depends on.

Home Page:https://www.secretflow.org.cn/en/docs/yacl/main/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

usafchn opened this issue · 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 版本,也请留言告诉我们