mirror of
https://github.com/google/googletest.git
synced 2025-12-06 16:57:00 +08:00
Fix ParamIteratorInterface copy constructor defaulting
This commit is contained in:
parent
6ec14dfd8c
commit
f1e068d5c5
@ -99,6 +99,7 @@ class ParamGenerator;
|
||||
template <typename T>
|
||||
class ParamIteratorInterface {
|
||||
public:
|
||||
ParamIteratorInterface() = default;
|
||||
virtual ~ParamIteratorInterface() = default;
|
||||
// A pointer to the base generator instance.
|
||||
// Used only for the purposes of iterator comparison
|
||||
@ -121,6 +122,9 @@ class ParamIteratorInterface {
|
||||
// element in the sequence generated by the generator.
|
||||
// Used for implementing ParamGenerator<T>::operator==().
|
||||
virtual bool Equals(const ParamIteratorInterface& other) const = 0;
|
||||
protected:
|
||||
// Make available for subclasses to use to implement Clone().
|
||||
ParamIteratorInterface(const ParamIteratorInterface&) = default;
|
||||
};
|
||||
|
||||
// Class iterating over elements provided by an implementation of
|
||||
@ -842,7 +846,7 @@ class CartesianProductGenerator
|
||||
template <class I>
|
||||
class IteratorImpl;
|
||||
template <size_t... I>
|
||||
class IteratorImpl<std::index_sequence<I...>>
|
||||
class IteratorImpl<std::index_sequence<I...>> final
|
||||
: public ParamIteratorInterface<ParamType> {
|
||||
public:
|
||||
IteratorImpl(const ParamGeneratorInterface<ParamType>* base,
|
||||
@ -854,7 +858,7 @@ class CartesianProductGenerator
|
||||
current_(is_end ? end_ : begin_) {
|
||||
ComputeCurrentValue();
|
||||
}
|
||||
~IteratorImpl() override = default;
|
||||
~IteratorImpl() final = default;
|
||||
|
||||
const ParamGeneratorInterface<ParamType>* BaseGenerator() const override {
|
||||
return base_;
|
||||
@ -898,6 +902,8 @@ class CartesianProductGenerator
|
||||
}
|
||||
|
||||
private:
|
||||
IteratorImpl(const IteratorImpl&) = default;
|
||||
|
||||
template <size_t ThisI>
|
||||
void AdvanceIfEnd() {
|
||||
if (std::get<ThisI>(current_) != std::get<ThisI>(end_)) return;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user