#include <cstdarg>
#include <cstdio>
#include <iostream>
#include <string>
using namespace std;
string event(const char* format, ...) {
va_list length_args;
va_start(length_args, format);
va_list result_args;
va_copy(result_args, length_args);
const auto length = vsnprintf(nullptr, 0U, format, length_args);
string result(length, '\0');
vsprintf(&*begin(result), format, result_args);
va_end(result_args);
va_end(length_args);
return result;
}
int main() {
const auto two = event("%d %d", 13, 42);
const auto zero = event("lorem ipsum");
cout << two << ' ' << zero << endl;
}
I2luY2x1ZGUgPGNzdGRhcmc+CiNpbmNsdWRlIDxjc3RkaW8+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJpbmcgZXZlbnQoY29uc3QgY2hhciogZm9ybWF0LCAuLi4pIHsKICB2YV9saXN0IGxlbmd0aF9hcmdzOwoKICB2YV9zdGFydChsZW5ndGhfYXJncywgZm9ybWF0KTsKICB2YV9saXN0IHJlc3VsdF9hcmdzOwoKICB2YV9jb3B5KHJlc3VsdF9hcmdzLCBsZW5ndGhfYXJncyk7CiAgY29uc3QgYXV0byBsZW5ndGggPSB2c25wcmludGYobnVsbHB0ciwgMFUsIGZvcm1hdCwgbGVuZ3RoX2FyZ3MpOwogIHN0cmluZyByZXN1bHQobGVuZ3RoLCAnXDAnKTsKCiAgdnNwcmludGYoJipiZWdpbihyZXN1bHQpLCBmb3JtYXQsIHJlc3VsdF9hcmdzKTsKICB2YV9lbmQocmVzdWx0X2FyZ3MpOwogIHZhX2VuZChsZW5ndGhfYXJncyk7CiAgcmV0dXJuIHJlc3VsdDsKfQoKaW50IG1haW4oKSB7CiAgY29uc3QgYXV0byB0d28gPSBldmVudCgiJWQgJWQiLCAxMywgNDIpOwogIGNvbnN0IGF1dG8gemVybyA9IGV2ZW50KCJsb3JlbSBpcHN1bSIpOwoKICBjb3V0IDw8IHR3byA8PCAnICcgPDwgemVybyA8PCBlbmRsOwp9