Use an enum class for Marker.
[libdcp.git] / src / raw_convert.h
index 90d94771f89c50546d79e9535945d3017b9e9f3b..2a0d7add613d3d9ebb8beb7bca0f0447701ad8d2 100644 (file)
@@ -34,6 +34,7 @@
 #ifndef LIBDCP_RAW_CONVERT_H
 #define LIBDCP_RAW_CONVERT_H
 
+#include "util.h"
 #include <boost/static_assert.hpp>
 #include <iomanip>
 
@@ -44,12 +45,14 @@ namespace dcp {
  */
 template <typename P, typename Q>
 P
-raw_convert (Q v, int precision = 16, bool fixed = false)
+raw_convert (Q, int precision = 16, bool fixed = false)
 {
        /* We can't write a generic version of raw_convert; all required
           versions must be specialised.
        */
        BOOST_STATIC_ASSERT (sizeof (Q) == 0);
+       LIBDCP_UNUSED(precision);
+       LIBDCP_UNUSED(fixed);
 }
 
 template <>
@@ -112,6 +115,14 @@ template <>
 std::string
 raw_convert (char v, int, bool);
 
+template <>
+unsigned char
+raw_convert (std::string v, int, bool);
+
+template <>
+unsigned short int
+raw_convert (std::string v, int, bool);
+
 template <>
 int
 raw_convert (std::string v, int, bool);
@@ -120,10 +131,18 @@ template <>
 long
 raw_convert (std::string v, int, bool);
 
+template <>
+unsigned long
+raw_convert (std::string v, int, bool);
+
 template <>
 long long
 raw_convert (std::string v, int, bool);
 
+template <>
+unsigned long long
+raw_convert (std::string v, int, bool);
+
 template <>
 int
 raw_convert (char const * v, int, bool);