these macros are mostly used with size_t types, leading to msvc warning : warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits
these macros are mostly used with size_t types, leading to msvc warning : warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits