
Hi Is there any chance the code below could be added to the integer library? More specifically, to the integer_mask.hpp header? If there is, I would be happy to provide tests and documentation. We use it to get significant parts of unsigned integer values, it is a superset of LOBYTE, HIBYTE, LOWORD and HIWORD windows macros and generates no binary code in optimized compilations. Thanks in advance. template < std::size_t Bits, typename Unsigned > inline typename uint_t<Bits>::least lobits(Unsigned n) { n &= low_bits_mask_t<Bits>::sig_bits; return (uint_t<Bits>::least)n; } template < std::size_t Bits, typename Unsigned > inline typename uint_t<Bits>::least hibits(Unsigned n) { n >>= (std::numeric_limits<Unsigned>::digits - low_bits_mask_t<Bits>::bit_count); return (uint_t<Bits>::least)n; } template <typename Unsigned> inline uint8_t lobyte(Unsigned n) { return lobits<8, Unsigned>(n); } template <typename Unsigned> inline uint8_t hibyte(Unsigned n) { return hibits<8, Unsigned>(n); } template <typename Unsigned> inline uint16_t loword16(Unsigned n) { return lobits<16, Unsigned>(n); } template <typename Unsigned> inline uint16_t hiword16(Unsigned n) { return hibits<16, Unsigned>(n); } template <typename Unsigned> inline uint32_t loword32(Unsigned n) { return lobits<32, Unsigned>(n); } template <typename Unsigned> inline uint32_t hiword32(Unsigned n) { return hibits<32, Unsigned>(n); } Best regards Jorge