Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
basic_memory_buffer< T, SIZE, Allocator > Class Template Referencefinal

#include <format.h>

Inheritance diagram for basic_memory_buffer< T, SIZE, Allocator >:
Inheritance graph
[legend]

Public Types

using const_reference = const T &
 
using value_type = T
 

Public Member Functions

template<typename ContiguousRange >
void append (const ContiguousRange &range)
 
 basic_memory_buffer (const Allocator &alloc=Allocator())
 
 basic_memory_buffer (basic_memory_buffer &&other) FMT_NOEXCEPT
 
auto get_allocator () const -> Allocator
 
auto operator= (basic_memory_buffer &&other) FMT_NOEXCEPT -> basic_memory_buffer &
 
void reserve (size_t new_capacity)
 
void resize (size_t count)
 
 ~basic_memory_buffer ()
 

Protected Member Functions

void grow (size_t size) final FMT_OVERRIDE
 

Private Member Functions

void deallocate ()
 
void move (basic_memory_buffer &other)
 

Private Attributes

Allocator alloc_
 
store_ [SIZE]
 

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**::

fmt::memory_buffer out; format_to(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 624 of file format.h.

Member Typedef Documentation

◆ const_reference

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 642 of file format.h.

◆ value_type

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 641 of file format.h.

Constructor & Destructor Documentation

◆ basic_memory_buffer() [1/2]

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

Definition at line 644 of file format.h.

◆ ~basic_memory_buffer()

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

Definition at line 648 of file format.h.

◆ basic_memory_buffer() [2/2]

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

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

Definition at line 676 of file format.h.

Member Function Documentation

◆ append()

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 706 of file format.h.

◆ deallocate()

template<typename T, size_t SIZE = inline_buffer_size, typename Allocator = std::allocator<T>>
void basic_memory_buffer< T, SIZE, Allocator >::deallocate ( )
inlineprivate

Definition at line 632 of file format.h.

◆ get_allocator()

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 692 of file format.h.

◆ grow()

template<typename T , size_t SIZE, typename Allocator >
void basic_memory_buffer< T, SIZE, Allocator >::grow ( size_t  size)
finalprotected

Definition at line 712 of file format.h.

◆ move()

template<typename T, size_t SIZE = inline_buffer_size, typename Allocator = std::allocator<T>>
void basic_memory_buffer< T, SIZE, Allocator >::move ( basic_memory_buffer< T, SIZE, Allocator > &  other)
inlineprivate

Definition at line 652 of file format.h.

◆ operator=()

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&
inline

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

Definition at line 683 of file format.h.

◆ reserve()

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 701 of file format.h.

◆ resize()

template<typename T, size_t SIZE = inline_buffer_size, typename Allocator = std::allocator<T>>
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 698 of file format.h.

Member Data Documentation

◆ alloc_

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

Definition at line 629 of file format.h.

◆ store_

template<typename T, size_t SIZE = inline_buffer_size, typename Allocator = std::allocator<T>>
T basic_memory_buffer< T, SIZE, Allocator >::store_[SIZE]
private

Definition at line 626 of file format.h.


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


plotjuggler
Author(s): Davide Faconti
autogenerated on Mon Jun 19 2023 03:12:54