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)