#include <cstring>
#include <iosfwd>
#include <iomanip>
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
#define DBG(x) { cout << setw(30) << left << #x << x << endl; }
ostream& join(ostream& o, string const&){ return o; }
template<typename T, typename... Ts>
ostream& join(ostream& o, string const& delim, T&& val, Ts&&... Vs)
{
if(sizeof...(Ts)){
o << val << delim;
join(o,delim,Vs...);
}else{
o << val;
}
return o;
}
template<typename... Ts>
string to_json(int hw, Ts&&... Vs)
{
stringstream s;
s << "{ \"hardware\": " << hw << ",\n"
"\"svalue\": ";
join(s,",",Vs...);
s << "}";
return s.str();
}
int main()
{
cout << to_json(1,2,13.37,6,7,8) << endl;
cout << to_json(1,2,3) << endl;
}
I2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxpb3Nmd2Q+CiNpbmNsdWRlIDxpb21hbmlwPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxzc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBEQkcoeCkgeyBjb3V0IDw8IHNldHcoMzApIDw8IGxlZnQgPDwgI3ggPDwgeCA8PCBlbmRsOyB9Cgpvc3RyZWFtJiBqb2luKG9zdHJlYW0mIG8sIHN0cmluZyBjb25zdCYpeyByZXR1cm4gbzsgfQoKdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUuLi4gVHM+Cm9zdHJlYW0mIGpvaW4ob3N0cmVhbSYgbywgc3RyaW5nIGNvbnN0JiBkZWxpbSwgVCYmIHZhbCwgVHMmJi4uLiBWcykKewoJaWYoc2l6ZW9mLi4uKFRzKSl7CgkJbyA8PCB2YWwgPDwgZGVsaW07CgkJam9pbihvLGRlbGltLFZzLi4uKTsKCX1lbHNlewoJCW8gPDwgdmFsOwoJfQoJcmV0dXJuIG87Cn0KCgp0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUcz4Kc3RyaW5nIHRvX2pzb24oaW50IGh3LCBUcyYmLi4uIFZzKQp7CglzdHJpbmdzdHJlYW0gczsKCXMgPDwgInsgXCJoYXJkd2FyZVwiOiAiIDw8IGh3IDw8ICIsXG4iCgkJICJcInN2YWx1ZVwiOiAiOwoJam9pbihzLCIsIixWcy4uLik7CglzIDw8ICJ9IjsKCXJldHVybiBzLnN0cigpOwp9CgppbnQgbWFpbigpCnsKCWNvdXQgPDwgdG9fanNvbigxLDIsMTMuMzcsNiw3LDgpIDw8IGVuZGw7Cgljb3V0IDw8IHRvX2pzb24oMSwyLDMpIDw8IGVuZGw7Cn0K