std::max_align_t
Определён в заголовочном файле <cstddef> | ||
|---|---|---|
typedef /* implementation-defined */ max_align_t; | (начиная с C++11) |
std::max_align_t — это тип стандартного формата TrivialType(до C++26)TriviallyCopyable тип(начиная с 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++11) | проверяет, является ли тип скалярным (шаблон класса) |
Документация по C для max_align_t |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/types/max_align_t