THRIFT-2859: compilation fix, C++11 removed from JSON generator
diff --git a/compiler/cpp/src/generate/t_json_generator.cc b/compiler/cpp/src/generate/t_json_generator.cc
index 3fa5b13..cbf3883 100644
--- a/compiler/cpp/src/generate/t_json_generator.cc
+++ b/compiler/cpp/src/generate/t_json_generator.cc
@@ -84,6 +84,13 @@
   std::ofstream f_json_;
   std::stack<bool> comma_needed_;
 
+  template <typename T>
+  string to_string(T t) {
+    std::ostringstream out;
+    out << t;
+    return out.str();
+  }
+
   string get_type_name(t_type* ttype);
   string get_qualified_name(t_type* ttype);
 
@@ -192,7 +199,7 @@
 
 void t_json_generator::write_key_and_integer(string key, int val) {
   write_comma_if_needed();
-  indent(f_json_) << json_str(key) << ": " << std::to_string(val);
+  indent(f_json_) << json_str(key) << ": " << to_string(val);
   indicate_comma_needed();
 }
 
@@ -429,11 +436,11 @@
 }
 
 void t_json_generator::write_integer(long value) {
-  f_json_ << std::to_string(value);
+  f_json_ << to_string(value);
 }
 
 void t_json_generator::write_double(double value) {
-  f_json_ << std::to_string(value);
+  f_json_ << to_string(value);
 }
 
 void t_json_generator::write_const_value(t_const_value* value, bool should_force_string) {
@@ -443,7 +450,7 @@
   case t_const_value::CV_IDENTIFIER:
   case t_const_value::CV_INTEGER:
     if (should_force_string) {
-      write_string(std::to_string(value->get_integer()));
+      write_string(to_string(value->get_integer()));
     } else {
       write_integer(value->get_integer());
     }
@@ -451,7 +458,7 @@
 
   case t_const_value::CV_DOUBLE:
     if (should_force_string) {
-      write_string(std::to_string(value->get_double()));
+      write_string(to_string(value->get_double()));
     } else {
       write_double(value->get_double());
     }