diff --git a/include/fmt/core.h b/include/fmt/core.h index 74e297ea..4b11cce0 100644 --- a/include/fmt/core.h +++ b/include/fmt/core.h @@ -1478,7 +1478,6 @@ inline std::basic_string format(const S& format_str, Args&&... args) { } FMT_API void vprint(std::FILE* f, string_view format_str, format_args args); -FMT_API void vprint(std::FILE* f, wstring_view format_str, wformat_args args); /** \rst @@ -1499,7 +1498,6 @@ inline void print(std::FILE* f, const S& format_str, Args&&... args) { } FMT_API void vprint(string_view format_str, format_args args); -FMT_API void vprint(wstring_view format_str, wformat_args args); /** \rst diff --git a/include/fmt/format-inl.h b/include/fmt/format-inl.h index 99ad5528..72b30466 100644 --- a/include/fmt/format-inl.h +++ b/include/fmt/format-inl.h @@ -12,7 +12,6 @@ #include #include -#include #include #include #include @@ -1384,23 +1383,10 @@ FMT_FUNC void vprint(std::FILE* f, string_view format_str, format_args args) { internal::fwrite_fully(buffer.data(), 1, buffer.size(), f); } -FMT_FUNC void vprint(std::FILE* f, wstring_view format_str, wformat_args args) { - wmemory_buffer buffer; - internal::vformat_to(buffer, format_str, args); - buffer.push_back(L'\0'); - if (std::fputws(buffer.data(), f) == -1) { - FMT_THROW(system_error(errno, "cannot write to file")); - } -} - FMT_FUNC void vprint(string_view format_str, format_args args) { vprint(stdout, format_str, args); } -FMT_FUNC void vprint(wstring_view format_str, wformat_args args) { - vprint(stdout, format_str, args); -} - FMT_END_NAMESPACE #ifdef _MSC_VER diff --git a/include/fmt/format.h b/include/fmt/format.h index 9344ac0d..3e2fc5a8 100644 --- a/include/fmt/format.h +++ b/include/fmt/format.h @@ -34,6 +34,7 @@ #define FMT_FORMAT_H_ #include +#include #include #include #include @@ -3446,6 +3447,21 @@ inline std::size_t formatted_size(string_view format_str, const Args&... args) { return format_to(internal::counting_iterator(), format_str, args...).count(); } +template ::value)> +void vprint(std::FILE* f, basic_string_view format_str, + wformat_args args) { + wmemory_buffer buffer; + internal::vformat_to(buffer, format_str, args); + buffer.push_back(L'\0'); + if (std::fputws(buffer.data(), f) == -1) + FMT_THROW(system_error(errno, "cannot write to file")); +} + +template ::value)> +void vprint(basic_string_view format_str, wformat_args args) { + vprint(stdout, format_str, args); +} + #if FMT_USE_USER_DEFINED_LITERALS namespace internal { diff --git a/src/format.cc b/src/format.cc index bf569af4..c373db1c 100644 --- a/src/format.cc +++ b/src/format.cc @@ -58,9 +58,6 @@ template FMT_API wchar_t internal::decimal_point_impl(locale_ref); template FMT_API void internal::buffer::append(const wchar_t*, const wchar_t*); -template FMT_API void internal::arg_map::init( - const basic_format_args&); - template FMT_API std::wstring internal::vformat( wstring_view, basic_format_args); FMT_END_NAMESPACE