Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/3party
diff options
context:
space:
mode:
authorSergey Magidovich <mgsergio@mapswithme.com>2016-03-22 22:48:16 +0300
committerSergey Yershov <yershov@corp.mail.ru>2016-03-23 16:59:34 +0300
commit53d598928324e9eb71838201d128bce97d6093a9 (patch)
tree27139144f663d8439e32479933521d183c93344c /3party
parent623df1d181002e7dcc4214df59885f601952f42e (diff)
Fix bug in opening hours formatting.
Diffstat (limited to '3party')
-rw-r--r--3party/opening_hours/opening_hours.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/3party/opening_hours/opening_hours.cpp b/3party/opening_hours/opening_hours.cpp
index 81f7fd0997..ea603b43fc 100644
--- a/3party/opening_hours/opening_hours.cpp
+++ b/3party/opening_hours/opening_hours.cpp
@@ -96,6 +96,14 @@ class StreamFlagsKeeper
};
template <typename TNumber>
+constexpr bool IsChar(TNumber) noexcept
+{
+ return std::is_same<signed char, TNumber>::value ||
+ std::is_same<unsigned char, TNumber>::value ||
+ std::is_same<char, TNumber>::value;
+};
+
+template <typename TNumber, typename std::enable_if<!IsChar(TNumber{}), void*>::type = nullptr>
void PrintPaddedNumber(std::ostream & ost, TNumber const number, uint32_t const padding = 1)
{
static_assert(std::is_integral<TNumber>::value, "number should be of integral type.");
@@ -103,6 +111,12 @@ void PrintPaddedNumber(std::ostream & ost, TNumber const number, uint32_t const
ost << std::setw(padding) << std::setfill('0') << number;
}
+template <typename TNumber, typename std::enable_if<IsChar(TNumber{}), void*>::type = nullptr>
+void PrintPaddedNumber(std::ostream & ost, TNumber const number, uint32_t const padding = 1)
+{
+ PrintPaddedNumber(ost, static_cast<int32_t>(number), padding);
+}
+
void PrintHoursMinutes(std::ostream & ost,
std::chrono::hours::rep hours,
std::chrono::minutes::rep minutes)