# HG changeset patch # User David Demelier # Date 1413285276 -7200 # Node ID bc9b5e7421a7f7ea763bbde25c9166232a599e21 # Parent 41bdde9027c01db81a2c6a8a5967de85e7cc20ac Pack: * Remove endian from TypeInfo * Don't use rvalue and perfect forwarding diff -r 41bdde9027c0 -r bc9b5e7421a7 C++/Pack.h --- a/C++/Pack.h Tue Oct 14 12:59:10 2014 +0200 +++ b/C++/Pack.h Tue Oct 14 13:14:36 2014 +0200 @@ -76,7 +76,7 @@ static_assert(TypeInfo::supported, "unsupported type"); if (endian != mode) - return TypeInfo::convert(value, endian); + return TypeInfo::convert(value); return value; } @@ -156,7 +156,7 @@ * @throw std::runtime_exception on error */ template - static void read(const std::string &path, Endian endian, Args&&... args) + static void read(const std::string &path, Endian endian, Args&... args) { std::ifstream in; @@ -173,7 +173,7 @@ static constexpr const bool supported = true; static constexpr const size_t size = sizeof (uint8_t); - static constexpr uint8_t convert(uint8_t v, Endian endian) + static constexpr uint8_t convert(uint8_t v) { return v; } @@ -184,7 +184,7 @@ static constexpr const bool supported = true; static constexpr const size_t size = sizeof (uint16_t); - static constexpr uint16_t convert(uint16_t v, Endian endian) + static constexpr uint16_t convert(uint16_t v) { return (((v >> 8) & 0x00FFL) | ((v << 8) & 0xFF00L)); } @@ -195,7 +195,7 @@ static constexpr const bool supported = true; static constexpr const size_t size = sizeof (uint32_t); - static constexpr uint32_t convert(uint32_t v, Endian endian) + static constexpr uint32_t convert(uint32_t v) { return ((((v) >> 24) & 0x000000FFL) | (((v) >> 8) & 0x0000FF00L) @@ -209,7 +209,7 @@ static constexpr const bool supported = true; static constexpr const size_t size = sizeof (uint64_t); - static constexpr uint64_t convert(uint64_t v, Endian endian) + static constexpr uint64_t convert(uint64_t v) { return ((((v) & 0xff00000000000000ull) >> 56) | (((v) & 0x00ff000000000000ull) >> 40)