#include <string>
#include <stdio.h>
namespace fmt {
template< class ...Args >
std::string sprintf( const char * f, Args && ...args ) {
int size = snprintf( nullptr, 0, f, args... );
std::string res;
res.resize( size );
snprintf( & res[ 0 ], size + 1, f, args... );
return res;
}
}
#include <iostream>
using namespace std;
int main() {
cout << fmt::sprintf( "%s %d %.1f\n", "Hello", 42, 33.22 );
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHN0ZGlvLmg+CgpuYW1lc3BhY2UgZm10IHsKCnRlbXBsYXRlPCBjbGFzcyAuLi5BcmdzID4Kc3RkOjpzdHJpbmcgc3ByaW50ZiggY29uc3QgY2hhciAqIGYsIEFyZ3MgJiYgLi4uYXJncyApIHsKCWludCBzaXplID0gc25wcmludGYoIG51bGxwdHIsIDAsIGYsIGFyZ3MuLi4gKTsKCXN0ZDo6c3RyaW5nIHJlczsKCXJlcy5yZXNpemUoIHNpemUgKTsKCXNucHJpbnRmKCAmIHJlc1sgMCBdLCBzaXplICsgMSwgZiwgYXJncy4uLiApOwoJcmV0dXJuIHJlczsKfQoKfQoKI2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7Cgljb3V0IDw8IGZtdDo6c3ByaW50ZiggIiVzICVkICUuMWZcbiIsICJIZWxsbyIsIDQyLCAzMy4yMiApOwoJcmV0dXJuIDA7Cn0=