diff --git a/ml.cpp b/ml.cpp index eedbbad..377ca9f 100644 --- a/ml.cpp +++ b/ml.cpp @@ -53,14 +53,6 @@ #define LIST_TYPE "list" - -// Convert an object to a string using a string stream conveniently -#if __linux -#define to_string(x) static_cast((std::ostringstream() << std::dec << x )).str() -#else -#define to_string(x) static_cast((std::ostringstream() << std::dec << x )).str() -#endif - // Is this character a valid lisp symbol character bool is_symbol(char ch) { return (isalpha(ch) || ispunct(ch)) && ch != '(' && ch != ')' && ch != '"' && ch != '\''; @@ -281,9 +273,9 @@ MlValue MlValue::cast_to_float() const { MlValue MlValue::cast_to_string() const { switch (type) { case INT: - return MlValue::string(to_string(stack_data.i)); + return MlValue::string(std::to_string(stack_data.i)); case FLOAT: - return MlValue::string(to_string(stack_data.f)); + return MlValue::string(std::to_string(stack_data.f)); case STRING: return *this; default: @@ -544,9 +536,9 @@ std::string MlValue::display() const { case ATOM: return str; case INT: - return to_string(stack_data.i); + return std::to_string(stack_data.i); case FLOAT: - return to_string(stack_data.f); + return std::to_string(stack_data.f); case STRING: return str; case LAMBDA: @@ -562,7 +554,7 @@ std::string MlValue::display() const { } return "(" + result + ")"; case BUILTIN: - return "<" + str + " at " + to_string(long(stack_data.b)) + ">"; + return "<" + str + " at " + std::to_string(long(stack_data.b)) + ">"; case NIL: return "nil"; default: @@ -581,9 +573,9 @@ std::string MlValue::debug() const { case ATOM: return str; case INT: - return to_string(stack_data.i); + return std::to_string(stack_data.i); case FLOAT: - return to_string(stack_data.f); + return std::to_string(stack_data.f); case STRING: for (size_t i = 0; i < str.length(); i++) { if (str[i] == '"') result += "\\\""; @@ -603,7 +595,7 @@ std::string MlValue::debug() const { } return "(" + result + ")"; case BUILTIN: - return "<" + str + " at " + to_string(long(stack_data.b)) + ">"; + return "<" + str + " at " + std::to_string(long(stack_data.b)) + ">"; case NIL: return "nil"; default: