7#ifndef PXR_EXEC_VDF_COUNTING_ITERATOR
8#define PXR_EXEC_VDF_COUNTING_ITERATOR
15PXR_NAMESPACE_OPEN_SCOPE
23 using iterator_category = std::random_access_iterator_tag;
24 using value_type =
const T;
25 using reference =
const T;
26 using pointer =
const T *;
27 using difference_type = std::make_signed_t<value_type>;
32 reference operator*()
const {
return _integer; }
33 pointer operator->()
const {
return &_integer; }
34 value_type operator[](
const difference_type n)
const {
83 return _integer - rhs._integer;
87 return _integer == rhs._integer;
91 return _integer != rhs._integer;
95 return _integer < rhs._integer;
99 return _integer <= rhs._integer;
103 return _integer > rhs._integer;
107 return _integer >= rhs._integer;
114PXR_NAMESPACE_CLOSE_SCOPE
Random access counting iterator that simply operates on an underlying integer index.