ブックC++ Concurrency in Actionは、std::copy_exception
を使用してスローせずに例外を直接保存することが可能であることを将来の例外を保存4.2.4に述べています。しかし、私はstd::copy_exception
が定義されている標準ライブラリヘッダを見つけることができないようです。どこで見つけることができますか?std :: copy_exceptionはどこに定義されていますか?アンソニー・ウィリアムズ
14
A
答えて
20
TL; DR:std::copy_exception
は、最終的なC++ 11標準ため<exception>
にstd::make_exception_ptr
に改名されました。
委員会は、(おそらくboost::copy_exception
から標準にコピー)名copy_exception
は、次の理由で誤解を招くと判断しました。
template <class E>
exception_ptr copy_exception(E e) {
try {
throw e;
} catch (...) {
return current_exception();
}
}
引数としてexception_ptr
で呼び出された場合ならば、関数は、引数として与えられたexception_ptr
のコピーに別のexception_ptr
ポインティングを返すようcopy_exception
関数は、引数のコピーにexception_ptr
を返します。代わりにexception_ptr
引数が指しているものを指すのではなく、このケースではcopy_exception
という名前が誤解を招いていたため、この関数は最終的なC++ 11標準ではstd::make_exception_ptr
に名前が変更されました。この問題の詳細と説明については、C++ Standard Library Defect Report 1130を参照してください。
std::make_exception_ptr
の機能は、<exception>
で定義されています。
関連する問題
- 1. クラスstd :: out_of_rangeは完全に定義されていますか?
- 2. ここで、/ toはどのように定義されていますか?
- 3. ノードはどこに定義されていますか?
- 4. com.intellij.modules.langはどこに定義されていますか
- 5. Widget.Material.Light.TextView.ListSeparatorはどこに定義されていますか?
- 6. Rubyでキーワードはどこに定義されていますか?
- 7. Enum.values()はどこに定義されていますか?
- 8. DEBUGマクロはどこに定義されていますか?
- 9. Rails: "params"はどこに定義されていますか?
- 10. GCCのトークンタイプはどこに定義されていますか?
- 11. アンドロイドSDKバージョンはどこに定義されていますか?
- 12. #this.datasource#は通常どこに定義されていますか?
- 13. エイリアスはどこに定義されていますか
- 14. I18n.localizeはどこでレールに定義されていますか?
- 15. UNS_32はどこに定義されていますか?
- 16. BCRYPT_HASH_FUNCTION_TABLEはどこに定義されていますか?
- 17. KeystoneJS:callHookフックはどこに定義されていますか?
- 18. java.awt.Graphicsのメソッドはどこに定義されていますか?
- 19. アクションメソッド "setElementClass"はどこに定義されていますか?
- 20. tt_news - "newsMoreLink"レジスタはどこに定義されていますか?
- 21. Poco ByteOrder :: ToNetwork()はどこに定義されていますか?
- 22. _startシンボルはどこに定義されていますか
- 23. フォントファミリはどこに定義されていますか?
- 24. クラス "セクション"はどこに定義されていますか?
- 25. Clang:-Wallオプションはどこに定義されていますか?
- 26. セッションタイムアウトはどこで定義されていますか?
- 27. kill_proc_infoはどこで定義されていますか?
- 28. mallocはどこでコードで定義されていますか?
- 29. php関数はどこで定義されていますか?
- 30. fetch()とFormData()はどこで定義されていますか?