X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Flocale_convert.h;h=37510a96d32ca08e046335af1991b98e6147b3ed;hb=addd5e1625fce3477736b54356f0edeaa0f6cc5d;hp=3d55a00ea6835ee12c91a239e423bd95f1d55310;hpb=3c93561190ceb883db6b69c1cd37d99cd547fe83;p=libdcp.git diff --git a/src/locale_convert.h b/src/locale_convert.h index 3d55a00e..37510a96 100644 --- a/src/locale_convert.h +++ b/src/locale_convert.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2016 Carl Hetherington + Copyright (C) 2016-2021 Carl Hetherington This file is part of libdcp. @@ -31,26 +31,46 @@ 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 #include #include #include + namespace dcp { + template 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