Permalink
Browse files

Eliminate boost::lexical_cast usage completely #39

  • Loading branch information...
1 parent 832df7f commit d2aba2ef56576200f7a862f21a3cf9a76466ee4b @lefticus lefticus committed Jun 3, 2012
@@ -93,27 +93,34 @@ namespace chaiscript
/**
- * to_string function for internal use. Uses ostream operator<<
- */
+ * to_string function for internal use. Uses ostream operator<<
+ */
template<typename Input>
- std::string to_string(Input i)
- {
- return boost::lexical_cast<std::string>(i);
- }
-
+ std::string to_string(Input i)
+ {
+ std::stringstream ss;
+ ss << i;
+ return ss.str();
+ }
/**
- * Internal function for converting from a string to a value
- * uses ostream operator >> to perform the conversion
- */
+ * Internal function for converting from a string to a value
+ * uses ostream operator >> to perform the conversion
+ */
template<typename Input>
- Input parse_string(const std::string &i)
- {
- return boost::lexical_cast<Input>(i);
- }
+ Input parse_string(const std::string &i)
+ {
+ std::stringstream ss(i);
+ Input t;
+ ss >> t;
+ return t;
+ }
+
+
+
/**
* Add all common functions for a POD type. All operators, and
* common conversions
@@ -12,8 +12,6 @@
#include <map>
#include <set>
#include <boost/shared_ptr.hpp>
-#include <boost/lexical_cast.hpp>
-#include <boost/tuple/tuple.hpp>
#include <stdexcept>
#include <vector>
#include <iostream>
@@ -21,7 +21,6 @@
#include <string>
#include <boost/function.hpp>
#include <boost/bind.hpp>
-#include <boost/lexical_cast.hpp>
#include <stdexcept>
#include <vector>
View
@@ -141,7 +141,9 @@ int main(int /*argc*/, char * /*argv*/[]) {
//Creating a functor on the stack and using it immediatly
int x = chai.eval<boost::function<int (int, int)> >("fun (x, y) { return x + y; }")(5, 6);
- log("Functor test output", boost::lexical_cast<std::string>(x));
+ std::stringstream ss;
+ ss << x;
+ log("Functor test output", ss.str());
chai.add(var(boost::shared_ptr<int>()), "nullvar");
chai("print(\"This should be true.\"); print(nullvar.is_var_null())");
View
@@ -14,8 +14,10 @@
void do_work(chaiscript::ChaiScript &c)
{
// c("use(\"work.chai\"); do_chai_work(num_iterations);");
- std::string name = "MyVar" + boost::lexical_cast<std::string>(rand());
- c.add(chaiscript::var(5), name);
+
+ std::stringstream ss;
+ ss << "MyVar" << rand();
+ c.add(chaiscript::var(5), ss.str());
c("use(\"work.chai\"); do_chai_work(10000);");
}

0 comments on commit d2aba2e

Please sign in to comment.