Commit 9f894c2b authored by zhanyong.wan's avatar zhanyong.wan
Browse files

Makes gtest compile cleanly with MSVC's warning 4511 & 4512 (copy ctor /

assignment operator cannot be generated) enabled.
parent f43e4ff3
......@@ -181,6 +181,9 @@ class ExitedWithCode {
explicit ExitedWithCode(int exit_code);
bool operator()(int exit_status) const;
private:
// No implementation - assignment is unsupported.
void operator=(const ExitedWithCode& other);
const int exit_code_;
};
......
......@@ -64,6 +64,9 @@ class ValueArray1 {
operator ParamGenerator<T>() const { return ValuesIn(&v1_, &v1_ + 1); }
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray1& other);
const T1 v1_;
};
......@@ -83,6 +86,9 @@ class ValueArray$i {
}
private:
// No implementation - assignment is unsupported.
void operator=(const ValueArray$i& other);
$for j [[
const T$j v$(j)_;
......@@ -201,6 +207,9 @@ $for j || [[
]];
}
// No implementation - assignment is unsupported.
void operator=(const Iterator& other);
const ParamGeneratorInterface<ParamType>* const base_;
// begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
// current[i]_ is the actual traversing iterator.
......@@ -212,14 +221,17 @@ $for j [[
]]
ParamType current_value_;
};
}; // class CartesianProductGenerator$i::Iterator
// No implementation - assignment is unsupported.
void operator=(const CartesianProductGenerator$i& other);
$for j [[
const ParamGenerator<T$j> g$(j)_;
]]
};
}; // class CartesianProductGenerator$i
]]
......@@ -250,12 +262,15 @@ $for j,[[
}
private:
// No implementation - assignment is unsupported.
void operator=(const CartesianProductHolder$i& other);
$for j [[
const Generator$j g$(j)_;
]]
};
}; // class CartesianProductHolder$i
]]
......
......@@ -248,6 +248,9 @@ class RangeGenerator : public ParamGeneratorInterface<T> {
: base_(other.base_), value_(other.value_), index_(other.index_),
step_(other.step_) {}
// No implementation - assignment is unsupported.
void operator=(const Iterator& other);
const ParamGeneratorInterface<T>* const base_;
T value_;
int index_;
......@@ -263,6 +266,9 @@ class RangeGenerator : public ParamGeneratorInterface<T> {
return end_index;
}
// No implementation - assignment is unsupported.
void operator=(const RangeGenerator& other);
const T begin_;
const T end_;
const IncrementT step_;
......@@ -349,7 +355,10 @@ class ValuesInIteratorRangeGenerator : public ParamGeneratorInterface<T> {
// Use of scoped_ptr helps manage cached value's lifetime,
// which is bound by the lifespan of the iterator itself.
mutable scoped_ptr<const T> value_;
};
}; // class ValuesInIteratorRangeGenerator::Iterator
// No implementation - assignment is unsupported.
void operator=(const ValuesInIteratorRangeGenerator& other);
const ContainerType container_;
}; // class ValuesInIteratorRangeGenerator
......
......@@ -104,9 +104,6 @@ class SConstructHelper:
# GTEST_IS_NULL_LITERAL_() triggers it and I cannot find
# a fix.
'/wd4511', '/wd4512',
# copy ctor / assignment operator cannot be generated.
'-WX', # Treat warning as errors
#'-GR-', # Disable runtime type information
'-RTCs', # Enable stack-frame run-time error checks
......@@ -114,7 +111,8 @@ class SConstructHelper:
#'-EHs', # enable C++ EH (no SEH exceptions)
'-nologo', # Suppress logo line
'-J', # All chars unsigned
#'-Wp64', # Detect 64-bit portability issues
#'-Wp64', # Detect 64-bit portability issues. This
# flag has been deprecated by VS 2008.
'-Zi', # Produce debug information in PDB files.
],
CCPDBFLAGS='',
......
......@@ -6312,6 +6312,8 @@ class SequenceTestingListener : public EmptyTestEventListener {
Vector<String>* vector_;
const char* const id_;
GTEST_DISALLOW_COPY_AND_ASSIGN_(SequenceTestingListener);
};
TEST(EventListenerTest, AppendKeepsOrder) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment