|
|
Defined in header <memory> | ||
template<std::size_t N,class T> bool is_sufficiently_aligned( T* ptr); | (since C++26) | |
Checks whether the pointerptr points to an object whose alignment has a value of at leastN.
The behavior is undefined ifptr does not point to an object of typeT
(ignoring cv-qualification at every level).
Contents |
true ifptr points to an object that has alignment at leastN; otherwisefalse.
Throws nothing.
std::is_sufficiently_aligned
can be used as a precondition tostd::assume_aligned.
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_lib_is_sufficiently_aligned | 202411L | (C++26) | std::is_sufficiently_aligned |
template<std::size_t N,class T>bool is_sufficiently_aligned(T* ptr){returnstd::bit_cast<std::uintptr_t>(ptr)% N==0;} |
This section is incomplete Reason: no example |
alignof (C++11) | queries alignment requirements of a type (operator)[edit] |
alignas (C++11) | specifies that the storage for the variable should be aligned by specific amount (specifier)[edit] |
(since C++11)(deprecated in C++23) | defines the type suitable for use as uninitialized storage for types of given size (class template)[edit] |
(C++11) | aligns a pointer in a buffer (function)[edit] |
(C++26) | a type for aligned access to elements ofmdspan (class template)[edit] |