diff --git a/src/support/convert.cpp b/src/support/convert.cpp index 7053be3fa7..46de4b455c 100644 --- a/src/support/convert.cpp +++ b/src/support/convert.cpp @@ -24,63 +24,63 @@ using namespace std; namespace lyx { template<> -string convert(bool b) +string convert(bool const & b) { return (b ? "true" : "false"); } template<> -string convert(char c) +string convert(char const & c) { return string(1, c); } template<> -string convert(short unsigned int sui) +string convert(short unsigned int const & sui) { return to_string(sui); } template<> -string convert(int i) +string convert(int const & i) { return to_string(i); } template<> -docstring convert(int i) +docstring convert(int const & i) { return from_ascii(to_string(i)); } template<> -string convert(unsigned int ui) +string convert(unsigned int const & ui) { return to_string(ui); } template<> -docstring convert(unsigned int ui) +docstring convert(unsigned int const & ui) { return from_ascii(to_string(ui)); } template<> -string convert(unsigned long ul) +string convert(unsigned long const & ul) { return to_string(ul); } template<> -docstring convert(unsigned long ul) +docstring convert(unsigned long const & ul) { return from_ascii(to_string(ul)); } @@ -88,35 +88,35 @@ docstring convert(unsigned long ul) #ifdef HAVE_LONG_LONG_INT template<> -string convert(unsigned long long ull) +string convert(unsigned long long const & ull) { return to_string(ull); } template<> -docstring convert(unsigned long long ull) +docstring convert(unsigned long long const & ull) { return from_ascii(to_string(ull)); } template<> -string convert(long long ll) +string convert(long long const & ll) { return to_string(ll); } template<> -docstring convert(long long ll) +docstring convert(long long const & ll) { return from_ascii(to_string(ll)); } template<> -unsigned long long convert(string const s) +unsigned long long convert(string const & s) { return strtoull(s.c_str(), nullptr, 10); } @@ -124,7 +124,7 @@ unsigned long long convert(string const s) /* not presently needed template<> -long long convert(string const s) +long long convert(string const & s) { return strtoll(s.c_str(), nullptr, 10); } @@ -133,21 +133,21 @@ long long convert(string const s) template<> -string convert(long l) +string convert(long const & l) { return to_string(l); } template<> -docstring convert(long l) +docstring convert(long const & l) { return from_ascii(to_string(l)); } template<> -string convert(float f) +string convert(float const & f) { ostringstream val; val << f; @@ -156,7 +156,7 @@ string convert(float f) template<> -string convert(double d) +string convert(double const & d) { ostringstream val; val << d; @@ -165,14 +165,14 @@ string convert(double d) template<> -docstring convert(double d) +docstring convert(double const & d) { return from_ascii(convert(d)); } template<> -int convert(string const s) +int convert(string const & s) { return int(strtol(s.c_str(), nullptr, 10)); } @@ -185,28 +185,28 @@ int convert(string const & s, int base) template<> -int convert(docstring const s) +int convert(docstring const & s) { return int(strtol(to_ascii(s).c_str(), nullptr, 10)); } template<> -unsigned int convert(string const s) +unsigned int convert(string const & s) { return static_cast(strtoul(s.c_str(), nullptr, 10)); } template<> -unsigned long convert(string const s) +unsigned long convert(string const & s) { return strtoul(s.c_str(), nullptr, 10); } template<> -double convert(string const s) +double convert(string const & s) { return strtod(s.c_str(), nullptr); } diff --git a/src/support/convert.h b/src/support/convert.h index 8061732dbe..ac0fd2903a 100644 --- a/src/support/convert.h +++ b/src/support/convert.h @@ -21,36 +21,40 @@ namespace lyx { template -Target convert(Source arg); +Target convert(Source const & arg); -template<> std::string convert(bool b); -template<> std::string convert(char c); -template<> std::string convert(short unsigned int sui); -template<> std::string convert(int i); -template<> docstring convert(int i); -template<> std::string convert(unsigned int ui); -template<> docstring convert(unsigned int ui); -template<> std::string convert(unsigned long ul); -template<> docstring convert(unsigned long ul); +template<> std::string convert(bool const & b); +template<> std::string convert(char const & c); +template<> std::string convert(short unsigned int const & sui); +template<> std::string convert(int const & i); +template<> docstring convert(int const & i); +template<> std::string convert(unsigned int const & ui); +template<> docstring convert(unsigned int const & ui); +template<> std::string convert(unsigned long const & ul); +template<> docstring convert(unsigned long const & ul); #ifdef HAVE_LONG_LONG_INT -template<> std::string convert(unsigned long long ull); -template<> docstring convert(unsigned long long ull); -template<> std::string convert(long long ll); -template<> docstring convert(long long ll); +template<> std::string convert(unsigned long long const & ull); +template<> docstring convert(unsigned long long const & ull); +template<> std::string convert(long long const & ll); +template<> docstring convert(long long const & ll); template<> unsigned long long convert(std::string const & s); // not presently needed // template<> long long convert(std::string const & s); #endif -template<> std::string convert(long l); -template<> docstring convert(long l); -template<> std::string convert(float f); -template<> std::string convert(double d); +template<> std::string convert(long const & l); +template<> docstring convert(long const & l); +template<> std::string convert(float const & f); +template<> std::string convert(double const & d); template<> int convert(std::string const & s); template<> int convert(docstring const & s); template<> unsigned int convert(std::string const & s); template<> unsigned long convert(std::string const & s); template<> double convert(std::string const & s); + +template +Target convert(char const * arg); + template<> int convert(char const * cptr); template<> double convert(char const * cptr);