最終更新日時(UTC): 2021年10月28日 10時08分27秒
Akira Takahashi が更新

履歴 編集

function template
<bit>

# std::byteswap(C++23)

    namespace std {
      template <class T>
      constexpr T byteswap(T value) noexcept;
    }

## 概要

値`value`のオブジェクト表現に対してバイト単位で逆順並び替え（エンディアン変換）を行う。

## テンプレートパラメータ制約

型`T`が`integral`のモデルであること

## 適格要件

型`T`がパディングビットを含まないこと

## 戻り値

`value`のオブジェクト表現をバイト単位で逆順に並び替えた整数型`T`の値を返す。

## 例外

投げない

## 例

    #include <bit>
    #include <format>
    #include <iostream>

    int main()
    {
      std::uint32_t src = 0x12345678u;
      std::cout << std::format("{:x}", src) << std::endl;

      std::uint32_t dst = std::byteswap(src);
      std::cout << std::format("{:x}", dst) << std::endl;
    }

### 出力

    12345678
    78563412

## バージョン

### 言語

- C++23

### 処理系

- Clang: ??
- GCC: ??
- Visual C++: ??

## 参照

- P1272R4 Byteswapping for fun&&nuf