1
(::new (std::declval< void * >()) T())->~T()
は意味がありません(noexcept
の意味ではありますが、式の型には意味がありません)単純なT()
に相当します。多くの場合、グローバルでもクラススコープでもoperator new
に過負荷がかかっていないとします。プレースメントnewプラスデストラクタと単純な値の初期化noexcept semantic
多くの場合、型形質でT()
オペレータnoexcept()
の内側で使用され、別のコンストラクタのみがnoexcept
であるかどうかを判断します。確かにそれは間違っています。
ここでは、T()
は、デフォルトのコンストラクタまたは他のコンストラクタの呼び出しのいずれかであると見なすことができます。
フェアを取得しようと訴えるべきです。私の間違い。私は 'noexcept'センスだけを考えたいと思う。質問を編集できるようにしてください。 – Orient