Namespaces
Variants

std::max_align_t

Начиная с ru.cppreference.net
 
 
Библиотека утилит
Поддержка языка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования возможностей библиотеки (C++20)
Утилиты программ
Функции с переменным числом аргументов
Поддержка корутин (C++20)
Поддержка контрактов (C++26)
Трёхстороннее сравнение
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Общие утилиты
Операторы отношений (устарело в C++20)
 
 
Определён в заголовке <cstddef>
typedef /* implementation-defined */ max_align_t;
(начиная с C++11)

std::max_align_t — это стандартно-расположенный ТривиальныйТип(до C++26)ТривиальноКопируемый тип(начиная с 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