20

このコード例では:

explicit MyClass(std::wstring text) noexcept;

ここの使い方はnoexcept正しいですか?wstring構築時にスローされる可能性がありますが、コンストラクターにいる前またはコンストラクターにいる間にスローが発生しますか?

編集:これは、値渡しのパラメーターを取る任意の関数に一般化できるとします。

4

1 に答える 1

22

関数パラメーターの構築と破棄は、呼び出し元のコンテキストで発生します。いいえ、textスローの構築であれば、それは違反ではありませんnoexcept

すぐに人々はコメントして仕様の引用を求めるでしょう:)それで私はあなたに5.2.2p4をあげます

各パラメーターの初期化と破棄は、呼び出し元の関数のコンテキスト内で発生します。

于 2011-10-02T18:27:57.477 に答える