[LyX/master] Fix linking problem by adding convert from string to unsigned long long.
Richard Kimberly Heck
rikiheck at lyx.org
Thu Oct 15 01:55:57 UTC 2020
commit 1f22a2520a5a4c0840b318bdeac2a07826674af1
Author: Richard Kimberly Heck <rikiheck at lyx.org>
Date: Wed Oct 14 22:28:10 2020 -0400
Fix linking problem by adding convert from string to unsigned long long.
---
src/support/convert.cpp | 34 ++++++++++++++++++++++++----------
src/support/convert.h | 9 +++++----
2 files changed, 29 insertions(+), 14 deletions(-)
diff --git a/src/support/convert.cpp b/src/support/convert.cpp
index af0ad62..5912ac5 100644
--- a/src/support/convert.cpp
+++ b/src/support/convert.cpp
@@ -118,40 +118,54 @@ docstring convert<docstring>(unsigned long long ull)
{
return from_ascii(lexical_cast<string>(ull));
}
-#endif
template<>
-string convert<string>(long l)
+string convert<string>(long long ll)
{
- return lexical_cast<string>(l);
+ return lexical_cast<string>(ll);
}
template<>
-docstring convert<docstring>(long l)
+docstring convert<docstring>(long long ll)
{
- return from_ascii(lexical_cast<string>(l));
+ return from_ascii(lexical_cast<string>(ll));
}
-#ifdef HAVE_LONG_LONG_INT
template<>
-string convert<string>(long long ll)
+unsigned long long convert<unsigned long long>(string const s)
{
- return lexical_cast<string>(ll);
+ return strtoull(s.c_str(), nullptr, 10);
}
+/* not presently needed
template<>
-docstring convert<docstring>(long long ll)
+long long convert<long long>(string const s)
{
- return from_ascii(lexical_cast<string>(ll));
+ return strtoll(s.c_str(), nullptr, 10);
}
+*/
#endif
template<>
+string convert<string>(long l)
+{
+ return lexical_cast<string>(l);
+}
+
+
+template<>
+docstring convert<docstring>(long l)
+{
+ return from_ascii(lexical_cast<string>(l));
+}
+
+
+template<>
string convert<string>(float f)
{
std::ostringstream val;
diff --git a/src/support/convert.h b/src/support/convert.h
index 1b3e5be..8061732 100644
--- a/src/support/convert.h
+++ b/src/support/convert.h
@@ -36,13 +36,14 @@ template<> docstring convert<docstring>(unsigned long ul);
#ifdef HAVE_LONG_LONG_INT
template<> std::string convert<std::string>(unsigned long long ull);
template<> docstring convert<docstring>(unsigned long long ull);
-#endif
-template<> std::string convert<std::string>(long l);
-template<> docstring convert<docstring>(long l);
-#ifdef HAVE_LONG_LONG_INT
template<> std::string convert<std::string>(long long ll);
template<> docstring convert<docstring>(long long ll);
+template<> unsigned long long convert<unsigned long long>(std::string const & s);
+// not presently needed
+// template<> long long convert<long long>(std::string const & s);
#endif
+template<> std::string convert<std::string>(long l);
+template<> docstring convert<docstring>(long l);
template<> std::string convert<std::string>(float f);
template<> std::string convert<std::string>(double d);
template<> int convert<int>(std::string const & s);
More information about the lyx-cvs
mailing list