From 973e7e0249729954cee38202675142828551e558 Mon Sep 17 00:00:00 2001
From: Arun M <arun11299@gmail.com>
Date: Thu, 23 Nov 2017 17:56:38 +0530
Subject: [PATCH] Fix type concept check. Remove refernce to get key_type et al

---
 include/jwt/detail/meta.hpp         |   9 +++---
 include/jwt/parameters.hpp          |  44 +++++++++++++++-------------
 include/jwt/test/test_jwt_object    | Bin 587980 -> 587924 bytes
 include/jwt/test/test_jwt_object.cc |   2 ++
 4 files changed, 30 insertions(+), 25 deletions(-)

diff --git a/include/jwt/detail/meta.hpp b/include/jwt/detail/meta.hpp
index 76c6f91..cf02562 100644
--- a/include/jwt/detail/meta.hpp
+++ b/include/jwt/detail/meta.hpp
@@ -31,7 +31,7 @@ struct empty_type {};
 /**
  */
 template <typename T, typename=void>
-struct has_create_json_obj_member: std::false_type
+struct has_create_json_obj_member
 {
 };
 
@@ -72,22 +72,21 @@ template <typename T>
 struct is_mapping_concept<T,
   void_t<
     typename std::enable_if<
-      std::is_constructible<jwt::string_view, typename T::key_type>::value,
+      std::is_constructible<jwt::string_view, typename std::remove_reference_t<T>::key_type>::value,
       void
     >::type,
 
     typename std::enable_if<
-      std::is_constructible<jwt::string_view, typename T::mapped_type>::value,
+      std::is_constructible<jwt::string_view, typename std::remove_reference_t<T>::mapped_type>::value,
       void
     >::type,
 
     decltype(
-      std::declval<T&>().operator[](std::declval<const typename T::key_type&>()),
+      std::declval<T&>().operator[](std::declval<typename std::remove_reference_t<T>::key_type>()),
       std::declval<T&>().begin(),
       std::declval<T&>().end(),
       (void)0
     )
-
   >
   >: std::true_type
 {
diff --git a/include/jwt/parameters.hpp b/include/jwt/parameters.hpp
index 07407cc..af16ed7 100644
--- a/include/jwt/parameters.hpp
+++ b/include/jwt/parameters.hpp
@@ -107,16 +107,6 @@ struct headers_param
 using param_init_list_t = std::initializer_list<std::pair<jwt::string_view, jwt::string_view>>;
 
 
-/**
- */
-template <typename MappingConcept,
-          typename=typename jwt::detail::meta::is_mapping_concept<MappingConcept>::type>
-detail::payload_param<MappingConcept> 
-payload(MappingConcept&& mc)
-{
-  return { std::forward<MappingConcept>(mc) };
-}
-
 /**
  */
 detail::payload_param<std::unordered_map<std::string, std::string>>
@@ -131,6 +121,18 @@ payload(const param_init_list_t& kvs)
   return { std::move(m) };
 }
 
+/**
+ */
+template <typename MappingConcept>
+detail::payload_param<MappingConcept>
+payload(MappingConcept&& mc)
+{
+  static_assert (jwt::detail::meta::is_mapping_concept<MappingConcept>::value,
+      "Template parameter does not meet the requirements for MappingConcept.");
+
+  return { std::forward<MappingConcept>(mc) };
+}
+
 
 /**
  */
@@ -153,16 +155,6 @@ detail::algorithm_param algorithm(jwt::algorithm alg)
   return { alg };
 }
 
-/**
- */
-template <typename MappingConcept,
-          typename=typename jwt::detail::meta::is_mapping_concept<MappingConcept>::type>
-detail::headers_param<MappingConcept>
-headers(MappingConcept&& mc)
-{
-  return { std::forward<MappingConcept>(mc) };
-}
-
 /**
  */
 detail::headers_param<std::map<std::string, std::string>>
@@ -177,6 +169,18 @@ headers(const param_init_list_t& kvs)
   return { std::move(m) };
 }
 
+/**
+ */
+template <typename MappingConcept>
+detail::headers_param<MappingConcept>
+headers(MappingConcept&& mc)
+{
+  static_assert (jwt::detail::meta::is_mapping_concept<MappingConcept>::value,
+       "Template parameter does not meet the requirements for MappingConcept.");
+
+  return { std::forward<MappingConcept>(mc) };
+}
+
 } // END namespace params
 } // END namespace jwt
 
diff --git a/include/jwt/test/test_jwt_object b/include/jwt/test/test_jwt_object
index c9600cf70382916f7f35921ab653f97803519672..855a387d505bd0c17dc0b693a37bb25728013e1a 100755
GIT binary patch
delta 16719
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
O*8IF1-LLC1fBqkMFHPhC

delta 16754
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

diff --git a/include/jwt/test/test_jwt_object.cc b/include/jwt/test/test_jwt_object.cc
index b41ffbc..493cecd 100644
--- a/include/jwt/test/test_jwt_object.cc
+++ b/include/jwt/test/test_jwt_object.cc
@@ -11,12 +11,14 @@ void basic_jwt_object_test()
                                 {"a", "b"},
                                 {"c", "d"} 
                               }));
+
   //check with std::map
   std::map<std::string, std::string> m;
   m["a"] = "b";
   m["c"] = "d";
 
   jwt::jwt_object obj1{payload(m)};
+  
   auto obj2 = std::move(obj1);
 
   std::cout << obj2.payload() << std::endl;