41template <typename Tp, enable_if_t<std::is_arithmetic<Tp>::value> = 0>
46 return (_rhs < _lhs) ? _lhs : _rhs;
49template <
typename Tp,
typename Vp =
typename Tp::value_type>
51max(
const Tp& _lhs,
const Tp& _rhs,
type_list<>, ...) ->
decltype(std::begin(_lhs), Tp{})
56 using Int_t =
decltype(_nl);
59 auto _n = std::min<Int_t>(_nl, _nr);
63 for(Int_t i = 0; i < _n; ++i)
65 auto litr = std::begin(_lhs) + i;
66 auto ritr = std::begin(_rhs) + i;
67 auto itr = std::begin(
_ret) + i;
73template <
typename Tp,
typename Kp =
typename Tp::key_type,
74 typename Mp =
typename Tp::mapped_type>
76max(
const Tp& _lhs,
const Tp& _rhs,
type_list<>) ->
decltype(std::begin(_lhs), Tp{})
81 using Int_t =
decltype(_nl);
84 auto _n = std::min<Int_t>(_nl, _nr);
88 for(Int_t i = 0; i < _n; ++i)
90 auto litr = std::begin(_lhs) + i;
91 auto ritr = std::begin(_rhs) + i;
92 auto itr = std::begin(
_ret) + i;
98template <
typename Tp,
size_t... Idx>
101 ->
decltype(std::get<0>(_lhs), Tp{})
110template <
typename Tp>
112max(
const Tp& _lhs,
const Tp& _rhs)
const hash_alias_ptr_t hash_value_t std::string *& _ret
Tp max(const Tp &, const Tp &)
auto max(const Tp &_lhs, const Tp &_rhs, index_sequence< Idx... >) -> decltype(std::get< 0 >(_lhs), Tp{})
auto resize(T &,...) -> void
constexpr auto get_size(const Tp &, std::tuple<>) -> size_t
std::integer_sequence< size_t, Idx... > index_sequence
Alias template index_sequence.
lightweight tuple-alternative for meta-programming logic
concept that specifies that a type is not a useful type
#define TIMEMORY_FOLD_EXPRESSION(...)