|
@@ -42,6 +42,13 @@ namespace std {
|
|
|
template<class T>
|
|
|
constexpr int popcount(T x) noexcept; // C++20
|
|
|
|
|
|
+ // 20.15.9, endian
|
|
|
+ enum class endian {
|
|
|
+ little = see below, // C++20
|
|
|
+ big = see below, // C++20
|
|
|
+ native = see below // C++20
|
|
|
+};
|
|
|
+
|
|
|
} // namespace std
|
|
|
|
|
|
*/
|
|
@@ -456,6 +463,20 @@ log2p1(_Tp __t) noexcept
|
|
|
return __t == 0 ? 0 : __bit_log2(__t) + 1;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+enum class endian
|
|
|
+{
|
|
|
+ little = 0xDEAD,
|
|
|
+ big = 0xFACE,
|
|
|
+#if defined(_LIBCPP_LITTLE_ENDIAN)
|
|
|
+ native = little
|
|
|
+#elif defined(_LIBCPP_BIG_ENDIAN)
|
|
|
+ native = big
|
|
|
+#else
|
|
|
+ native = 0xCAFE
|
|
|
+#endif
|
|
|
+};
|
|
|
+
|
|
|
#endif // _LIBCPP_STD_VER > 17
|
|
|
|
|
|
_LIBCPP_END_NAMESPACE_STD
|