exception_ptr
が何をするか検討している間は、C++ 11標準は、(18.8.5/7)と言うこと:データ競合を導入してはならない同じ例外オブジェクトを参照してくださいexception_ptrオブジェクト上rethrow_exceptionのrethrow_exceptionは本当にコピーではなく同じ例外オブジェクトをスローすることができますか?
使用。 [注意:rethrow_exceptionは同じ例外オブジェクト(というよりコピー)を再スローした場合、その再スロー例外オブジェクトへの同時アクセスは、データ競合を導入することができる...
私はこの奇妙な「ノートケースを見つけることができません。 rethrow_exception
の記載された効果は「例外:pが参照する例外オブジェクト」であるが15.1/3であるため、「例外を投げる」ことは例外オブジェクトと呼ばれる一時オブジェクトをコピー初期化することを要求する。 "
奇妙なメモは、rethrow_exceptionがこのコピー初期化をスキップすることを意味します。しかし、これは本当に可能ですか?
おそらく動いていますか? –
しかし、 'std :: rethrow_exception'は' throw x; '式を使って実装することはできません。 (ただし、 'throw;と似ています。) – aschepler