std::endian
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <bit> で定義
|
||
enum class endian { little = /*implementation-defined*/, big = /*implementation-defined*/, native = /*implementation-defined*/ }; |
(1) | (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
{
#ifdef _WIN32
little = 0,
big = 1,
native = little
#else
little = __ORDER_LITTLE_ENDIAN__,
big = __ORDER_BIG_ENDIAN__,
native = __BYTE_ORDER__
#endif
};
例
| This section is incomplete Reason: no example |