7 #ifndef PXR_EXEC_VDF_BOXED_CONTAINER_H
8 #define PXR_EXEC_VDF_BOXED_CONTAINER_H
40 : _ranges(1,
Range{0, n})
46 return _ranges.size();
64 lhs._ranges.swap(rhs._ranges);
87 !Vdf_IsBoxedContainer<T>,
"Recursive boxing is not allowed");
96 TfSmallVectorBase::ComputeSerendipitousLocalCapacity<T>();
116 return _data == rhs._data;
128 return _data.
empty();
176 template<
typename Iterator>
181 lhs._data.
swap(rhs._data);
182 swap(lhs._ranges, rhs._ranges);
199 template<
typename Iterator>
202 const unsigned int previousSize = _data.size();
203 _data.insert(_data.end(),
begin,
end);
204 _ranges.AppendRange(previousSize, _data.size());
Vdf_BoxedRanges(unsigned int n)
void reserve(unsigned int n)
Vdf_BoxedRanges()=default
Vdf_BoxedContainer(unsigned int n)
bool operator==(const Vdf_BoxedContainer &rhs) const
void reserve(size_type newCapacity)
const Vdf_BoxedRanges & GetRanges() const
#define PXR_NAMESPACE_OPEN_SCOPE
unsigned int GetNumRanges() const
bool operator!=(const Vdf_BoxedContainer &rhs) const
void AppendRange(Iterator begin, Iterator end)
Range GetRange(unsigned int i) const
friend void swap(Vdf_BoxedRanges &lhs, Vdf_BoxedRanges &rhs)
void AppendRange(unsigned int begin, unsigned int end)
friend void swap(Vdf_BoxedContainer &lhs, Vdf_BoxedContainer &rhs)
Vdf_BoxedContainer()=default
PcpNodeRef_ChildrenIterator begin(const PcpNodeRef::child_const_range &r)
Support for range-based for loops for PcpNodeRef children ranges.
const T & operator[](unsigned int i) const
#define PXR_NAMESPACE_CLOSE_SCOPE
T & operator[](unsigned int i)
void swap(TfSmallVector &rhs)