Namespaces
Variants

std:: max_align_t

From cppreference.net
Utilities library
Определено в заголовочном файле <cstddef>
typedef /* implementation-defined */ max_align_t ;
(начиная с C++11)

std::max_align_t является стандартным компоновочным TrivialType (до C++26) TriviallyCopyable типом (начиная с C++26) , чье требование выравнивания является как минимум таким же строгим (таким же большим), как и у любого скалярного типа.

std:: is_trivially_default_constructible_v < std :: max_align_t > является true .

Содержание

Примечания

Указатели, возвращаемые функциями выделения памяти, такими как std::malloc , имеют подходящее выравнивание для любого объекта, что означает, что они выровнены как минимум так же строго, как std::max_align_t .

Пример

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

Возможный вывод:

16

Ссылки

  • Стандарт C++23 (ISO/IEC 14882:2024):
  • 17.2.4 Размеры, выравнивания и смещения [support.types.layout] (стр: 504-505)
  • Стандарт C++20 (ISO/IEC 14882:2020):
  • 17.2.4 Размеры, выравнивания и смещения [support.types.layout] (стр: 507-508)
  • Стандарт C++17 (ISO/IEC 14882:2017):
  • 21.2.4 Размеры, выравнивания и смещения [support.types.layout] (стр: 479)
  • Стандарт C++14 (ISO/IEC 14882:2014):
  • 18.2 Типы [support.types] (стр: 443-444)
  • Стандарт C++11 (ISO/IEC 14882:2011):
  • 18.2 Типы [support.types] (стр: 454-455)

Смотрите также

alignof (C++11) запрашивает требования к выравниванию типа
(оператор)
получает требования к выравниванию типа
(шаблон класса)
(C++11)
проверяет, является ли тип скалярным типом
(шаблон класса)
Документация C для max_align_t