1. 简介
是一个运算符,用于确定类型的对齐要求。
2.语法
a. alignof(type_id/object)
3. 返回值:
a. std::size_t // 返回指定类型或对象在内存中的对齐边界,即该类型或对象所需的最小字节对齐。 它返回的是类型所需的对齐字节数,通常是一个2的幂次
4. 说明:
a. 输入参数为 complete object type,返回该类型所需的最小字节对齐数,单位为byte,通常为一个2的幂次
b. 输入参数为 以 complete object type为元素的数组,返回数组元素所属类型所需的最小字节对齐数
c. 输入参数为 complete object type 的引用,返回被引用的complete object type 所需的最小字节对齐数
5. 示例:
int main() { std::cout << "Alignment of" "\n" "- char : " << alignof(char) << "\n" "- int : " << alignof(int) << "\n" "- pointer : " << alignof(int*) << "\n" "- short : " << alignof(short) << "\n" "- double : " << alignof(double) << "\n" "- array<int> : " << alignof(array<int, 10>) << "\n" "- set<int> : " << alignof(set<int>) << "\n" "- list<int> : " << alignof(list<int>) << "\n" "- map<int,int> : " << alignof(map<int, int>) << "\n" "- vector<int> : " << alignof(vector<int>) << "\n" "- queue<int> : " << alignof(queue<int>) << "\n" "- tuple<double,int,int> : " << alignof(tuple<double, int, int>) << "\n" "- tuple<char,char,char> : " << alignof(tuple<char, char, char>) << "\n"; return 1; }