std::max_align_t
Материал из cppreference.com
Определено в заголовочном файле <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) |
получает требования к выравниванию типа (шаблон класса) |
(C++11) |
проверяет, является ли тип целочисленным типом (шаблон класса) |
Документация C по max_align_t
|