6
在下面的代碼中,我認爲斷言不應該觸發,但它確實。noexcept一個函數返回一個類拋出析構函數
struct A
{
~A() noexcept(false);
};
A f() noexcept;
int main()
{
static_assert(noexcept(f()), "f must be noexcept");
}
功能f()
是noexcept很明顯,但noexcept(f())
被評估爲假。 (在海灣合作委員會和鐺)
我錯過了什麼,或者它是一個錯誤?
是這在C++ 17草案?我無法在C++ 14標準中找到你的passge。 – Simple
@簡單:是的,它是從頭開始的。好問題,我不知道這最後一次發生了什麼變化。 –
@Simple:看起來像在[CWG 1992](http://wg21.link/cwg1992)的決議中添加了措辭,該決議在2016年2月會議上被接受爲缺陷報告。作爲一個缺陷意味着這個問題可以追溯到所有以前的修訂,但是,因爲它基本捕獲了*應該*的含義。 –