Namespaces
Variants

std:: max_align_t

From cppreference.net
Utilities library
Défini dans l'en-tête <cstddef>
typedef /* implementation-defined */ max_align_t ;
(depuis C++11)

std::max_align_t est un type standard-layout TrivialType (jusqu'en C++26) TriviallyCopyable type (depuis C++26) dont l'exigence d'alignement est au moins aussi stricte (aussi grande) que celle de tout type scalaire.

std:: is_trivially_default_constructible_v < std :: max_align_t > est true .

Table des matières

Notes

Les pointeurs retournés par les fonctions d'allocation telles que std::malloc sont correctement alignés pour tout objet, ce qui signifie qu'ils sont alignés au moins aussi strictement que std::max_align_t .

Exemple

#include <cstddef>
#include <iostream>
int main()
{
    std::cout << alignof(std::max_align_t) << '\n';
}

Sortie possible :

16

Références

  • Norme C++23 (ISO/CEI 14882:2024) :
  • 17.2.4 Tailles, alignements et décalages [support.types.layout] (p: 504-505)
  • Norme C++20 (ISO/CEI 14882:2020) :
  • 17.2.4 Tailles, alignements et décalages [support.types.layout] (p: 507-508)
  • Norme C++17 (ISO/CEI 14882:2017) :
  • 21.2.4 Tailles, alignements et décalages [support.types.layout] (p: 479)
  • Norme C++14 (ISO/CEI 14882:2014) :
  • 18.2 Types [support.types] (p: 443-444)
  • Norme C++11 (ISO/CEI 14882:2011) :
  • 18.2 Types [support.types] (p: 454-455)

Voir aussi

alignof (C++11) interroge les exigences d'alignement d'un type
(opérateur)
obtient les exigences d'alignement du type
(modèle de classe)
(C++11)
vérifie si un type est un type scalaire
(modèle de classe)
Documentation C pour max_align_t