名前空間
変種
操作

alignof 演算子 (C++11以上)

提供: cppreference.com
< cpp‎ | language
 
 
C++言語
一般的なトピック
フロー制御
条件付き実行文
繰り返し文 (ループ)
ジャンプ文
関数
関数宣言
ラムダ関数宣言
inline 指定子
例外指定 (C++20未満)
noexcept 指定子 (C++11)
例外
名前空間
指定子
decltype (C++11)
auto (C++11)
alignas (C++11)
記憶域期間指定子
初期化
代替表現
リテラル
ブーリアン - 整数 - 浮動小数点
文字 - 文字列 - nullptr (C++11)
ユーザ定義 (C++11)
ユーティリティ
属性 (C++11)
typedef 宣言
型エイリアス宣言 (C++11)
キャスト
暗黙の変換 - 明示的な変換
static_cast - dynamic_cast
const_cast - reinterpret_cast
メモリ確保
クラス
クラス固有の関数特性
特別なメンバ関数
テンプレート
その他
 
 

型のアライメント要件を問い合わせます。

目次

[編集] 構文

alignof( type-id )

std::size_t 型の値を返します。

[編集] 説明

type-id によって表される型のインスタンスに対して要求されるバイト単位のアライメントを返します。 完全型、配列型、または参照型のいずれかでなければなりません。

参照型の場合は、参照先の型のアライメントを返します。 配列型の場合は、要素の型のアライメント要件が返されます。

[編集] キーワード

alignof

[編集] ノート

alignof によって返される値の意味や性質についてはアライメントを参照してください。

[編集]

#include <iostream>
 
struct Foo {
    int   i;
    float f;
    char  c;
};
 
struct Empty {};
 
struct alignas(64) Empty64 {};
 
int main()
{
    std::cout << "Alignment of"  "\n"
        "- char             : " << alignof(char)    << "\n"
        "- pointer          : " << alignof(int*)    << "\n"
        "- class Foo        : " << alignof(Foo)     << "\n"
        "- empty class      : " << alignof(Empty)   << "\n"
        "- alignas(64) Empty: " << alignof(Empty64) << "\n";
}

出力例:

Alignment of
- char             : 1
- pointer          : 8
- class Foo        : 4
- empty class      : 1
- alignas(64) Empty: 64

[編集] 関連項目

アライメント要件 オブジェクトを確保しても良いアドレスを制限します
alignas 指定子(C++11) 変数のための記憶域が指定の量でアラインされるべきであることを指定します[edit]
型のアライメント要件を取得します
(クラステンプレート) [edit]