std:: is_sufficiently_aligned
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definiert in Header
<memory>
|
||
|
template
<
std::
size_t
N,
class
T
>
bool is_sufficiently_aligned ( T * ptr ) ; |
(seit C++26) | |
Überprüft, ob der Zeiger ptr auf ein Objekt zeigt, dessen Ausrichtung einen Wert von mindestens N hat.
Das Verhalten ist undefiniert, wenn
ptr
nicht auf ein Objekt vom Typ
T
zeigt (unter Ignorierung von CV-Qualifizierern auf jeder Ebene).
Inhaltsverzeichnis |
Rückgabewert
true wenn ptr auf ein Objekt zeigt, das mindestens die Ausrichtung N hat; andernfalls false .
Ausnahmen
Wirft nichts.
Hinweise
std::is_sufficiently_aligned
kann als Vorbedingung für
std::assume_aligned
verwendet werden.
| Feature-Test Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_is_sufficiently_aligned
|
202411L
|
(C++26) |
std::is_sufficiently_aligned
|
Mögliche Implementierung
template<std::size_t N, class T> bool is_sufficiently_aligned(T* ptr) { return std::bit_cast<std::uintptr_t>(ptr) % N == 0; } |
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
alignof
(C++11)
|
fragt die Ausrichtungsanforderungen eines Typs ab
(Operator) |
alignas
(C++11)
|
spezifiziert, dass der Speicher für die Variable um einen bestimmten Betrag ausgerichtet sein soll
(Spezifizierer) |
|
(seit C++11)
(veraltet in C++23)
|
definiert den Typ, der als nicht initialisierter Speicher für Typen gegebener Größe geeignet ist
(Klassentemplate) |
|
(C++11)
|
richtet einen Zeiger in einem Puffer aus
(Funktion) |
|
(C++26)
|
ein Typ für ausgerichteten Zugriff auf Elemente von
mdspan
(Klassentemplate) |