14#ifndef OR_TOOLS_MATH_OPT_STORAGE_ITERATORS_H_
15#define OR_TOOLS_MATH_OPT_STORAGE_ITERATORS_H_
41template <
typename UpdateData,
typename V, V UpdateData::*Field,
52 : base_iter_(
std::move(base_iter)) {}
70 return lhs.base_iter_ == rhs.base_iter_;
74 return lhs.base_iter_ != rhs.base_iter_;
90template <
typename V,
typename C>
92template <
typename V,
typename C>
103template <auto Po
interToMember,
typename BaseIter>
108 BaseIter>(std::move(base_iter));
120template <auto Po
interToMember,
typename UpdateTrackers>
UpdateDataFieldIterator operator++(int)
Postfix.
typename BaseIter::difference_type difference_type
UpdateDataFieldIterator & operator++()
Prefix.
reference operator*() const
pointer operator->() const
UpdateDataFieldIterator(BaseIter base_iter)
friend bool operator==(const UpdateDataFieldIterator &lhs, const UpdateDataFieldIterator &rhs)
friend bool operator!=(const UpdateDataFieldIterator &lhs, const UpdateDataFieldIterator &rhs)
std::forward_iterator_tag iterator_category
An object oriented wrapper for quadratic constraints in ModelStorage.
iterator_range< T > make_range(T x, T y)
C MemberPointerClassType(V C::*)
auto MakeUpdateDataFieldIterator(BaseIter base_iter)
V MemberPointerValueType(V C::*)
auto MakeUpdateDataFieldRange(const UpdateTrackers &trackers)