Compilation works with g++ 6.4

This commit is contained in:
Arun M 2018-01-03 10:59:35 +05:30
parent 3bb3c6cf3b
commit 9487758b8c
4 changed files with 19 additions and 17 deletions

View file

@ -5,6 +5,7 @@
cmake_minimum_required (VERSION 2.8.11) cmake_minimum_required (VERSION 2.8.11)
project (cpp-jwt) project (cpp-jwt)
#SET (CMAKE_CXX_COMPILER /usr/local/bin/g++)
SET( CMAKE_CXX_FLAGS "-std=c++14" ) SET( CMAKE_CXX_FLAGS "-std=c++14" )
include_directories (include) include_directories (include)

View file

@ -31,6 +31,7 @@ SOFTWARE.
*/ */
#include <cassert> #include <cassert>
#include <memory>
#include <system_error> #include <system_error>
#include <openssl/bn.h> #include <openssl/bn.h>

View file

@ -52,9 +52,7 @@ std::ostream& write(std::ostream& os, const T& obj, bool pretty)
} }
template <typename T, template <typename T, typename Cond>
typename = typename std::enable_if<
detail::meta::has_create_json_obj_member<T>{}>::type>
std::ostream& operator<< (std::ostream& os, const T& obj) std::ostream& operator<< (std::ostream& os, const T& obj)
{ {
os << obj.create_json_obj(); os << obj.create_json_obj();
@ -344,16 +342,6 @@ void jwt_object::set_parameters()
return; return;
} }
template <typename T,
typename=typename std::enable_if_t<
!std::is_same<system_time_t, std::decay_t<T>>::value>
>
jwt_object& jwt_object::add_claim(const jwt::string_view name, T&& value)
{
payload_.add_claim(name, std::forward<T>(value));
return *this;
}
jwt_object& jwt_object::add_claim(const jwt::string_view name, system_time_t tp) jwt_object& jwt_object::add_claim(const jwt::string_view name, system_time_t tp)
{ {
return add_claim( return add_claim(
@ -406,9 +394,9 @@ std::error_code jwt_object::verify(
//is any of the one expected by the client. //is any of the one expected by the client.
auto fitr = std::find_if(algos.get().begin(), auto fitr = std::find_if(algos.get().begin(),
algos.get().end(), algos.get().end(),
[&](const auto& elem) [this](const auto& elem)
{ {
return jwt::str_to_alg(elem) == header().algo(); return jwt::str_to_alg(elem) == this->header().algo();
}); });
if (fitr == algos.get().end()) { if (fitr == algos.get().end()) {

View file

@ -177,6 +177,12 @@ std::string to_json_str(const T& obj, bool pretty=false);
template <typename T> template <typename T>
std::ostream& write(std::ostream& os, const T& obj, bool pretty=false); std::ostream& write(std::ostream& os, const T& obj, bool pretty=false);
template <typename T,
typename = typename std::enable_if<
detail::meta::has_create_json_obj_member<T>{}>::type
>
std::ostream& operator<< (std::ostream& os, const T& obj);
/** /**
* A helper class providing the necessary functionalities * A helper class providing the necessary functionalities
@ -945,8 +951,14 @@ public: // Exposed APIs
* Provides the glue interface for adding claim. * Provides the glue interface for adding claim.
* @note: See `jwt_payload::add_claim` for more details. * @note: See `jwt_payload::add_claim` for more details.
*/ */
template <typename T, typename Cond> template <typename T,
jwt_object& add_claim(const jwt::string_view name, T&& value); typename=typename std::enable_if_t<
!std::is_same<system_time_t, std::decay_t<T>>::value>>
jwt_object& add_claim(const jwt::string_view name, T&& value)
{
payload_.add_claim(name, std::forward<T>(value));
return *this;
}
/** /**
* Provides the glue interface for adding claim. * Provides the glue interface for adding claim.