22 inline std::string
format(
const char *fmt, ...) {
25 std::vector<char> buffer(1024);
28 va_copy(args_copy, args);
29 int res = vsnprintf(buffer.data(), buffer.size(), fmt, args_copy);
32 if ((res >= 0) && (res <
static_cast<int>(buffer.size()))) {
34 return std::string(buffer.data());
38 const size_t size = res < 0 ? buffer.size() * 2 :
static_cast<size_t>(res) + 1;