41template <
typename Tp,
typename Up>
49template <
typename Tp,
typename Up,
typename Vp =
typename Tp::value_type>
51minus(Tp& _lhs,
const Up& _rhs,
type_list<>,
long) ->
decltype(std::begin(_lhs), void())
58 for(
decltype(_n) i = 0; i < _n; ++i)
60 auto litr = std::begin(_lhs) + i;
61 auto ritr = std::begin(_rhs) + i;
66template <
typename Tp,
typename Up,
typename Kp =
typename Tp::key_type,
67 typename Mp =
typename Tp::mapped_type>
73 for(
auto litr = std::begin(_lhs); litr !=
std::end(_lhs); ++litr)
75 auto ritr = _rhs.find(litr->first);
78 minus(litr->second, ritr->second);
82template <
typename Tp,
typename Up>
87template <
typename Tp,
typename Up,
size_t... Idx>
90 ->
decltype(std::get<0>(_lhs), void())
96template <typename Tp, typename Up, enable_if_t<!concepts::is_null_type<Tp>::value>>
Tp & minus(Tp &, const Up &)
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(...)