Fix type concept check. Remove refernce to get key_type et al

This commit is contained in:
Arun M 2017-11-23 17:56:38 +05:30
parent fc294cbc8a
commit 973e7e0249
4 changed files with 30 additions and 25 deletions

View file

@ -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