6
次のコードでは、アサーションが発生しないはずだと思っていましたが、throwingデストラクタを持つクラスを返す関数の例外を除いて
struct A
{
~A() noexcept(false);
};
A f() noexcept;
int main()
{
static_assert(noexcept(f()), "f must be noexcept");
}
機能f()
は明らかにnoexceptですが、noexcept(f())
はfalseに評価されます。 (gccとclangの両方)
私に何か不足しているか、それともバグですか?
されていますこれはC++ 17のドラフトですか?私はC++ 14標準であなたのパッセージを見つけることができません。 – Simple
@シンプル:はい、頭からです。良い質問、私はこの最後の変更時を知らない。 –
@Simple:2016年2月の会議で不具合報告として受け入れられた[CWG 1992](http://wg21.link/cwg1992)の決議の一部として表現が追加されたように見えます。欠陥があるということは、以前のすべてのリビジョンについて遡及的に修正される可能性があることを意味します。 –