<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


另見