名前空間
変種
操作

std::endian

提供: cppreference.com
< cpp‎ | types
ヘッダ <bit> で定義
enumclass endian

{
    little =/*implementation-defined*/,
    big    =/*implementation-defined*/,
    native =/*implementation-defined*/

};
(1) (C++20以上)

すべてのスカラー型のエンディアンを表します。

  • すべてのスカラー型がリトルエンディアンの場合、 std::endian::nativestd::endian::little と等しくなります
  • すべてのスカラー型がビッグエンディアンの場合、 std::endian::nativestd::endian::big と等しくなります

コーナーケースにあるプラットフォームもサポートされます。

  • すべてのスカラー型の sizeof が 1 である場合、エンディアンは意味をなさず、3つの値 std::endian::little, std::endian::big, std::endian::native はすべて等しくなります
  • 混合エンディアンを使用するプラットフォームの場合、 std::endian::nativestd::endian::big および std::endian::little のいずれとも等しくありません

[編集]実装例

enumclass endian {#ifdef _WIN32 little =0, big =1, native = little #else little = __ORDER_LITTLE_ENDIAN__, big = __ORDER_BIG_ENDIAN__, native = __BYTE_ORDER__ #endif};

[編集]

close