HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
dynamic_format_arg_store< Context > Class Template Reference

#include <core.h>

Public Member Functions

template<typename T >
void push_back (const T &arg)
 
template<typename T >
void push_back (std::reference_wrapper< T > arg)
 
template<typename T >
void push_back (const detail::named_arg< char_type, T > &arg)
 
void clear ()
 
void reserve (size_t new_cap, size_t new_cap_named)
 

Friends

class basic_format_args< Context >
 

Detailed Description

template<typename Context>
class dynamic_format_arg_store< Context >

A dynamic version of fmt::format_arg_store. It's equipped with a storage to potentially temporary objects which lifetimes could be shorter than the format arguments object.

It can be implicitly converted into ~fmtbasic_format_args for passing into type-erased formatting functions such as ~fmtvformat.

Definition at line 626 of file core.h.

Member Function Documentation

template<typename Context>
void dynamic_format_arg_store< Context >::clear ( )
inline

Erase all elements from the store

Definition at line 1798 of file core.h.

template<typename Context>
template<typename T >
void dynamic_format_arg_store< Context >::push_back ( const T arg)
inline

Adds an argument into the dynamic store for later passing to a formatting function.

Note that custom types and string types (but not string views) are copied into the store dynamically allocating memory if necessary.

Example**::

fmt::dynamic_format_arg_store<fmt::format_context> store; store.push_back(42); store.push_back("abc"); store.push_back(1.5f); std::string result = fmt::vformat("{} and {} and {}", store);

Definition at line 1743 of file core.h.

template<typename Context>
template<typename T >
void dynamic_format_arg_store< Context >::push_back ( std::reference_wrapper< T arg)
inline

Adds a reference to the argument into the dynamic store for later passing to a formatting function. Supports named arguments wrapped in std::reference_wrapper via std::ref()/std::cref().

Example**::

fmt::dynamic_format_arg_store<fmt::format_context> store; char str[] = "1234567890"; store.push_back(std::cref(str)); int a1_val{42}; auto a1 = fmt::arg("a1_", a1_val); store.push_back(std::cref(a1));

Changing str affects the output but only for string and custom types. str[0] = 'X';

std::string result = fmt::vformat("{} and {a1_}"); assert(result == "X234567890 and 42");

Definition at line 1772 of file core.h.

template<typename Context>
template<typename T >
void dynamic_format_arg_store< Context >::push_back ( const detail::named_arg< char_type, T > &  arg)
inline

Adds named argument into the dynamic store for later passing to a formatting function. std::reference_wrapper is supported to avoid copying of the argument.

Definition at line 1786 of file core.h.

template<typename Context>
void dynamic_format_arg_store< Context >::reserve ( size_t  new_cap,
size_t  new_cap_named 
)
inline

Reserves space to store at least new_cap arguments including new_cap_named* named arguments.

Definition at line 1810 of file core.h.

Friends And Related Function Documentation

template<typename Context>
friend class basic_format_args< Context >
friend

Definition at line 1691 of file core.h.


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