Ich versuche, alignas
für Zeiger zu verwenden, die Klassenmitglieder sind, und ehrlich gesagt bin ich nicht sicher, wo ich es setzen sollte.
Zum Beispiel:
%Vor%Ich hoffte, dass die Daten für ptr auf einen 64-Byte-Block ausgerichtet wurden. Mit dem Intel-Compiler tut es das nicht.
Kann mir bitte jemand in die richtige Richtung zeigen?
Wenn Sie das Schlüsselwort alignas(N)
für ein Mitglied einer Klasse verwenden, wird dieses Mitglied entsprechend der angegebenen Ausrichtung ausgerichtet, und nicht auf eine Entität, auf die möglicherweise verwiesen wird. Bei der Initialisierung eines Zeigers mit einem Wert gibt es schließlich keine Kontrolle, um die bereits vorhandenen Objekte auszurichten.
Vielleicht möchten Sie sich std::align()
ansehen, was
Es wird ein entsprechend ausgerichteter Zeiger zurückgegeben, sofern nicht genügend Platz vorhanden ist, um sowohl die Ausrichtungs- als auch die Größenanforderungen zu erfüllen. Wenn es nicht genug Platz gibt, gibt die Funktion einen Nullzeiger zurück.