[WTF] Annotate Seconds' member functions and operators with constexpr
[WebKit-https.git] / Source / WTF / wtf / Seconds.h
index d07ffef..48483f2 100644 (file)
@@ -37,20 +37,20 @@ class WallTime;
 
 class Seconds {
 public:
-    Seconds() { }
+    constexpr Seconds() { }
     
     explicit constexpr Seconds(double value)
         : m_value(value)
     {
     }
     
-    double value() const { return m_value; }
+    constexpr double value() const { return m_value; }
     
-    double minutes() const { return m_value / 60; }
-    double seconds() const { return m_value; }
-    double milliseconds() const { return seconds() * 1000; }
-    double microseconds() const { return milliseconds() * 1000; }
-    double nanoseconds() const { return microseconds() * 1000; }
+    constexpr double minutes() const { return m_value / 60; }
+    constexpr double seconds() const { return m_value; }
+    constexpr double milliseconds() const { return seconds() * 1000; }
+    constexpr double microseconds() const { return milliseconds() * 1000; }
+    constexpr double nanoseconds() const { return microseconds() * 1000; }
 
     // Keep in mind that Seconds is held in double. If the value is not in range of 53bit integer, the result may not be precise.
     template<typename T> T minutesAs() const { static_assert(std::is_integral<T>::value, ""); return clampToAccepting64<T>(minutes()); }
@@ -89,37 +89,37 @@ public:
         return Seconds(std::numeric_limits<double>::infinity());
     }
     
-    explicit operator bool() const { return !!m_value; }
+    explicit constexpr operator bool() const { return !!m_value; }
     
-    Seconds operator+(Seconds other) const
+    constexpr Seconds operator+(Seconds other) const
     {
         return Seconds(value() + other.value());
     }
     
-    Seconds operator-(Seconds other) const
+    constexpr Seconds operator-(Seconds other) const
     {
         return Seconds(value() - other.value());
     }
     
-    Seconds operator-() const
+    constexpr Seconds operator-() const
     {
         return Seconds(-value());
     }
     
     // It makes sense to consider scaling a duration, like, "I want to wait 5 times as long as
     // last time!".
-    Seconds operator*(double scalar) const
+    constexpr Seconds operator*(double scalar) const
     {
         return Seconds(value() * scalar);
     }
     
-    Seconds operator/(double scalar) const
+    constexpr Seconds operator/(double scalar) const
     {
         return Seconds(value() / scalar);
     }
     
     // It's reasonable to think about ratios between Seconds.
-    double operator/(Seconds other) const
+    constexpr double operator/(Seconds other) const
     {
         return value() / other.value();
     }
@@ -177,32 +177,32 @@ public:
     WTF_EXPORT_PRIVATE MonotonicTime operator-(MonotonicTime) const;
     WTF_EXPORT_PRIVATE TimeWithDynamicClockType operator-(const TimeWithDynamicClockType&) const;
     
-    bool operator==(Seconds other) const
+    constexpr bool operator==(Seconds other) const
     {
         return m_value == other.m_value;
     }
     
-    bool operator!=(Seconds other) const
+    constexpr bool operator!=(Seconds other) const
     {
         return m_value != other.m_value;
     }
     
-    bool operator<(Seconds other) const
+    constexpr bool operator<(Seconds other) const
     {
         return m_value < other.m_value;
     }
     
-    bool operator>(Seconds other) const
+    constexpr bool operator>(Seconds other) const
     {
         return m_value > other.m_value;
     }
     
-    bool operator<=(Seconds other) const
+    constexpr bool operator<=(Seconds other) const
     {
         return m_value <= other.m_value;
     }
     
-    bool operator>=(Seconds other) const
+    constexpr bool operator>=(Seconds other) const
     {
         return m_value >= other.m_value;
     }