alignof operator (начиная с C++11)
Материал из cppreference.com
Запрашивает требования по выравниванию для указанного типа
Содержание |
[править] Синтаксис
alignof( type-id )
|
|||||||||
Возвращает значение типа std::size_t.
[править] Объяснение
Возвращает значение выравнивания в байтах, требуемое для любого экземпляра типа type-id, являющегося полным типом, типом массива или ссылочным типом.
Для ссылочного типа возвращается выравнивание того типа, на который тип ссылается; для типа массива возвращается требования по выравниванию типа элемента этого массива.
[править] Ключевые слова
[править] Примечания
Смысл и свойства значения, возвращаемого alignof, см. выравнивание.
[править] Пример
Запустить этот код
#include <iostream> struct Foo { int i; float f; char c; }; struct Empty {}; struct alignas(64) Empty64 {}; int main() { std::cout << "Выравнивания для типа" "\n" "- char : " << alignof(char) << "\n" "- pointer : " << alignof(int*) << "\n" "- class Foo : " << alignof(Foo) << "\n" "- empty class : " << alignof(Empty) << "\n" "- alignas(64) Empty: " << alignof(Empty64) << "\n"; }
Возможный вывод:
Выравнивания для типа - char : 1 - pointer : 8 - class Foo : 4 - empty class : 1 - alignas(64) Empty: 64
[править] См. также
| требования по выравниванию | ограничивают значения адресов, по которым может размещаться объект |
| alignas спецификатор | указывает, что для хранения переменной должны быть согласованы конкретные (C++11) сумму
Оригинал: specifies that the storage for the variable should be aligned by specific amount (C++11) Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
| (C++11) |
Получает требования к выравниванию типа (шаблон класса) |

