diff --git a/doc/api.rst b/doc/api.rst index 8aacb6dce245..9647c90b6ef6 100644 --- a/doc/api.rst +++ b/doc/api.rst @@ -262,6 +262,8 @@ Utilities .. doxygenfunction:: fmt::to_string(const T&) +.. doxygenfunction:: fmt::to_wstring(const T&) + .. doxygenclass:: fmt::BasicStringRef :members: diff --git a/fmt/string.h b/fmt/string.h index cb87b15e7ddb..05996eb58788 100644 --- a/fmt/string.h +++ b/fmt/string.h @@ -125,6 +125,24 @@ std::string to_string(const T &value) { w << value; return w.str(); } + +/** + \rst + Converts *value* to ``std::wstring`` using the default format for type *T*. + + **Example**:: + + #include "fmt/string.h" + + std::wstring answer = fmt::to_wstring(42); + \endrst + */ +template +std::wstring to_wstring(const T &value) { + fmt::WMemoryWriter w; + w << value; + return w.str(); +} } #endif // FMT_STRING_H_ diff --git a/test/string-test.cc b/test/string-test.cc index 10e537b7a2fc..06f55f652a16 100644 --- a/test/string-test.cc +++ b/test/string-test.cc @@ -78,3 +78,7 @@ TEST(StringWriterTest, WString) { TEST(StringTest, ToString) { EXPECT_EQ("42", fmt::to_string(42)); } + +TEST(StringTest, ToWString) { + EXPECT_EQ(L"42", fmt::to_wstring(42)); +}