Lines Matching refs:Policy
29 template <typename Policy> class accessor;
474 template <typename Policy>
475 class accessor : public object_api<accessor<Policy>> {
476 using key_type = typename Policy::key_type;
489 Policy::set(obj, key, object_or_cast(std::forward<T>(value)));
495 template <typename T = Policy>
501 template <typename T = Policy>
513 if (!cache) { cache = Policy::get(obj, key); }
603 template <typename Policy>
604 class generic_iterator : public Policy {
609 using iterator_category = typename Policy::iterator_category;
610 using value_type = typename Policy::value_type;
611 using reference = typename Policy::reference;
612 using pointer = typename Policy::pointer;
615 generic_iterator(handle seq, ssize_t index) : Policy(seq, index) { }
617 reference operator*() const { return Policy::dereference(); }
621 It &operator++() { Policy::increment(); return *this; }
622 It operator++(int) { auto copy = *this; Policy::increment(); return copy; }
623 It &operator--() { Policy::decrement(); return *this; }
624 It operator--(int) { auto copy = *this; Policy::decrement(); return copy; }
625 It &operator+=(difference_type n) { Policy::advance(n); return *this; }
626 It &operator-=(difference_type n) { Policy::advance(-n); return *this; }