44std::string printfToString(
const char *format, ...)
49 auto dryVsnprintfResult = std::vsnprintf(
nullptr, 0, format, ap);
52 if (dryVsnprintfResult < 0)
53 qOhosReportFatalErrorAndAbort(
"String formatting with format '%s' failed: %d", format, dryVsnprintfResult);
55 auto outputSize =
static_cast<
std::size_t>(dryVsnprintfResult);
57 std::string output(outputSize + 1,
'\0');
60 auto vsnprintfResult = std::vsnprintf(&output[0], output.size(), format, ap);
63 if (vsnprintfResult < 0)
64 qOhosReportFatalErrorAndAbort(
"String formatting with format '%s' failed: %d", format, vsnprintfResult);
66 output.resize(outputSize);