std::meta::alignment_of
来自cppreference.com
| 在标头 <meta> 定义
|
||
| |
(C++26 起) | |
返回 r 所表示的类型或(子)对象的对齐要求。
参数
| r | - | 一个反射值 |
返回值
如果 r 表示类型“T 的引用”,则返回 alignof(T*)。
否则,如果 r 表示类型 U,则返回 alignof(U)。
否则,如果 r 表示变量或对象,则返回该变量或对象的对齐要求。
否则,如果 r 表示直接基类关系,则返回基类的对齐要求(即 std::meta::alignment_of(std::meta::type_of(r)))。
否则,如果 r 表示类 C 的非静态数据成员 M,则返回类型为 C 的完整对象中对应的直接成员子对象的对齐要求。
否则,r 表示数据成员描述,如果其对齐值不是 ⊥ 则返回该对齐值,否则返回 std::meta::alignment_of(std::meta::type_of(r))。
异常
除非满足以下所有条件,否则抛出 std::meta::exception:
std::meta::dealias(r)表示以下之一:
* 类型 * 对象 * 非引用类型的变量 * 非位域的非静态数据成员 * 直接基类关系 * 位宽为 ⊥ 的数据成员描述
- 如果
std::meta::dealias(r)表示类型,则std::meta::is_complete_type(r)为true。
注解
此函数将“T 的引用”视为与“T 的指针”相同。这与非静态引用成员的表示方式相匹配。
示例
| 本节未完成 原因:暂无示例 |
参阅
alignof (C++11)
|
查询类型的对齐要求 (operator) |