17 template <
typename ArgFormatter>
19 const char *&format_str,
const std::tm &tm) {
20 if (*format_str ==
':')
22 const char *
end = format_str;
23 while (*end && *end !=
'}')
28 format.
append(format_str, end + 1);
29 format[format.
size() - 1] =
'\0';
34 std::size_t
count = std::strftime(&buffer[start], size, &format[0], &tm);
36 buffer.
resize(start + count);
39 if (size >= format.
size() * 256) {
46 const std::size_t MIN_GROWTH = 10;
47 buffer.
reserve(buffer.
capacity() + (size > MIN_GROWTH ? size : MIN_GROWTH));
void format_arg(BasicFormatter< Char, ArgFormatter > &f, const Char *&format_str, const T &value)
std::string format(CStringRef format_str, ArgList args)
void reserve(std::size_t capacity)
GLuint GLuint GLsizei count
std::size_t capacity() const
void resize(std::size_t new_size)
void append(const U *begin, const U *end)