mirror of
https://github.com/fmtlib/fmt.git
synced 2026-05-06 08:26:15 +02:00
Make buffer_range public and update custom formatting docs (#1281)
This commit is contained in:
@@ -426,7 +426,7 @@ template <typename CompiledFormat, typename... Args,
|
||||
typename Char = typename CompiledFormat::char_type>
|
||||
std::basic_string<Char> format(const CompiledFormat& cf, const Args&... args) {
|
||||
basic_memory_buffer<Char> buffer;
|
||||
using range = internal::buffer_range<Char>;
|
||||
using range = buffer_range<Char>;
|
||||
using context = buffer_context<Char>;
|
||||
cf.template vformat_to<range, context>(range(buffer),
|
||||
{make_format_args<context>(args...)});
|
||||
|
||||
+12
-12
@@ -413,17 +413,6 @@ class output_range {
|
||||
sentinel end() const { return {}; } // Sentinel is not used yet.
|
||||
};
|
||||
|
||||
// A range with an iterator appending to a buffer.
|
||||
template <typename T>
|
||||
class buffer_range
|
||||
: public output_range<std::back_insert_iterator<buffer<T>>, T> {
|
||||
public:
|
||||
using iterator = std::back_insert_iterator<buffer<T>>;
|
||||
using output_range<iterator, T>::output_range;
|
||||
buffer_range(buffer<T>& buf)
|
||||
: output_range<iterator, T>(std::back_inserter(buf)) {}
|
||||
};
|
||||
|
||||
template <typename Char>
|
||||
inline size_t count_code_points(basic_string_view<Char> s) {
|
||||
return s.size();
|
||||
@@ -478,6 +467,17 @@ void buffer<T>::append(const U* begin, const U* end) {
|
||||
}
|
||||
} // namespace internal
|
||||
|
||||
// A range with an iterator appending to a buffer.
|
||||
template <typename T>
|
||||
class buffer_range : public internal::output_range<
|
||||
std::back_insert_iterator<internal::buffer<T>>, T> {
|
||||
public:
|
||||
using iterator = std::back_insert_iterator<internal::buffer<T>>;
|
||||
using internal::output_range<iterator, T>::output_range;
|
||||
buffer_range(internal::buffer<T>& buf)
|
||||
: internal::output_range<iterator, T>(std::back_inserter(buf)) {}
|
||||
};
|
||||
|
||||
// A UTF-8 string view.
|
||||
class u8string_view : public basic_string_view<char8_t> {
|
||||
public:
|
||||
@@ -2598,7 +2598,7 @@ template <typename Range>
|
||||
using basic_writer FMT_DEPRECATED_ALIAS = internal::basic_writer<Range>;
|
||||
using writer FMT_DEPRECATED_ALIAS = internal::writer;
|
||||
using wwriter FMT_DEPRECATED_ALIAS =
|
||||
internal::basic_writer<internal::buffer_range<wchar_t>>;
|
||||
internal::basic_writer<buffer_range<wchar_t>>;
|
||||
|
||||
/** The default argument formatter. */
|
||||
template <typename Range>
|
||||
|
||||
@@ -368,8 +368,7 @@ template <typename OutputIt, typename Char> class basic_printf_context {
|
||||
}
|
||||
|
||||
/** Formats stored arguments and writes the output to the range. */
|
||||
template <typename ArgFormatter =
|
||||
printf_arg_formatter<internal::buffer_range<Char>>>
|
||||
template <typename ArgFormatter = printf_arg_formatter<buffer_range<Char>>>
|
||||
OutputIt format();
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user