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) | запрашивает требования к выравниванию типа |
|
(C++11) | получает требования к выравниванию типа (шаблон класса) |
|
(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