Spec-Zone.ru › C++

std::max_align_t

Определено в заголовке <cstddef>
typedef /*implementation-defined*/ max_align_t;
(с C++11)

std::max_align_t — это тривиальный тип стандартного расположения, чьи требования к выравниванию по крайней мере такие же строгие (большие), как и у каждого скалярного типа.

Примечания

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

std::max_align_t обычно является синонимом самого большого скалярного типа, которым на большинстве платформ является long double, а его требования к выравниванию составляют либо 8, либо 16.

Пример

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

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

16

Ссылки

  • Стандарт C++23 (ISO/IEC 14882:2023):
    • 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) запрашивает требования к выравниванию типа
alignment_of
(C++11)
получает требования к выравниванию типа
(шаблон класса)
is_scalar
(C++11)
проверяет, является ли тип скалярным типом
(шаблон класса)
Документация на C для max_align_t

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/types/max_align_t

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API