X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmisc.h;h=dae37cd98f05a10921a5903cddb4f7e47f6db311;hp=59ca6e376bda6b12a736d61f3ee92b9c621d1b6e;hb=b84fa04db6ea5fc6d7d714539c11537bde64538b;hpb=559942d64de9497c9d6d13b22307b4b9e1ce8ecf diff --git a/src/misc.h b/src/misc.h index 59ca6e37..dae37cd9 100644 --- a/src/misc.h +++ b/src/misc.h @@ -66,9 +66,10 @@ std::ostream& operator<<(std::ostream&, SyncCout); #define sync_cout std::cout << IO_LOCK #define sync_endl std::endl << IO_UNLOCK -// `ptr` must point to an array of size at least -// `sizeof(T) * N + alignment` bytes, where `N` is the -// number of elements in the array. + +// align_ptr_up() : get the first aligned element of an array. +// ptr must point to an array of size at least `sizeof(T) * N + alignment` bytes, +// where N is the number of elements in the array. template T* align_ptr_up(T* ptr) { @@ -78,6 +79,12 @@ T* align_ptr_up(T* ptr) return reinterpret_cast(reinterpret_cast((ptrint + (Alignment - 1)) / Alignment * Alignment)); } + +// IsLittleEndian : true if and only if the binary is compiled on a little endian machine +static inline const union { uint32_t i; char c[4]; } Le = { 0x01020304 }; +static inline const bool IsLittleEndian = (Le.c[0] == 4); + + template class ValueListInserter { public: