日常使用中的 Noexcept:何时以及为何
noexcept 关键字为 C 函数提供了有希望的优化,可以保证它们不会抛出异常。在认识到它的好处的同时,您可能对其实际应用存在疑问。这里有一些澄清。
1.何时附加 Noexcept
您不必用 noexcept 注释每个函数。当明确该函数永远不会抛出异常时使用它。如果您不确定,请考虑以下场景:
2.性能优势
Noexcept 主要通过允许某些编译器优化来影响性能。虽然现代编译器可能还没有充分利用 noexcept,但它有几个好处:
具体示例
下面是添加 noexcept 可以提高性能的示例:
class MyClass { public: MyClass() noexcept = default; MyClass(const MyClass& other) noexcept = default; }; int main() { std::vector<MyClass> v; for (int i = 0; i < 100000; i++) { v.push_back(MyClass()); } }
通过标记复制构造函数 noexcept ,编译器可以使用更高效的移动操作来构建对象,从而加快执行速度。
以上是C `noexcept`:什么时候应该使用它以及性能增益是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!