# std::nothrow_t

< cpp‎ | memory‎ | new

定义于头文件 `<new>` |  |
struct nothrow_t {}; |  | (C++11 前)
struct nothrow_t { explicit nothrow_t() = default; }; |  | (C++11 起)

`std::nothrow_t` 是用于区分抛出与不抛出分配函数重载的空类类型。

### 缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

DR | 应用于 | 出版时的行为 | 正确行为
--- | --- | --- | ---
LWG 2510 | C++11 | 默认构造函数为非 explicit ，能导致歧义 | 使之为 explicit

### 参阅

nothrow | 用于选择不抛出分配函数的 `nothrow_t` 类型对象 (常量)
operator new operator new[] | 分配函数 (函数)