104 std::string
param(
int idx)
const;
105 void paramPtr(
int idx,
const char *&begin,
const char *&end)
const;
108 static const int MAX_PARAMS = 3;
110 void parseFormat(
int length);
112 const char *
const format;
115 uint16_t params[MAX_PARAMS + 1];
154 explicit FormatArg(
const char *name_ = 0,
const char *defaultformat_ = 0) :
167 FormatArgT(
const char *name_,
const T &value_,
const char *defaultformat_) :
188 static type wrap(
const T &arg,
const char *name = 0,
const char *defaultformat = 0)
196 static type wrap(
const char (&arg)[N],
const char *name = 0,
const char *defaultformat = 0)
204 static type wrap(
const char *arg,
const char *name = 0,
const char *defaultformat = 0)
232formatarg(
const char *name,
const T &value,
const char *defaultformat = 0)
250template <
typename T0>
251inline std::string
stringf(
const char *fmt,
const T0 &p0)
254 FormatArg const *
const args[] = { &arg0 };
258template <
typename T0,
typename T1>
259inline std::string
stringf(
const char *fmt,
const T0 &p0,
const T1 &p1)
263 FormatArg const *
const args[] = { &arg0, &arg1 };
267template <
typename T0,
typename T1,
typename T2>
268inline std::string
stringf(
const char *fmt,
const T0 &p0,
const T1 &p1,
const T2 &p2)
273 FormatArg const *
const args[] = { &arg0, &arg1, &arg2 };
277template <
typename T0,
typename T1,
typename T2,
typename T3>
278inline std::string
stringf(
const char *fmt,
const T0 &p0,
const T1 &p1,
const T2 &p2,
const T3 &p3)
284 FormatArg const *
const args[] = { &arg0, &arg1, &arg2, &arg3 };
288template <
typename T0,
typename T1,
typename T2,
typename T3,
typename T4>
289inline std::string
stringf(
const char *fmt,
const T0 &p0,
const T1 &p1,
const T2 &p2,
const T3 &p3,
const T4 &p4)
296 FormatArg const *
const args[] = { &arg0, &arg1, &arg2, &arg3, &arg4 };
300template <
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
301inline std::string
stringf(
const char *fmt,
const T0 &p0,
const T1 &p1,
const T2 &p2,
const T3 &p3,
const T4 &p4,
const T5 &p5)
309 FormatArg const *
const args[] = { &arg0, &arg1, &arg2, &arg3, &arg4, &arg5 };
313template <
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
314inline std::string
stringf(
const char *fmt,
const T0 &p0,
const T1 &p1,
const T2 &p2,
const T3 &p3,
const T4 &p4,
const T5 &p5,
const T6 &p6)
323 FormatArg const *
const args[] = { &arg0, &arg1, &arg2, &arg3, &arg4, &arg5, &arg6 };
FormatArgWrapper< T >::type formatarg(const char *name, const T &value, const char *defaultformat=0)
Definition: StringF.h:232
std::string stringf(const char *fmt)
Definition: StringF.h:245
std::string to_string(int8_t value, const FormatSpec &fmt)
Definition: StringF.h:132
std::string string_format(const char *fmt, int numargs, FormatArg const *const args[])
Definition: StringF.cpp:435
double ToDouble() const
Definition: fixed.h:192
#define COUNTOF(array)
Definition: macros.h:39