◐ Shell
clean mode source ↗

std::alignment_of - cppreference.com

提供: cppreference.com

<tbody> </tbody>

template< class T > struct alignment_of;

(C++11以上)

alignof式によって取得されたかのような、型 Tアライメント要件に等しいメンバ定数 value を提供します。 T が配列型の場合は、その要素型のアライメント要件を返します。 T が参照型の場合は、その参照先の型のアライメント要件を返します。

alignof(T) が有効な式でなければ、動作は未定義です。

ヘルパー変数テンプレート

<tbody> </tbody>

template< class T > inline constexpr std::size_t alignment_of_v = alignment_of<T>::value;

(C++17以上)

std::integral_constant から継承

メンバ定数

alignof(T)
(パブリック静的メンバ定数)

メンバ関数

オブジェクトを std::size_t に変換します。 value を返します
(パブリックメンバ関数)
value を返します
(パブリックメンバ関数)

メンバ型

定義
value_type std::size_t
type std::integral_constant<std::size_t, value>

実装例

template< class T >
struct alignment_of : std::integral_constant<
                          std::size_t,
                          alignof(T)
                       > {};

ノート

この型特性は alignof キーワードより以前から存在していました。 alignof キーワードは同じ値をより短い記述で取得するために使用できます。

#include <iostream>
#include <type_traits>
 
class A {};
 
int main() 
{
    std::cout << std::alignment_of<A>::value << '\n';
    std::cout << std::alignment_of<int>() << '\n'; // alt syntax
    std::cout << std::alignment_of_v<double> << '\n'; // c++17 alt syntax
}

出力:

関連項目