std::nothrow
Aus cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
<metanoindex/>
<tbody> </tbody>| definiert in Header <new>
|
||
extern const std::nothrow_t nothrow; |
||
std::nothrow is a constant of type std::nothrow_t used to disambiguate the overloads of throwing and non-throwing
.
Beispiel
#include <iostream>
#include <new>
int main()
{
try {
while (true) {
new int[100000000ul]; // throwing overload
}
} catch (const std::bad_alloc& e) {
std::cout << e.what() << '\n';
}
while (true) {
int* p = new(std::nothrow) int[100000000ul]; // non-throwing overload
if (p == nullptr) {
std::cout << "Allocation returned nullptr\n";
break;
}
}
}
Output:
std::bad_alloc
Allocation returned nullptr
Siehe auch
| Marker, um eine Allokationsfunktion auszuwählen, die keine Ausnahmen auslöst (Klasse) | |
| Speicheranforderungsfunktion (Funktion) | |