function
<memory>
std::get_pointer_safetypointer_safety get_pointer_safety() noexcept;
Get pointer safety
Returns the pointer safety setting used by the implementation, as a value of type pointer_safety, which can take any of the following values: value description relaxed The validity of a pointer value does not depend on whether it is a safely-derived pointer value. preferred The validity of a pointer value does not depend on whether it is a safely-derived pointer value.reinterpret_cast
), including to and from other pointer types or integral types (at least as large as intptr_t), or from sequences of characters with the same size and alignment.
When an implementation uses strict pointer safety, any object dynamically allocated using the default definition of operator new which cannot be traced either by a safely-derived pointer or an equivalent integer representation may be automatically destroyed, invalidating any pointer values that may point to it.
Notice that his does not affect memory allocated dynamically by other means, such as using C-library's malloc or custom redefinitions of operator new.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// get_pointer_safety example
#include <iostream>
#include <memory>
int main() {
std::cout << "Pointer safety: ";
switch (std::get_pointer_safety()) {
case std::pointer_safety::relaxed: std::cout << "relaxed"; break;
case std::pointer_safety::preferred: std::cout << "preferred"; break;
case std::pointer_safety::strict: std::cout << "strict"; break;
}
std::cout << '\n';
return 0;
}
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