Tidying.
[libdcp.git] / src / locale_convert.h
index 3d55a00ea6835ee12c91a239e423bd95f1d55310..9b1b432cd044b4d33b88d2bb2ac65c8f3cc7b5d5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2016 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2016-2021 Carl Hetherington <cth@carlh.net>
 
     This file is part of libdcp.
 
     files in the program, then also delete it here.
 */
 
+
+/** @file  src/locale_convert.cc
+ *  @brief Methods to convert to/from string using the current locale.
+ */
+
+
 #ifndef LIBDCP_LOCALE_CONVERT_H
 #define LIBDCP_LOCALE_CONVERT_H
 
+
+#include "util.h"
 #include <boost/filesystem.hpp>
 #include <boost/static_assert.hpp>
 #include <string>
 #include <cstdio>
 
+
 namespace dcp {
 
+
 template <typename P, typename Q>
 P
-locale_convert (Q x, int precision = 16, bool fixed = false)
+locale_convert (Q, int precision = 16, bool fixed = false)
 {
        /* We can't write a generic version of locale_convert; all required
           versions must be specialised.
        */
        BOOST_STATIC_ASSERT (sizeof (Q) == 0);
+       LIBDCP_UNUSED(precision);
+       LIBDCP_UNUSED(fixed);
 }
 
+template <>
+std::string
+locale_convert (unsigned char x, int, bool);
+
+template <>
+std::string
+locale_convert (unsigned short int x, int, bool);
+
 template <>
 std::string
 locale_convert (int x, int, bool);
@@ -95,16 +115,48 @@ template <>
 std::string
 locale_convert (char const * x, int, bool);
 
+template <>
+std::string
+locale_convert (wchar_t const * x, int, bool);
+
+template <>
+std::string
+locale_convert (char x, int, bool);
+
 template <>
 std::string
 locale_convert (boost::filesystem::path x, int, bool);
 
+template <>
+unsigned char
+locale_convert (std::string x, int, bool);
+
+template <>
+unsigned short int
+locale_convert (std::string x, int, bool);
+
+template <>
+unsigned int
+locale_convert (std::string x, int, bool);
+
 template <>
 int
 locale_convert (std::string x, int, bool);
 
 template <>
-int64_t
+long
+locale_convert (std::string x, int, bool);
+
+template <>
+unsigned long
+locale_convert (std::string x, int, bool);
+
+template <>
+long long
+locale_convert (std::string x, int, bool);
+
+template <>
+unsigned long long
 locale_convert (std::string x, int, bool);
 
 template <>
@@ -115,6 +167,8 @@ template <>
 double
 locale_convert (std::string x, int, bool);
 
+
 }
 
+
 #endif