Mercurial > code
diff C++/Pack.h @ 223:c6513d9c696b
Pack: add unit tests
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 08 May 2014 23:51:07 +0200 |
parents | 8fc177bbc4a6 |
children | 41bdde9027c0 |
line wrap: on
line diff
--- a/C++/Pack.h Thu May 08 23:31:47 2014 +0200 +++ b/C++/Pack.h Thu May 08 23:51:07 2014 +0200 @@ -47,7 +47,7 @@ }; private: - static void writeFile(std::ofstream &out, Endian endian) + static void writeFile(std::ofstream &, Endian) { // dummy, stop recursion } @@ -58,11 +58,11 @@ static_assert(TypeInfo<T>::supported, "unsupported type"); T ret = convert(value, endian); - out.write(reinterpret_cast<unsigned char *>(&ret), TypeInfo<T>::size); + out.write(reinterpret_cast<const char *>(&ret), TypeInfo<T>::size); writeFile(out, endian, args...); } - static void readFile(std::ifstream &in, Endian endian) + static void readFile(std::ifstream &, Endian) { // dummy, stop recursion } @@ -72,7 +72,7 @@ { static_assert(TypeInfo<T>::supported, "unsupported type"); - in.read(reinterpret_cast<unsigned char *>(&value), TypeInfo<T>::size); + in.read(reinterpret_cast<char *>(&value), TypeInfo<T>::size); value = convert(value, endian); readFile(in, endian, args...); } @@ -175,13 +175,13 @@ }; template <> -uint8_t Pack::convert(uint8_t v, Endian) +inline uint8_t Pack::convert(uint8_t v, Endian) { return v; } template <> -uint16_t Pack::convert(uint16_t v, Endian endian) +inline uint16_t Pack::convert(uint16_t v, Endian endian) { if (mode != endian) return (((v >> 8) & 0x00FFL) | ((v << 8) & 0xFF00L)); @@ -190,7 +190,7 @@ } template <> -uint32_t Pack::convert(uint32_t v, Endian endian) +inline uint32_t Pack::convert(uint32_t v, Endian endian) { if (mode != endian) return ((((v) >> 24) & 0x000000FFL) @@ -202,7 +202,7 @@ } template <> -uint64_t Pack::convert(uint64_t v, Endian endian) +inline uint64_t Pack::convert(uint64_t v, Endian endian) { if (mode != endian) return ((((v) & 0xff00000000000000ull) >> 56)