HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
basic_memory_buffer< T, SIZE, Allocator > Class Template Referencefinal

#include <format.h>

+ Inheritance diagram for basic_memory_buffer< T, SIZE, Allocator >:

Public Types

using value_type = T
 
using const_reference = const T &
 
- Public Types inherited from detail::buffer< T >
using value_type = T
 
using const_reference = const T &
 

Public Member Functions

FMT_CONSTEXPR20 basic_memory_buffer (const Allocator &alloc=Allocator())
 
FMT_CONSTEXPR20 ~basic_memory_buffer ()
 
FMT_CONSTEXPR20 basic_memory_buffer (basic_memory_buffer &&other) noexcept
 
auto operator= (basic_memory_buffer &&other) noexcept-> basic_memory_buffer &
 
auto get_allocator () const -> Allocator
 
FMT_CONSTEXPR20 void resize (size_t count)
 
void reserve (size_t new_capacity)
 
template<typename ContiguousRange >
void append (const ContiguousRange &range)
 
- Public Member Functions inherited from detail::buffer< T >
 buffer (const buffer &)=delete
 
void operator= (const buffer &)=delete
 
FMT_INLINE auto begin () noexcept-> T *
 
FMT_INLINE auto end () noexcept-> T *
 
FMT_INLINE auto begin () const noexcept-> const T *
 
FMT_INLINE auto end () const noexcept-> const T *
 
constexpr auto size () const noexcept-> size_t
 
constexpr auto capacity () const noexcept-> size_t
 
FMT_CONSTEXPR auto data () noexcept-> T *
 
FMT_CONSTEXPR auto data () const noexcept-> const T *
 
void clear ()
 
FMT_CONSTEXPR20 void try_resize (size_t count)
 
FMT_CONSTEXPR20 void try_reserve (size_t new_capacity)
 
FMT_CONSTEXPR20 void push_back (const T &value)
 
template<typename U >
void append (const U *begin, const U *end)
 
template<typename Idx >
FMT_CONSTEXPR auto operator[] (Idx index) -> T &
 
template<typename Idx >
FMT_CONSTEXPR auto operator[] (Idx index) const -> const T &
 

Protected Member Functions

FMT_CONSTEXPR20 void grow (size_t size) override
 
- Protected Member Functions inherited from detail::buffer< T >
 buffer (size_t sz) noexcept
 
FMT_CONSTEXPR20 buffer (T *p=nullptr, size_t sz=0, size_t cap=0) noexcept
 
FMT_CONSTEXPR20 ~buffer ()=default
 
 buffer (buffer &&)=default
 
FMT_CONSTEXPR void set (T *buf_data, size_t buf_capacity) noexcept
 

Detailed Description

template<typename T, size_t SIZE = inline_buffer_size, typename Allocator = std::allocator<T>>
class basic_memory_buffer< T, SIZE, Allocator >

A dynamically growing memory buffer for trivially copyable/constructible types with the first SIZE elements stored in the object itself.

You can use the memory_buffer type alias for char instead.

Example**::

auto out = fmt::memory_buffer(); format_to(std::back_inserter(out), "The answer is {}.", 42);

This will append the following output to the out object:

.. code-block:: none

The answer is 42.

The output can be converted to an std::string with to_string(out).

Definition at line 925 of file format.h.

Member Typedef Documentation

template<typename T, size_t SIZE = inline_buffer_size, typename Allocator = std::allocator<T>>
using basic_memory_buffer< T, SIZE, Allocator >::const_reference = const T&

Definition at line 963 of file format.h.

template<typename T, size_t SIZE = inline_buffer_size, typename Allocator = std::allocator<T>>
using basic_memory_buffer< T, SIZE, Allocator >::value_type = T

Definition at line 962 of file format.h.

Constructor & Destructor Documentation

template<typename T, size_t SIZE = inline_buffer_size, typename Allocator = std::allocator<T>>
FMT_CONSTEXPR20 basic_memory_buffer< T, SIZE, Allocator >::basic_memory_buffer ( const Allocator &  alloc = Allocator())
inlineexplicit

Definition at line 965 of file format.h.

template<typename T, size_t SIZE = inline_buffer_size, typename Allocator = std::allocator<T>>
FMT_CONSTEXPR20 basic_memory_buffer< T, SIZE, Allocator >::~basic_memory_buffer ( )
inline

Definition at line 971 of file format.h.

template<typename T, size_t SIZE = inline_buffer_size, typename Allocator = std::allocator<T>>
FMT_CONSTEXPR20 basic_memory_buffer< T, SIZE, Allocator >::basic_memory_buffer ( basic_memory_buffer< T, SIZE, Allocator > &&  other)
inlinenoexcept

Constructs a :class:fmt::basic_memory_buffer object moving the content of the other object to it.

Definition at line 1000 of file format.h.

Member Function Documentation

template<typename T, size_t SIZE = inline_buffer_size, typename Allocator = std::allocator<T>>
template<typename ContiguousRange >
void basic_memory_buffer< T, SIZE, Allocator >::append ( const ContiguousRange &  range)
inline

Definition at line 1031 of file format.h.

template<typename T, size_t SIZE = inline_buffer_size, typename Allocator = std::allocator<T>>
auto basic_memory_buffer< T, SIZE, Allocator >::get_allocator ( ) const -> Allocator
inline

Definition at line 1017 of file format.h.

template<typename T, size_t SIZE = inline_buffer_size, typename Allocator = std::allocator<T>>
FMT_CONSTEXPR20 void basic_memory_buffer< T, SIZE, Allocator >::grow ( size_t  capacity)
inlineoverrideprotectedvirtual

Increases the buffer capacity to hold at least capacity elements.

Implements detail::buffer< T >.

Definition at line 939 of file format.h.

template<typename T, size_t SIZE = inline_buffer_size, typename Allocator = std::allocator<T>>
auto basic_memory_buffer< T, SIZE, Allocator >::operator= ( basic_memory_buffer< T, SIZE, Allocator > &&  other) -> basic_memory_buffer&
inlinenoexcept

Moves the content of the other basic_memory_buffer object to this one.

Definition at line 1009 of file format.h.

template<typename T, size_t SIZE = inline_buffer_size, typename Allocator = std::allocator<T>>
void basic_memory_buffer< T, SIZE, Allocator >::reserve ( size_t  new_capacity)
inline

Increases the buffer capacity to new_capacity.

Definition at line 1026 of file format.h.

template<typename T, size_t SIZE = inline_buffer_size, typename Allocator = std::allocator<T>>
FMT_CONSTEXPR20 void basic_memory_buffer< T, SIZE, Allocator >::resize ( size_t  count)
inline

Resizes the buffer to contain count elements. If T is a POD type new elements may not be initialized.

Definition at line 1023 of file format.h.


The documentation for this class was generated from the following file: