Provide typedefs for std::wstring and std::wostream
This is for systems with no libc support for wide character strings (specifically djgpp). libstdc++ then doesn't define these aliases, but the primary templates are still available.
This commit is contained in:
parent
2d86bc4a79
commit
52c62ca386
@ -300,6 +300,9 @@ FMT_GCC_PRAGMA("GCC optimize(\"Og\")")
|
|||||||
FMT_BEGIN_NAMESPACE
|
FMT_BEGIN_NAMESPACE
|
||||||
FMT_MODULE_EXPORT_BEGIN
|
FMT_MODULE_EXPORT_BEGIN
|
||||||
|
|
||||||
|
// Alias for older systems where std::wstring isn't defined.
|
||||||
|
using wstring = std::basic_string<wchar_t>;
|
||||||
|
|
||||||
// Implementations of enable_if_t and other metafunctions for older systems.
|
// Implementations of enable_if_t and other metafunctions for older systems.
|
||||||
template <bool B, typename T = void>
|
template <bool B, typename T = void>
|
||||||
using enable_if_t = typename std::enable_if<B, T>::type;
|
using enable_if_t = typename std::enable_if<B, T>::type;
|
||||||
|
|||||||
@ -1232,7 +1232,7 @@ class utf8_to_utf16 {
|
|||||||
operator basic_string_view<wchar_t>() const { return {&buffer_[0], size()}; }
|
operator basic_string_view<wchar_t>() const { return {&buffer_[0], size()}; }
|
||||||
auto size() const -> size_t { return buffer_.size() - 1; }
|
auto size() const -> size_t { return buffer_.size() - 1; }
|
||||||
auto c_str() const -> const wchar_t* { return &buffer_[0]; }
|
auto c_str() const -> const wchar_t* { return &buffer_[0]; }
|
||||||
auto str() const -> std::wstring { return {&buffer_[0], size()}; }
|
auto str() const -> wstring { return {&buffer_[0], size()}; }
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace dragonbox {
|
namespace dragonbox {
|
||||||
|
|||||||
@ -138,9 +138,13 @@ void print(std::ostream& os, format_string<Args...> fmt, Args&&... args) {
|
|||||||
vprint(os, fmt, fmt::make_format_args(args...));
|
vprint(os, fmt, fmt::make_format_args(args...));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Alias for older systems where std::wostream isn't defined.
|
||||||
|
FMT_MODULE_EXPORT
|
||||||
|
using wostream = std::basic_ostream<wchar_t>;
|
||||||
|
|
||||||
FMT_MODULE_EXPORT
|
FMT_MODULE_EXPORT
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
void print(std::wostream& os,
|
void print(wostream& os,
|
||||||
basic_format_string<wchar_t, type_identity_t<Args>...> fmt,
|
basic_format_string<wchar_t, type_identity_t<Args>...> fmt,
|
||||||
Args&&... args) {
|
Args&&... args) {
|
||||||
vprint(os, fmt, fmt::make_format_args<buffer_context<wchar_t>>(args...));
|
vprint(os, fmt, fmt::make_format_args<buffer_context<wchar_t>>(args...));
|
||||||
|
|||||||
@ -227,7 +227,7 @@ template <typename... T> void print(wformat_string<T...> fmt, T&&... args) {
|
|||||||
/**
|
/**
|
||||||
Converts *value* to ``std::wstring`` using the default format for type *T*.
|
Converts *value* to ``std::wstring`` using the default format for type *T*.
|
||||||
*/
|
*/
|
||||||
template <typename T> inline auto to_wstring(const T& value) -> std::wstring {
|
template <typename T> inline auto to_wstring(const T& value) -> wstring {
|
||||||
return format(FMT_STRING(L"{}"), value);
|
return format(FMT_STRING(L"{}"), value);
|
||||||
}
|
}
|
||||||
FMT_MODULE_EXPORT_END
|
FMT_MODULE_EXPORT_END
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user