function template
<exception>
std::make_exception_ptrtemplate <class E> exception_ptr make_exception_ptr (E e) noexcept;
Make exception_ptr
Returns an exception_ptr object that points to a copy of e.The behavior of this function template is equivalent to:
1
2
3
4
5
6
7
template <class E> exception_ptr make_exception_ptr (E e) noexcept {
try {
throw e;
} catch(...) {
return current_exception();
}
}
This function throws no exceptions, but if the function is implemented as returning a pointer to a copy of the currently handled exception, it may return a pointer to a different exception if it fails to allocate storage (bad_alloc) or if the copying process fails (it returns the thrown exception or bad_exception, if possible; or some other unspecified value, otherwise).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// make_exception_ptr example
#include <iostream> // std::cout
#include <exception> // std::make_exception_ptr, std::rethrow_exception
#include <stdexcept> // std::logic_error
int main () {
auto p = std::make_exception_ptr(std::logic_error("logic_error"));
try {
std::rethrow_exception (p);
} catch (const std::exception& e) {
std::cout << "exception caught: " << e.what() << '\n';
}
return 0;
}
exception caught: logic_error
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4