std::meta::alignment_of
| Определён в заголовке <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)
|
запрашивает требования выравнивания типа (оператор) |