博客 阅读时间 2 分钟

对未来 C++ 标准的提案

分享本文
Proposals for future C++ standards

现代 C++(Modern C++)指的是 C++ 编程语言超越其最初设计原则的演进,融入了自该语言诞生以来出现的更新特性、惯用法和最佳实践。

C++ 由国际标准化组织(ISO)进行标准化。C++ 标准通常每隔几年发布一次,为语言带来新特性和改进。

现代 C++ 引入了一系列旨在提高代码清晰度、安全性和性能的新特性。智能指针是一个很好的补充。确实,与裸指针相比,它们提供了更安全、更便捷的内存管理。

智能指针现在很流行,并在 C++ 项目中被广泛使用。快速浏览 GitHub 上一些最流行的 C++ 项目就会发现,智能指针往往是管理指针的首选方式。

然而,裸指针仍然是语言的一部分,许多开发者仍在继续使用它们。那么,为什么不通过允许编译器强制使用智能指针来帮助开发者呢?该提案的内容是添加一个新属性,用于指定某个类不能使用裸指针作为字段类型或方法参数类型。

这样,编译器就可以阻止在该类中使用裸指针 :)

此外,我认为添加一个 [[modern]] 属性会很有用,用于表明某个类遵循现代 C++ 实践。

Future C++ standards

编译器随后可以拒绝该类中的遗留 C++ 做法。

另一个建议涉及共享指针的声明方式。既然智能指针现在已被广泛使用,为什么不提供一种声明共享指针的简写语法呢?不必再输入:

std::shared_ptr<Test> ptr_name;

您只需写:

ref Test ptr_name;

虽然这些提案可能不会为语言引入重大的新能力,但提供让编译器能够保护代码免受遗留 C++ 做法带来的某些陷阱的机制,将是很有价值的。

分享本文