From 2e3b8c8c2a7750588b0f27119b1735252be8c57f Mon Sep 17 00:00:00 2001 From: Wilhelm Schuermann Date: Tue, 9 Jun 2015 11:13:44 +0200 Subject: [PATCH] Plumbing: Move basic format() calls to templates - format() is already using variadic templates, make use of a plain one to remove more code bloat. --- src/text.cpp | 40 ---------------------------------------- src/text.h | 13 ++++++++----- 2 files changed, 8 insertions(+), 45 deletions(-) diff --git a/src/text.cpp b/src/text.cpp index eb717ad71..7d3998afb 100644 --- a/src/text.cpp +++ b/src/text.cpp @@ -686,46 +686,6 @@ const std::string format (const char* value) return s; } -//////////////////////////////////////////////////////////////////////////////// -const std::string format (char value) -{ - std::stringstream s; - s << value; - return s.str (); -} - -//////////////////////////////////////////////////////////////////////////////// -const std::string format (int value) -{ - std::stringstream s; - s << value; - return s.str (); -} - -//////////////////////////////////////////////////////////////////////////////// -const std::string format (unsigned int value) -{ - std::stringstream s; - s << value; - return s.str (); -} - -//////////////////////////////////////////////////////////////////////////////// -const std::string format (unsigned long value) -{ - std::stringstream s; - s << value; - return s.str (); -} - -//////////////////////////////////////////////////////////////////////////////// -const std::string format (long value) -{ - std::stringstream s; - s << value; - return s.str (); -} - //////////////////////////////////////////////////////////////////////////////// const std::string formatHex (int value) { diff --git a/src/text.h b/src/text.h index 0ea8f0a54..56577329d 100644 --- a/src/text.h +++ b/src/text.h @@ -61,17 +61,20 @@ int strippedLength (const std::string&); const std::string obfuscateText (const std::string&); const std::string format (std::string&); const std::string format (const char*); -const std::string format (char); -const std::string format (int); -const std::string format (unsigned int); -const std::string format (long); -const std::string format (unsigned long); const std::string formatHex (int); const std::string format (float, int, int); const std::string format (double, int, int); const std::string format (double); void replace_positional (std::string&, const std::string&, const std::string&); +template +const std::string format (T value) +{ + std::stringstream s; + s << value; + return s.str (); +} + template const std::string format (int fmt_num, const std::string& fmt, T arg) {