Enable natural copies of the batch iterators without the need of the clone method (#4748)
- the synthesized copy constructor should do the appropriate job
This commit is contained in:
@@ -285,7 +285,6 @@ template<typename T>
|
||||
class BatchIteratorImpl {
|
||||
public:
|
||||
virtual ~BatchIteratorImpl() {}
|
||||
virtual BatchIteratorImpl* Clone() = 0;
|
||||
virtual T& operator*() = 0;
|
||||
virtual const T& operator*() const = 0;
|
||||
virtual void operator++() = 0;
|
||||
@@ -298,14 +297,6 @@ class BatchIterator {
|
||||
using iterator_category = std::forward_iterator_tag;
|
||||
explicit BatchIterator(BatchIteratorImpl<T>* impl) { impl_.reset(impl); }
|
||||
|
||||
BatchIterator(const BatchIterator& other) {
|
||||
if (other.impl_) {
|
||||
impl_.reset(other.impl_->Clone());
|
||||
} else {
|
||||
impl_.reset();
|
||||
}
|
||||
}
|
||||
|
||||
void operator++() {
|
||||
CHECK(impl_ != nullptr);
|
||||
++(*impl_);
|
||||
@@ -332,7 +323,7 @@ class BatchIterator {
|
||||
}
|
||||
|
||||
private:
|
||||
std::unique_ptr<BatchIteratorImpl<T>> impl_;
|
||||
std::shared_ptr<BatchIteratorImpl<T>> impl_;
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
|
||||
Reference in New Issue
Block a user