Move wmemory_buffer to wchar.h

This commit is contained in:
Victor Zverovich 2021-05-29 08:26:04 -07:00
parent 4a7801c3ec
commit a9a9018191
4 changed files with 14 additions and 18 deletions

View File

@ -647,15 +647,7 @@ enum { inline_buffer_size = 500 };
A dynamically growing memory buffer for trivially copyable/constructible types
with the first ``SIZE`` elements stored in the object itself.
You can use one of the following type aliases for common character types:
+----------------+------------------------------+
| Type | Definition |
+================+==============================+
| memory_buffer | basic_memory_buffer<char> |
+----------------+------------------------------+
| wmemory_buffer | basic_memory_buffer<wchar_t> |
+----------------+------------------------------+
You can use the ```memory_buffer`` type alias for ``char`` instead.
**Example**::
@ -785,7 +777,6 @@ void basic_memory_buffer<T, SIZE, Allocator>::grow(size_t size) {
}
using memory_buffer = basic_memory_buffer<char>;
using wmemory_buffer = basic_memory_buffer<wchar_t>;
template <typename T, size_t SIZE, typename Allocator>
struct is_contiguous<basic_memory_buffer<T, SIZE, Allocator>> : std::true_type {
@ -1152,7 +1143,7 @@ inline It format_uint(It out, UInt value, int num_digits, bool upper = false) {
// A converter from UTF-8 to UTF-16.
class utf8_to_utf16 {
private:
wmemory_buffer buffer_;
basic_memory_buffer<wchar_t> buffer_;
public:
FMT_API explicit utf8_to_utf16(string_view s);

View File

@ -24,6 +24,7 @@ using wstring_view = basic_string_view<wchar_t>;
using wformat_parse_context = basic_format_parse_context<wchar_t>;
using wformat_context = buffer_context<wchar_t>;
using wformat_args = basic_format_args<wformat_context>;
using wmemory_buffer = basic_memory_buffer<wchar_t>;
#if FMT_GCC_VERSION && FMT_GCC_VERSION < 409
// Workaround broken conversion on older gcc.

View File

@ -13,7 +13,8 @@
#include "fmt/format.h"
// clang-format on
#include <stdint.h> // uint32_t
#include <stdint.h> // uint32_t
#include <climits> // INT_MAX
#include <cmath> // std::signbit
#include <cstring> // std::strlen
@ -1896,12 +1897,9 @@ TEST(format_test, format_to_wide) {
}
TEST(format_test, format_to_memory_buffer) {
fmt::basic_memory_buffer<char, 100> buffer;
fmt::format_to(buffer, "{}", "foo");
EXPECT_EQ("foo", to_string(buffer));
fmt::wmemory_buffer wbuffer;
fmt::format_to(wbuffer, L"{}", L"foo");
EXPECT_EQ(L"foo", to_string(wbuffer));
auto buf = fmt::basic_memory_buffer<char, 100>();
fmt::format_to(buf, "{}", "foo");
EXPECT_EQ("foo", to_string(buf));
}
TEST(format_test, format_to_vector) {

View File

@ -37,6 +37,12 @@ TEST(wchar_test, vformat_to) {
EXPECT_EQ(L"42", w);
}
TEST(wchar_test, format_to_memory_buffer) {
auto buf = fmt::wmemory_buffer();
fmt::format_to(buf, L"{}", L"foo");
EXPECT_EQ(L"foo", to_string(buf));
}
TEST(format_test, wide_format_to_n) {
wchar_t buffer[4];
buffer[3] = L'x';