我正在尝试理解noexcept。我发现全局交换函数通常是这样指定的
void swap (T& x, T& y) noexcept(noexcept(x.swap(y)))
{
x.swap(y);
}
Run Code Online (Sandbox Code Playgroud)
我想了解为什么 noexcept 规范是noexcept(noexcept(x.swap(y)))但不是noexcept(x.swap(y))。
最近,我在一个项目中看到他们将defint int键入为BOOL并用它代替了bool。这样做有什么好处吗?
typedef int BOOL;
Run Code Online (Sandbox Code Playgroud) 我正在阅读一本书中有关智能指针的内容,其中指定不允许抛出自定义删除器。但我无法弄清楚其中的原因。为什么不允许他们投掷?