Alloue un tampon via new char[sizeof(T)]
garanti pour allouer de la mémoire qui est aligné correctement pour le type T
,, où tous les membres de l' T
a leur naturel, la mise en œuvre définies, l'alignement (qui est, vous n'avez pas utilisé l' alignas
mot-clé à modifier leur alignement).
J'ai vu cette garantie faite dans les quelques réponses ici, mais je ne suis pas tout à fait clair comment la norme arrive à cette garantie. 5.3.4-10 de la norme donne l'exigence de base: pour l'essentiel, new char[]
doit être aligné à la max_align_t
.
Ce qui me manque, c'est le bit qui, dit - alignof(T)
sera toujours valide l'alignement avec une valeur maximale de max_align_t
. Je veux dire, il semble évident, mais il doit l'résultant de l'alignement d'une structure à la plupart des max_align_t
? Même point 3.11-3 dit prolongée alignements peuvent être pris en charge, donc peut le compilateur décide de son propre classe est une sur-alignés type?