Namespaces
Variants

std::meta::alignment_of

С ru.cppreference.net
< cpp | meta
 
 
 
Библиотека отражения
Запросы доступности членов
Идентификация области видимости
Запросы членов отражения
Отражение аннотаций
Извлечение значений
Подстановка отражения
Отражение результата выражения
Генерация определения класса

Первичные категории типов
Составные категории типов
Свойства типов ➜
Отношения типов
 
Типы и запросы отражения
Запросы отражения
Запросы размещения отражения
Свойства типов
Запросы свойств типов
 
Определён в заголовке <meta>
consteval std::size_t alignment_of( std::meta::info r );
(начиная с C++26)

Возвращает требование выравнивания типа или (под)объекта, представленного r.

Параметры

r - значение отражения

Возвращаемое значение

Если r представляет тип «ссылка на T», возвращает alignof(T*).

В противном случае, если r представляет тип U, возвращает alignof(U).

В противном случае, если r представляет переменную или объект, возвращает требование выравнивания переменной или объекта.

В противном случае, если r представляет отношение прямого базового класса, возвращает требование выравнивания базового класса (т.е. std::meta::alignment_of(std::meta::type_of(r))).

В противном случае, если r представляет нестатический элемент данных M класса C, возвращает требование выравнивания соответствующего прямого элемента-подобъекта полного объекта типа C.

В противном случае, r представляет описание элемента данных, возвращает его значение выравнивания, если не ⊥, или std::meta::alignment_of(std::meta::type_of(r)) в противном случае.

Исключения

Выбрасывает std::meta::exception, если не выполнены все следующие условия:

  • std::meta::dealias(r)r представляет одно из следующего:
  • Если std::meta::dealias(r) представляет тип, std::meta::is_complete_type(r) является true.

Примечания

Эта функция обрабатывает «ссылку на T» так же, как «указатель на T». Это соответствует представлению нестатических ссылочных элементов.

Пример

См. также

alignof (C++11) запрашивает требования выравнивания типа
(оператор)