std:: endian
From cppreference.net
C++
Utilities library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bit manipulation
|
(C++20)
|
||||
|
(C++23)
|
||||
| Integral powers of 2 | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Rotating | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Counting | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Endian | ||||
|
endian
(C++20)
|
|
ヘッダーで定義
<bit>
|
||
|
enum
class
endian
{
|
(C++20以降) | |
すべての endianness を示します: scalar types
- すべてのスカラ型がリトルエンディアンの場合、 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)
|
指定された整数値のバイト順序を反転する
(関数テンプレート) |
|
Cドキュメント
for
endian
|
|