From e7cd5e4ee467386ff579a76c5f6a6fee03a78fc4 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 13 Aug 2016 00:38:33 +0100 Subject: Windows build fixes. --- src/lib/compose.hpp | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) (limited to 'src/lib/compose.hpp') diff --git a/src/lib/compose.hpp b/src/lib/compose.hpp index 8ccd12b50..477000e5d 100644 --- a/src/lib/compose.hpp +++ b/src/lib/compose.hpp @@ -120,6 +120,30 @@ namespace StringPrivate s += to_string (obj); } + template <> + inline void write(std::string& s, const int16_t& obj) + { + char buffer[64]; +#ifdef DCPOMATIC_WINDOWS + __mingw_snprintf(buffer, 64, "%" PRId16, obj); +#else + snprintf(buffer, 64, "%" PRId16, obj); +#endif + s += buffer; + } + + template <> + inline void write(std::string& s, const uint16_t& obj) + { + char buffer[64]; +#ifdef DCPOMATIC_WINDOWS + __mingw_snprintf(buffer, 64, "%" PRIu16, obj); +#else + snprintf(buffer, 64, "%" PRIu16, obj); +#endif + s += buffer; + } + template <> inline void write(std::string& s, const int32_t& obj) { @@ -203,17 +227,16 @@ namespace StringPrivate } template <> - inline void write(std::string& s, wchar_t const & obj) + inline void write(std::string& s, const std::string& obj) { - std::wstring ws (&obj); - std::string w (ws.begin(), ws.end()); - s += w; + s += obj; } - template <> - inline void write(std::string& s, const std::string& obj) + inline void write(std::string& s, wchar_t const * const & obj) { - s += obj; + std::wstring ws (obj); + std::string w (ws.begin(), ws.end()); + s += w; } template <> -- cgit v1.2.3