Пространства имён
Варианты
Действия

std::max_align_t

Материал из cppreference.com
< cpp‎ | types
 
 
Библиотека метапрограммирования
Свойства типов
Категории типов
(C++11)
(C++14)  
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Свойства типов
(C++11)
(C++11)
(C++14)
(C++11)
(C++11)(до C++20*)
(C++11)(устарело в C++20)
(C++11)
Константы свойств типа
Метафункции
(C++17)
Поддерживаемые операции
Запросы отношений и свойств
Модификации типов
(C++11)(C++11)(C++11)
Преобразования типов
(C++11)(устарело в C++23)
(C++11)(устарело в C++23)
(C++11)
(C++11)
(C++17)

(C++11)(до C++20*)(C++17)
Рациональная арифметика времени компиляции
Целочисленные последовательности времени компиляции
 
Определено в заголовочном файле <cstddef>
typedef /*определено реализацией*/ 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) запрашивает требования к выравниванию типа[править]
получает требования к выравниванию типа
(шаблон класса) [править]
(C++11)
проверяет, является ли тип целочисленным типом
(шаблон класса) [править]