diff --git a/include/jwt/impl/jwt.ipp b/include/jwt/impl/jwt.ipp
index e5474e3..5e17936 100644
--- a/include/jwt/impl/jwt.ipp
+++ b/include/jwt/impl/jwt.ipp
@@ -289,10 +289,10 @@ jwt_signature::get_verify_algorithm_impl(const jwt_header& hdr) const noexcept
 
 
 //
-template <typename First, typename... Rest>
+template <typename First, typename... Rest,
+          typename SFINAE_COND>
 jwt_object::jwt_object(
-    std::enable_if_t<detail::meta::is_parameter_concept<First>::value, First>&& first,
-    Rest&&... rest)
+    First&& first, Rest&&... rest)
 {
   static_assert (detail::meta::is_parameter_concept<First>::value && 
                  detail::meta::are_all_params<Rest...>::value,
diff --git a/include/jwt/jwt.hpp b/include/jwt/jwt.hpp
index fbb496e..c96edcb 100644
--- a/include/jwt/jwt.hpp
+++ b/include/jwt/jwt.hpp
@@ -888,8 +888,9 @@ public: // 'tors
    * containers which models `MappingConcept` (see `meta::is_mapping_concept`)
    * to populate header. Not much useful unless JWE is supported.
    */
-  template <typename First, typename... Rest>
-  jwt_object(std::enable_if_t<detail::meta::is_parameter_concept<First>::value, First>&& first, Rest&&... rest);
+  template <typename First, typename... Rest,
+            typename=std::enable_if_t<detail::meta::is_parameter_concept<First>::value>>
+  jwt_object(First&& first, Rest&&... rest);
 
 public: // Exposed static APIs
   /**