std::exception_ptr
提供: cppreference.com
![]() |
このページは、Google 翻訳を使って英語版から機械翻訳されました。
翻訳には誤りや奇妙な言い回しがあるかもしれません。文章の上にポインタをおくと、元の文章が見れます。誤りを修正して翻訳を改善する手助けをしてください。翻訳についての説明は、ここをクリックしてください。 |
Defined in header <exception>
|
||
typedef /*unspecified*/ exception_ptr; |
(C++11およびそれ以降) | |
std::exception_ptr
スローとstd::current_exceptionで捕捉された例外オブジェクトを管理Null許容ポインタのようなタイプです。例外が再スローとcatch節で処理されるかもしれないところstd::exception_ptr
のインスタンスは、おそらく別のスレッドで、別の関数に渡すことができます.Original:
std::exception_ptr
is a nullable pointer-like type that manages an exception object which has been thrown and captured with std::current_exception. An instance of std::exception_ptr
may be passed to another function, possibly on another thread, where the exception may be rethrown and handled with a catch clause.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
std::exception_ptr
nullポインタであるデフォルト·構築、それは例外オブジェクトを指していない.Original:
Default-constructed
std::exception_ptr
is a null pointer, it does not point to an exception object.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
std::exception_ptr
の2つのインスタンスは、それらが同じ例外オブジェクトでnullまたは両方のポイントの両方である場合にのみ等しいと比較.Original:
Two instances of
std::exception_ptr
compare equal only if they are both null or both point at the same exception object.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
std::exception_ptr
任意の算術、列挙体、またはポインタ型に暗黙的に変換できません。それはbool
へ転換です.Original:
std::exception_ptr
is not implicitly convertible to any arithmetic, enumeration, or pointer type. It is convertible to bool
.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
std::exception_ptr
によって参照される例外オブジェクトは、それを参照している少なくとも1std::exception_ptr
が残っている限り有効なままです。std::exception_ptr
は、共有所有のスマートポインタです.Original:
The exception object referenced by an
std::exception_ptr
remains valid as long as there remains at least one std::exception_ptr
that is referencing it: std::exception_ptr
is a shared-ownership smart pointer.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[編集] 例
このコードを実行します
#include <iostream> #include <string> #include <exception> #include <stdexcept> void handle_eptr(std::exception_ptr eptr) // passing by value is ok { try { if (eptr != std::exception_ptr()) { std::rethrow_exception(eptr); } } catch(const std::exception& e) { std::cout << "Caught exception \"" << e.what() << "\"\n"; } } int main() { std::exception_ptr eptr; try { std::string().at(1); // this generates an std::out_of_range } catch(...) { eptr = std::current_exception(); // capture } handle_eptr(eptr); } // destructor for std::out_of_range called here, when the eptr is destructed
出力:
Caught exception "basic_string::at"
[編集] 参照
(C++11) |
例外オブジェクトからstd::exception_ptrを作成します Original: creates an std::exception_ptr from an exception object The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (関数テンプレート) |
(C++11) |
captures the current exception in a std::exception_ptr (関数) |
(C++11) |
std::exception_ptrから例外がスローされます Original: throws the exception from an std::exception_ptr The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (関数) |