<type_traits>

类模板
<type_traits>

std::alignment_of

template <class T> struct alignment_of;
对齐

用于获取类型对齐需求的特性类T.

如果已知T为引用类型,获取的对齐要求为引用类型所需的对齐要求。

如果已知T为数组类型,获取的对齐要求为元素类型所需的对齐要求。

该类表现为定义如下
1
template<class T> struct alignment_of : integral_constant <size_t,alignof(T)> {};

模板参数

T
一个完整对象类型,或其数组,或对完整对象类型的引用。

成员类型

继承自 integral_constant
成员类型定义
value_typesize_t
类型integral_constant<size_t,alignof(T)>

成员常量

继承自 integral_constant
成员常量定义
alignof(T)

成员函数

继承自 integral_constant

示例

1
2
3
4
5
6
7
8
9
10
11
12
// alignment_of example
#include <iostream>
#include <type_traits>

int main() {
  std::cout << "alignment_of:" << std::endl;
  std::cout << "char: " << std::alignment_of<char>::value << std::endl;
  std::cout << "int: " << std::alignment_of<int>::value << std::endl;
  std::cout << "int[20]: " << std::alignment_of<int[20]>::value << std::endl;
  std::cout << "long long int: " << std::alignment_of<long long int>::value << std::endl;
  return 0;
}

可能的输出
alignment_of
char: 1
int: 4
int[20]: 4
long long int: 8


另见