namespace std {
template <class T>
struct alignment_of {
static constexpr std::size_t value = …;
};
template <class T>
inline constexpr std::size_t alignment_of_v = alignment_of<T>::value; // C++17
}
概要
型T
のアライメントを取得する。
要件
型T
に対してalignof(T)
が有効であること。
効果
alignof(T)
で得られたstd::size_t
型の値を、メンバ定数value
として定義する。
備考
alignment_of
はintegral_constant
から派生する。
例
#include <type_traits>
#include <iostream>
int main()
{
constexpr std::size_t n = std::alignment_of<int>::value;
std::cout << n << std::endl;
}
出力例
4
バージョン
言語
- C++11
処理系
- Clang: 3.0 ✅
- GCC: 4.6.4 ✅
- Visual C++: 2008 (std::tr1) ✅, 2010 ✅, 2012 ✅, 2013 ✅, 2015 ✅