THRIFT-507. Stop using boost::lexical_cast in the compiler

We were using boost::lexical_cast to convert an integer to a string,
but using a stringstream is only slightly more complicated.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991252 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/parse/t_field.h b/compiler/cpp/src/parse/t_field.h
index 4217a51..fb58ca7 100644
--- a/compiler/cpp/src/parse/t_field.h
+++ b/compiler/cpp/src/parse/t_field.h
@@ -21,7 +21,7 @@
 #define T_FIELD_H
 
 #include <string>
-#include <boost/lexical_cast.hpp>
+#include <sstream>
 
 #include "t_doc.h"
 
@@ -117,7 +117,9 @@
   // This is not the same function as t_type::get_fingerprint_material,
   // but it does the same thing.
   std::string get_fingerprint_material() const {
-    return boost::lexical_cast<std::string>(key_) + ":" +
+    std::ostringstream keystm;
+    keystm << key_;
+    return keystm.str() + ":" +
       ((req_ == T_OPTIONAL) ? "opt-" : "") +
       type_->get_fingerprint_material();
   }
diff --git a/compiler/cpp/src/parse/t_scope.h b/compiler/cpp/src/parse/t_scope.h
index 91ec312..cbb92cf 100644
--- a/compiler/cpp/src/parse/t_scope.h
+++ b/compiler/cpp/src/parse/t_scope.h
@@ -22,8 +22,8 @@
 
 #include <map>
 #include <string>
+#include <sstream>
 
-#include <boost/lexical_cast.hpp>
 #include "t_type.h"
 #include "t_service.h"
 #include "t_const.h"
@@ -157,7 +157,9 @@
       t_enum* tenum = (t_enum*)ttype;
       t_enum_value* enum_value = tenum->get_constant_by_value(const_val->get_integer());
       if (enum_value == NULL) {
-        throw "Couldn't find a named value in enum " + tenum->get_name() + " for value " + boost::lexical_cast<std::string>(const_val->get_integer());
+        std::ostringstream valstm;
+        valstm << const_val->get_integer();
+        throw "Couldn't find a named value in enum " + tenum->get_name() + " for value " + valstm.str();
       }
       const_val->set_identifier(enum_value->get_name());
       const_val->set_enum(tenum);