|
Rosetta
|
#include <core.h>
Classes | |
| struct | need_copy |
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) |
Private Types | |
| using | char_type = typename Context::char_type |
| template<typename T > | |
| using | stored_type = conditional_t< detail::is_string< T >::value, std::basic_string< char_type >, T > |
Private Member Functions | |
| unsigned long long | get_types () const |
| const basic_format_arg< Context > * | data () const |
| template<typename T > | |
| void | emplace_arg (const T &arg) |
| template<typename T > | |
| void | emplace_arg (const detail::named_arg< char_type, T > &arg) |
Private Attributes | |
| std::vector< basic_format_arg< Context > > | data_ |
| std::vector< detail::named_arg_info< char_type > > | named_info_ |
| detail::dynamic_arg_list | dynamic_args_ |
Friends | |
| class | basic_format_args< Context > |
\rst 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. \endrst
|
private |
|
private |
|
inline |
Erase all elements from the store
Referenced by pyrosetta.bindings.pose.ResidueLabelAccessor::discard().
|
inlineprivate |
|
inlineprivate |
References arg(), data, and detail::unwrap().
|
inlineprivate |
References arg().
|
inlineprivate |
References detail::has_named_args_bit, and detail::is_unpacked_bit.
|
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.
References arg(), detail::const_check(), and detail::dynamic_arg_list::push().
|
inline |
\rst 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); \endrst
References arg(), detail::const_check(), detail::dynamic_arg_list::push(), and detail::unwrap().
|
inline |
\rst
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"); \endrst
|
inline |
\rst Reserves space to store at least new_cap arguments including new_cap_named* named arguments. \endrst
References FMT_ASSERT.
|
friend |
|
private |
|
private |
|
private |