diff --git a/api/units/data_rate.h b/api/units/data_rate.h
index 7119284..8a3836d 100644
--- a/api/units/data_rate.h
+++ b/api/units/data_rate.h
@@ -52,10 +52,12 @@
   }
   template <typename T>
   static constexpr DataRate bps(T bits_per_second) {
+    static_assert(std::is_arithmetic<T>::value, "");
     return FromValue(bits_per_second);
   }
   template <typename T>
   static constexpr DataRate kbps(T kilobits_per_sec) {
+    static_assert(std::is_arithmetic<T>::value, "");
     return FromFraction<1000>(kilobits_per_sec);
   }
   template <typename T = int64_t>
diff --git a/api/units/data_size.h b/api/units/data_size.h
index b4cbb65..90ef00d 100644
--- a/api/units/data_size.h
+++ b/api/units/data_size.h
@@ -31,14 +31,13 @@
     return FromStaticValue<bytes>();
   }
 
-  template <
-      typename T,
-      typename std::enable_if<std::is_arithmetic<T>::value>::type* = nullptr>
+  template <typename T>
   static DataSize bytes(T bytes) {
+    static_assert(std::is_arithmetic<T>::value, "");
     return FromValue(bytes);
   }
   template <typename T = int64_t>
-  typename std::enable_if<std::is_arithmetic<T>::value, T>::type bytes() const {
+  T bytes() const {
     return ToValue<T>();
   }
 
diff --git a/api/units/time_delta.h b/api/units/time_delta.h
index 6458369..e5172f4 100644
--- a/api/units/time_delta.h
+++ b/api/units/time_delta.h
@@ -46,14 +46,17 @@
   }
   template <typename T>
   static TimeDelta seconds(T seconds) {
+    static_assert(std::is_arithmetic<T>::value, "");
     return FromFraction<1000000>(seconds);
   }
   template <typename T>
   static TimeDelta ms(T milliseconds) {
+    static_assert(std::is_arithmetic<T>::value, "");
     return FromFraction<1000>(milliseconds);
   }
   template <typename T>
   static TimeDelta us(T microseconds) {
+    static_assert(std::is_arithmetic<T>::value, "");
     return FromValue(microseconds);
   }
   template <typename T = int64_t>
diff --git a/api/units/timestamp.h b/api/units/timestamp.h
index a6e450f..370a091 100644
--- a/api/units/timestamp.h
+++ b/api/units/timestamp.h
@@ -45,14 +45,17 @@
 
   template <typename T>
   static Timestamp seconds(T seconds) {
+    static_assert(std::is_arithmetic<T>::value, "");
     return FromFraction<1000000>(seconds);
   }
   template <typename T>
   static Timestamp ms(T milliseconds) {
+    static_assert(std::is_arithmetic<T>::value, "");
     return FromFraction<1000>(milliseconds);
   }
   template <typename T>
   static Timestamp us(T microseconds) {
+    static_assert(std::is_arithmetic<T>::value, "");
     return FromValue(microseconds);
   }
   template <typename T = int64_t>
