std::endian
From cppreference.com
| ヘッダ <bit> で定義 |
||
| enum class endian { |
(C++20以降) | |
- すべてのスカラ型がリトルエンディアンの場合、std::endian::native は std::endian::little と等しくなります。
- すべてのスカラ型がビッグエンディアンの場合、std::endian::native は std::endian::big と等しくなります。
特殊なプラットフォームもサポートされます
- すべてのスカラ型の
sizeofが 1 に等しい場合、エンディアンは関係なく、3つの値すべて (std::endian::little、std::endian::big、および std::endian::native) は同じになります。 - プラットフォームが混合エンディアンを使用している場合、std::endian::native は std::endian::big でも std::endian::little でもなく等しくありません。
目次 |
[編集] 可能な実装
enum class endian { #if defined(_MSC_VER) && !defined(__clang__) little = 0, big = 1, native = little #else little = __ORDER_LITTLE_ENDIAN__, big = __ORDER_BIG_ENDIAN__, native = __BYTE_ORDER__ #endif };
[編集] 備考
| 機能テストマクロ | 値 | 規格 | 機能 |
|---|---|---|---|
__cpp_lib_endian |
201907L |
(C++20) | std::endian |
[編集] 例
このコードを実行
実行結果の例
mixed-endian
[編集] 関連項目
| (C++23) |
与えられた整数値のバイト順を反転する (関数テンプレート) |
| endian のCドキュメント
| |