C++ vector扩容解析中,noexcept关键字在哪些长尾应用场景下被广泛使用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1707个文字,预计阅读时间需要7分钟。
C++11引入了关键字`noexcept`,用于指定函数不会抛出异常。以下是简化后的内容:
cppC++11提供了`noexcept`关键字,用于标记函数不会抛出异常:- `void foo() noexcept;` // 指定foo函数不会抛出异常- `void foo2() noexcept(true);` // 与foo相同,显式指定不会抛出异常- `void bar() noexcept;` // 与foo相同,直接指定不会抛出异常
c++11提供了关键字noexcept,用来指明某个函数无法——或不打算——抛出异常:
void foo() noexcept; // a function specified as will never throw
void foo2() noexcept(true); // same as foo
void bar(); // a function might throw exception
void bar2() noexcept(false); // same as bar
所以我们需要了解以下两点:
noexcept有什么优点,例如性能、可读性等等。
需不需要在代码中大量使用noexcept。
noexcept优点
我们先从std::vector入手来看一下第一点。
本文共计1707个文字,预计阅读时间需要7分钟。
C++11引入了关键字`noexcept`,用于指定函数不会抛出异常。以下是简化后的内容:
cppC++11提供了`noexcept`关键字,用于标记函数不会抛出异常:- `void foo() noexcept;` // 指定foo函数不会抛出异常- `void foo2() noexcept(true);` // 与foo相同,显式指定不会抛出异常- `void bar() noexcept;` // 与foo相同,直接指定不会抛出异常
c++11提供了关键字noexcept,用来指明某个函数无法——或不打算——抛出异常:
void foo() noexcept; // a function specified as will never throw
void foo2() noexcept(true); // same as foo
void bar(); // a function might throw exception
void bar2() noexcept(false); // same as bar
所以我们需要了解以下两点:
noexcept有什么优点,例如性能、可读性等等。
需不需要在代码中大量使用noexcept。
noexcept优点
我们先从std::vector入手来看一下第一点。

