Switch to testing on Ubuntu 16.04 and 22.04.
[libdcp.git] / src / raw_convert.h
index c7b04823732ed342c1f80eaf8ed0cbf5871b8bc8..51f5fbb6288f1aa82707b247a8609d4a1a377f47 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2014 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2014-2021 Carl Hetherington <cth@carlh.net>
 
     This file is part of libdcp.
 
     files in the program, then also delete it here.
 */
 
+
+/** @file  src/raw_convert.h
+ *  @brief Methods for conversion to/from string
+ */
+
+
 #ifndef LIBDCP_RAW_CONVERT_H
 #define LIBDCP_RAW_CONVERT_H
 
+
+#include "util.h"
 #include <boost/static_assert.hpp>
 #include <iomanip>
 
+
 namespace dcp {
 
+
 /** A sort-of version of boost::lexical_cast that does uses the "C"
  *  locale (i.e. no thousands separators and a . for the decimal separator).
  */
 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 <>
@@ -136,6 +148,14 @@ 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* v, int, bool);
+
 template <>
 int
 raw_convert (char const * v, int, bool);
@@ -156,6 +176,8 @@ template <>
 double
 raw_convert (char const * v, int, bool);
 
+
 }
 
+
 #endif