ISO C++是否尝试过标准化语言中的unsafe代码块/函数/命名空间?
是否有尝试将
unsafe关键字引入标准ISO C++? unsafe是C#、Rust这类语言里常用的特性,核心逻辑是先定义出语言的“安全”子集,任何用到子集外特性的代码都必须用unsafe标记,方便在大型代码库或者评估第三方依赖时,更好地管控那些非安全代码。放到C++的场景里:
- 目前没有标准化提案:在Bjarne Stroustrup 2021年的文章《Thriving in a crowded and changing world: C++ 2006–2020》里,完全没提到过要把
unsafe纳入标准C++的相关提案。 - 仅存在非标准的自制方案:目前能查到的相关实现,只有一个基于
clang-query的自制解决方案,不属于官方标准范畴。 - 官方态度有过转变:
- 初期对
unsafe这类思路不看好:文章里提到,过去尝试禁用不安全特性的努力屡次失败,而创建C++安全子集的提议也因为各种原因没法落地。 - 后期转向支持相关思路:文章提出了“子集-超集”方法(SELL),对类似
unsafe这种通过标记来管控非安全代码的思路表示认可。
- 初期对
内容的提问来源于stack exchange,提问作者user7610
相关产品推荐
相关产品推荐

