]> git.lyx.org Git - lyx.git/blobdiff - src/support/convert.cpp
Let paragraph::requestSpellcheck() consider contained insets
[lyx.git] / src / support / convert.cpp
index 70cd91eebafd15ac9ebf00baa3c4c3f48541edd6..7053be3fa7b04ebdff0a991567e8601bbb017127 100644 (file)
@@ -14,9 +14,8 @@
 #include "support/convert.h"
 #include "support/docstring.h"
 
-#include <boost/lexical_cast.hpp>
-
 #include <string>
+#include <sstream>
 //needed for Mac OSX 10.5.2 Leopard
 #include <cstdlib>
 
@@ -24,8 +23,6 @@ using namespace std;
 
 namespace lyx {
 
-using boost::lexical_cast;
-
 template<>
 string convert<string>(bool b)
 {
@@ -43,126 +40,189 @@ string convert<string>(char c)
 template<>
 string convert<string>(short unsigned int sui)
 {
-       return lexical_cast<string>(sui);
+       return to_string(sui);
 }
 
 
 template<>
 string convert<string>(int i)
 {
-       return lexical_cast<string>(i);
+       return to_string(i);
 }
 
 
 template<>
 docstring convert<docstring>(int i)
 {
-       return from_ascii(lexical_cast<string>(i));
+       return from_ascii(to_string(i));
 }
 
 
 template<>
 string convert<string>(unsigned int ui)
 {
-       return lexical_cast<string>(ui);
+       return to_string(ui);
 }
 
 
 template<>
 docstring convert<docstring>(unsigned int ui)
 {
-       return from_ascii(lexical_cast<string>(ui));
+       return from_ascii(to_string(ui));
 }
 
 
 template<>
 string convert<string>(unsigned long ul)
 {
-       return lexical_cast<string>(ul);
+       return to_string(ul);
 }
 
 
 template<>
 docstring convert<docstring>(unsigned long ul)
 {
-       return from_ascii(lexical_cast<string>(ul));
+       return from_ascii(to_string(ul));
 }
 
 
+#ifdef HAVE_LONG_LONG_INT
+template<>
+string convert<string>(unsigned long long ull)
+{
+       return to_string(ull);
+}
+
+
+template<>
+docstring convert<docstring>(unsigned long long ull)
+{
+       return from_ascii(to_string(ull));
+}
+
+
+template<>
+string convert<string>(long long ll)
+{
+       return to_string(ll);
+}
+
+
+template<>
+docstring convert<docstring>(long long ll)
+{
+       return from_ascii(to_string(ll));
+}
+
+
+template<>
+unsigned long long convert<unsigned long long>(string const s)
+{
+       return strtoull(s.c_str(), nullptr, 10);
+}
+
+
+/* not presently needed
+template<>
+long long convert<long long>(string const s)
+{
+       return strtoll(s.c_str(), nullptr, 10);
+}
+*/
+#endif
+
+
 template<>
 string convert<string>(long l)
 {
-       return lexical_cast<string>(l);
+       return to_string(l);
 }
 
 
 template<>
 docstring convert<docstring>(long l)
 {
-       return from_ascii(lexical_cast<string>(l));
+       return from_ascii(to_string(l));
 }
 
 
 template<>
 string convert<string>(float f)
 {
-       return lexical_cast<string>(f);
+       ostringstream val;
+       val << f;
+       return val.str();
 }
 
 
 template<>
 string convert<string>(double d)
 {
-       return lexical_cast<string>(d);
+       ostringstream val;
+       val << d;
+       return val.str();
+}
+
+
+template<>
+docstring convert<docstring>(double d)
+{
+       return from_ascii(convert<string>(d));
 }
 
 
 template<>
 int convert<int>(string const s)
 {
-       return strtol(s.c_str(), 0, 10);
+       return int(strtol(s.c_str(), nullptr, 10));
+}
+
+
+int convert(string const & s, int base)
+{
+       return int(strtol(s.c_str(), nullptr, base));
 }
 
 
 template<>
 int convert<int>(docstring const s)
 {
-       return strtol(to_ascii(s).c_str(), 0, 10);
+       return int(strtol(to_ascii(s).c_str(), nullptr, 10));
 }
 
 
 template<>
 unsigned int convert<unsigned int>(string const s)
 {
-       return strtoul(s.c_str(), 0, 10);
+       return static_cast<unsigned int>(strtoul(s.c_str(), nullptr, 10));
 }
 
 
 template<>
 unsigned long convert<unsigned long>(string const s)
 {
-       return strtoul(s.c_str(), 0, 10);
+       return strtoul(s.c_str(), nullptr, 10);
 }
 
 
 template<>
 double convert<double>(string const s)
 {
-       return strtod(s.c_str(), 0);
+       return strtod(s.c_str(), nullptr);
 }
 
 
 template<>
 int convert<int>(char const * cptr)
 {
-       return strtol(cptr, 0, 10);
+       return int(strtol(cptr, nullptr, 10));
 }
 
 
 template<>
 double convert<double>(char const * cptr)
 {
-       return strtod(cptr, 0);
+       return strtod(cptr, nullptr);
 }