diff --git a/DataStructures/DeallocatingVector.h b/DataStructures/DeallocatingVector.h index c1578ce50..28f9480e5 100644 --- a/DataStructures/DeallocatingVector.h +++ b/DataStructures/DeallocatingVector.h @@ -36,9 +36,11 @@ template { protected: - struct DeallocatingVectorIteratorState { + class DeallocatingVectorIteratorState { + private: //make constructors explicit, so we do not mix random access and deallocation iterators. - explicit DeallocatingVectorIteratorState() : mData(DEALLOCATION_VECTOR_NULL_PTR), mIndex(-1) { assert(false); } + DeallocatingVectorIteratorState(); + public: explicit DeallocatingVectorIteratorState(const DeallocatingVectorIteratorState &r) : mData(r.mData), mIndex(r.mIndex), mBucketList(r.mBucketList) {} //explicit DeallocatingVectorIteratorState(const ElementT * ptr, const size_t idx, const std::vector & input_list) : mData(ptr), mIndex(idx), mBucketList(input_list) {} explicit DeallocatingVectorIteratorState(const size_t idx, std::vector & input_list) : mData(DEALLOCATION_VECTOR_NULL_PTR), mIndex(idx), mBucketList(input_list) {