security: CommandInterestValidator
refs #2376
Change-Id: Ia1d2231a4fb7ad130e11dd0d0dd52d8007149470
diff --git a/src/util/time.hpp b/src/util/time.hpp
index 976a27b..f8bcabc 100644
--- a/src/util/time.hpp
+++ b/src/util/time.hpp
@@ -43,6 +43,18 @@
using boost::chrono::duration_cast;
+/** \return the absolute value of the duration d
+ * \note The function does not participate in the overload resolution
+ * unless std::numeric_limits<Rep>::is_signed is true.
+ */
+template<typename Rep, typename Period,
+ typename = typename std::enable_if<duration<Rep, Period>::min() < duration<Rep, Period>::zero()>::type>
+constexpr duration<Rep, Period>
+abs(duration<Rep, Period> d)
+{
+ return d >= d.zero() ? d : -d;
+}
+
/**
* \brief System clock
*