mirror of
https://git.wownero.com/wownero/onion-wownero-blockchain-explorer.git
synced 2024-08-15 00:33:12 +00:00
json.http and crow modified to compile with latest gcc
This commit is contained in:
parent
0b350a027d
commit
fd14259c1f
7 changed files with 36 additions and 91 deletions
|
@ -389,32 +389,32 @@ namespace crow
|
|||
// enable_if Arg1 == request && Arg2 == response
|
||||
// enable_if Arg1 == request && Arg2 != resposne
|
||||
// enable_if Arg1 != request
|
||||
#ifdef CROW_MSVC_WORKAROUND
|
||||
template <typename Func, size_t ... Indices>
|
||||
#else
|
||||
template <typename Func, unsigned ... Indices>
|
||||
#endif
|
||||
std::function<void(const request&, response&, const routing_params&)>
|
||||
wrap(Func f, black_magic::seq<Indices...>)
|
||||
{
|
||||
#ifdef CROW_MSVC_WORKAROUND
|
||||
using function_t = utility::function_traits<decltype(&Func::operator())>;
|
||||
#else
|
||||
using function_t = utility::function_traits<Func>;
|
||||
#endif
|
||||
if (!black_magic::is_parameter_tag_compatible(
|
||||
black_magic::get_parameter_tag_runtime(rule_.c_str()),
|
||||
black_magic::compute_parameter_tag_from_args_list<
|
||||
typename function_t::template arg<Indices>...>::value))
|
||||
{
|
||||
throw std::runtime_error("route_dynamic: Handler type is mismatched with URL parameters: " + rule_);
|
||||
}
|
||||
auto ret = detail::routing_handler_call_helper::Wrapped<Func, typename function_t::template arg<Indices>...>();
|
||||
ret.template set<
|
||||
typename function_t::template arg<Indices>...
|
||||
>(std::move(f));
|
||||
return ret;
|
||||
}
|
||||
//#ifdef CROW_MSVC_WORKAROUND
|
||||
// template <typename Func, size_t ... Indices>
|
||||
//#else
|
||||
// template <typename Func, unsigned ... Indices>
|
||||
//#endif
|
||||
// std::function<void(const request&, response&, const routing_params&)>
|
||||
// wrap(Func f, black_magic::seq<Indices...>)
|
||||
// {
|
||||
//#ifdef CROW_MSVC_WORKAROUND
|
||||
// using function_t = utility::function_traits<decltype(&Func::operator())>;
|
||||
//#else
|
||||
// using function_t = utility::function_traits<Func>;
|
||||
//#endif
|
||||
// if (!black_magic::is_parameter_tag_compatible(
|
||||
// black_magic::get_parameter_tag_runtime(rule_.c_str()),
|
||||
// black_magic::compute_parameter_tag_from_args_list<
|
||||
// typename function_t::template arg<Indices>...>::value))
|
||||
// {
|
||||
// throw std::runtime_error("route_dynamic: Handler type is mismatched with URL parameters: " + rule_);
|
||||
// }
|
||||
// auto ret = detail::routing_handler_call_helper::Wrapped<Func, typename function_t::template arg<Indices>...>();
|
||||
// ret.template set<
|
||||
// typename function_t::template arg<Indices>...
|
||||
// >(std::move(f));
|
||||
// return ret;
|
||||
// }
|
||||
|
||||
template <typename Func>
|
||||
void operator()(std::string name, Func&& f)
|
||||
|
|
|
@ -6379,10 +6379,10 @@ class basic_json
|
|||
{
|
||||
switch (lhs_type)
|
||||
{
|
||||
case value_t::array:
|
||||
{
|
||||
return *lhs.m_value.array < *rhs.m_value.array;
|
||||
}
|
||||
// case value_t::array:
|
||||
// {
|
||||
// return *lhs.m_value.array < *rhs.m_value.array;
|
||||
// }
|
||||
case value_t::object:
|
||||
{
|
||||
return *lhs.m_value.object < *rhs.m_value.object;
|
||||
|
|
|
@ -1,36 +0,0 @@
|
|||
#ifndef MEMBER_CHECKER_H
|
||||
#define MEMBER_CHECKER_H
|
||||
|
||||
|
||||
#define DEFINE_MEMBER_CHECKER(member) \
|
||||
template<typename T, typename V = bool> \
|
||||
struct has_ ## member : false_type { }; \
|
||||
\
|
||||
template<typename T> \
|
||||
struct has_ ## member<T, \
|
||||
typename enable_if< \
|
||||
!is_same<decltype(declval<T>().member), void>::value, \
|
||||
bool \
|
||||
>::type \
|
||||
> : true_type { };
|
||||
|
||||
#define HAS_MEMBER(C, member) \
|
||||
has_ ## member<C>::value
|
||||
|
||||
|
||||
// first getter if the member veriable is present, so we return its value
|
||||
// second getter, when the member is not present, so we return empty value, e.g., empty string
|
||||
#define DEFINE_MEMBER_GETTER(member, ret_value) \
|
||||
template<typename T> \
|
||||
typename enable_if<HAS_MEMBER(T, member), ret_value>::type \
|
||||
get_ ## member (T t){ \
|
||||
return t.member; \
|
||||
} \
|
||||
\
|
||||
template<typename T> \
|
||||
typename enable_if<!HAS_MEMBER(T, member), ret_value>::type \
|
||||
get_ ## member (T t){ \
|
||||
return ret_value(); \
|
||||
}
|
||||
|
||||
#endif // MEMBER_CHECKER_H
|
Loading…
Add table
Add a link
Reference in a new issue