Rosetta  2020.11
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Attributes | List of all members
fmt::BasicArgFormatter< Impl, Char, Spec > Class Template Reference

#include <format.h>

Inheritance diagram for fmt::BasicArgFormatter< Impl, Char, Spec >:
Inheritance graph
[legend]

Public Member Functions

 BasicArgFormatter (BasicFormatter< Char, Impl > &formatter, Spec &spec, const Char *fmt)
 
void visit_custom (internal::Arg::CustomValue c)
 
- Public Member Functions inherited from fmt::internal::ArgFormatterBase< Impl, Char, Spec >
 ArgFormatterBase (BasicWriter< Char > &w, Spec &s)
 
template<typename T >
void visit_any_int (T value)
 
template<typename T >
void visit_any_double (T value)
 
void visit_bool (bool value)
 
void visit_char (int value)
 
void visit_cstring (const char *value)
 
void visit_string (internal::Arg::StringValue< char > value)
 
void visit_wstring (internal::Arg::StringValue< Char > value)
 
void visit_pointer (const void *value)
 
- Public Member Functions inherited from fmt::ArgVisitor< Impl, void >
void report_unhandled_arg ()
 
void visit_unhandled_arg ()
 
void visit_int (int value)
 
void visit_long_long (LongLong value)
 
void visit_uint (unsigned value)
 
void visit_ulong_long (ULongLong value)
 
void visit_bool (bool value)
 
void visit_char (int value)
 
void visit_any_int (T)
 
void visit_double (double value)
 
void visit_long_double (long double value)
 
void visit_any_double (T)
 
void visit_cstring (const char *)
 
void visit_string (Arg::StringValue< char >)
 
void visit_wstring (Arg::StringValue< wchar_t >)
 
void visit_pointer (const void *)
 
void visit_custom (Arg::CustomValue)
 
void visit (const Arg &arg)
 

Private Attributes

BasicFormatter< Char, Impl > & formatter_
 
const Char * format_
 

Additional Inherited Members

- Public Types inherited from fmt::internal::ArgFormatterBase< Impl, Char, Spec >
typedef Spec SpecType
 
- Protected Member Functions inherited from fmt::internal::ArgFormatterBase< Impl, Char, Spec >
BasicWriter< Char > & writer ()
 
Spec & spec ()
 
void write (bool value)
 
void write (const char *value)
 

Detailed Description

template<typename Impl, typename Char, typename Spec = fmt::FormatSpec>
class fmt::BasicArgFormatter< Impl, Char, Spec >

An argument formatter based on the curiously recurring template pattern <http://en.wikipedia.org/wiki/Curiously_recurring_template_pattern>_.

To use ~fmt::BasicArgFormatter define a subclass that implements some or all of the visit methods with the same signatures as the methods in ~fmt::ArgVisitor, for example, ~fmt::ArgVisitor::visit_int(). Pass the subclass as the Impl template parameter. When a formatting function processes an argument, it will dispatch to a visit method specific to the argument type. For example, if the argument type is double then the ~fmt::ArgVisitor::visit_double() method of a subclass will be called. If the subclass doesn't contain a method with this signature, then a corresponding method of ~fmt::BasicArgFormatter or its superclass will be called.

Constructor & Destructor Documentation

template<typename Impl, typename Char, typename Spec = fmt::FormatSpec>
fmt::BasicArgFormatter< Impl, Char, Spec >::BasicArgFormatter ( BasicFormatter< Char, Impl > &  formatter,
Spec &  spec,
const Char *  fmt 
)
inline

Constructs an argument formatter object. formatter* is a reference to the main formatter object, spec contains format specifier information for standard argument types, and fmt points to the part of the format string being parsed for custom argument types.

Member Function Documentation

template<typename Impl, typename Char, typename Spec = fmt::FormatSpec>
void fmt::BasicArgFormatter< Impl, Char, Spec >::visit_custom ( internal::Arg::CustomValue  c)
inline

Formats an argument of a custom (user-defined) type.

Member Data Documentation

template<typename Impl, typename Char, typename Spec = fmt::FormatSpec>
const Char* fmt::BasicArgFormatter< Impl, Char, Spec >::format_
private
template<typename Impl, typename Char, typename Spec = fmt::FormatSpec>
BasicFormatter<Char, Impl>& fmt::BasicArgFormatter< Impl, Char, Spec >::formatter_
private

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