fork download
  1. #include <cstring>
  2. #include <iosfwd>
  3. #include <iomanip>
  4. #include <iostream>
  5. #include <sstream>
  6. #include <string>
  7.  
  8. using namespace std;
  9. #define DBG(x) { cout << setw(30) << left << #x << x << endl; }
  10.  
  11. ostream& join(ostream& o, string const&){ return o; }
  12.  
  13. template<typename T, typename... Ts>
  14. ostream& join(ostream& o, string const& delim, T&& val, Ts&&... Vs)
  15. {
  16. if(sizeof...(Ts)){
  17. o << val << delim;
  18. join(o,delim,Vs...);
  19. }else{
  20. o << val;
  21. }
  22. return o;
  23. }
  24.  
  25.  
  26. template<typename... Ts>
  27. string to_json(int hw, Ts&&... Vs)
  28. {
  29. stringstream s;
  30. s << "{ \"hardware\": " << hw << ",\n"
  31. "\"svalue\": ";
  32. join(s,",",Vs...);
  33. s << "}";
  34. return s.str();
  35. }
  36.  
  37. int main()
  38. {
  39. cout << to_json(1,2,13.37,6,7,8) << endl;
  40. cout << to_json(1,2,3) << endl;
  41. }
  42.  
Success #stdin #stdout 0s 3480KB
stdin
Standard input is empty
stdout
{ "hardware": 1,
"svalue": 2,13.37,6,7,8}
{ "hardware": 1,
"svalue": 2,3}