50 template<
typename T>
class Span;
97 return copied_iterator;
102 return a.current_ !=
b.current_;
107 return a.current_ ==
b.current_;
133 return start_ + index;
141 return (
a.size_ ==
b.size_) && (
a.start_ ==
b.start_ ||
a.size_ == 0);
197 return start_ + size_ - 1 - n;
215 return start_ + size_;
231 return value >= start_ && value < start_ + size_;
257 const int64_t new_size = std::max<int64_t>(0, size_ - n);
268 const int64_t new_size = std::max<int64_t>(0, size_ - n);
279 const int64_t new_size = std::min<int64_t>(size_, n);
290 const int64_t new_size = std::min<int64_t>(size_, n);
291 return IndexRange(start_ + size_ - new_size, new_size);
315 static std::atomic<int64_t> s_current_array_size;
316 static std::atomic<int64_t *> s_current_array;
constexpr friend bool operator!=(const Iterator &a, const Iterator &b)
constexpr Iterator(int64_t current)
std::forward_iterator_tag iterator_category
std::ptrdiff_t difference_type
constexpr int64_t operator*() const
const int64_t & reference
constexpr friend bool operator==(const Iterator &a, const Iterator &b)
constexpr Iterator operator++(int) const
constexpr Iterator & operator++()
constexpr int64_t one_before_start() const
constexpr int64_t first() const
constexpr int64_t one_after_last() const
constexpr IndexRange slice(IndexRange range) const
constexpr friend bool operator==(IndexRange a, IndexRange b)
constexpr int64_t operator[](int64_t index) const
constexpr IndexRange shift(int64_t n) const
Span< int64_t > as_span() const
constexpr Iterator end() const
constexpr IndexRange drop_back(int64_t n) const
friend std::ostream & operator<<(std::ostream &stream, IndexRange range)
constexpr int64_t last(const int64_t n=0) const
constexpr IndexRange(int64_t start, int64_t size)
constexpr int64_t size() const
constexpr bool is_empty() const
constexpr IndexRange()=default
constexpr IndexRange after(int64_t n) const
constexpr int64_t start() const
constexpr IndexRange before(int64_t n) const
constexpr IndexRange take_back(int64_t n) const
constexpr Iterator begin() const
constexpr IndexRange(int64_t size)
constexpr IndexRange slice(int64_t start, int64_t size) const
constexpr bool contains(int64_t value) const
constexpr IndexRange take_front(int64_t n) const
constexpr IndexRange drop_front(int64_t n) const
static const pxr::TfToken b("b", pxr::TfToken::Immortal)