Stout: Added stringify for std::wstring. Review: https://reviews.apache.org/r/58125/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/718d3c94 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/718d3c94 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/718d3c94 Branch: refs/heads/master Commit: 718d3c9473c29202c08263fd379ce08d61297075 Parents: 396f82a Author: Andrew Schwartzmeyer <[email protected]> Authored: Mon Apr 3 16:04:37 2017 -0700 Committer: Joseph Wu <[email protected]> Committed: Tue Apr 4 16:45:16 2017 -0700 ---------------------------------------------------------------------- 3rdparty/stout/include/stout/stringify.hpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/718d3c94/3rdparty/stout/include/stout/stringify.hpp ---------------------------------------------------------------------- diff --git a/3rdparty/stout/include/stout/stringify.hpp b/3rdparty/stout/include/stout/stringify.hpp index e9588d8..6984315 100644 --- a/3rdparty/stout/include/stout/stringify.hpp +++ b/3rdparty/stout/include/stout/stringify.hpp @@ -21,6 +21,13 @@ #include <string> #include <vector> +#ifdef __WINDOWS__ +// `codecvt` is not available on older versions of Linux. Until it is needed on +// other platforms, it's easiest to just build the UTF converter for Windows. +#include <codecvt> +#include <locale> +#endif // __WINDOWS__ + #include "abort.hpp" #include "hashmap.hpp" #include "set.hpp" @@ -36,6 +43,15 @@ std::string stringify(T t) return out.str(); } +#ifdef __WINDOWS__ +inline std::string stringify(const std::wstring& str) +{ + // Convert UTF-16 `wstring` to UTF-8 `string`. + std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>, wchar_t> converter; + return converter.to_bytes(str); +} +#endif // __WINDOWS__ + template <> inline std::string stringify(bool b)
