Merge pull request #1668 from duxiuxing/googletest_for_asam
Fix warning C4819 in Visual Studio
This commit is contained in:
		
						commit
						425453bc31
					
				@ -2247,7 +2247,7 @@ enum class AccessLevel { kInternal, kPublic };
 | 
			
		||||
 | 
			
		||||
class Buzz {
 | 
			
		||||
 public:
 | 
			
		||||
  explicit Buzz(AccessLevel access) { … }
 | 
			
		||||
  explicit Buzz(AccessLevel access) { ... }
 | 
			
		||||
  ...
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -2320,7 +2320,7 @@ Note that `ByMove()` is essential here - if you drop it, the code won’t compil
 | 
			
		||||
 | 
			
		||||
Quiz time! What do you think will happen if a `Return(ByMove(...))` action is
 | 
			
		||||
performed more than once (e.g. you write
 | 
			
		||||
`….WillRepeatedly(Return(ByMove(...)));`)? Come think of it, after the first
 | 
			
		||||
`.WillRepeatedly(Return(ByMove(...)));`)? Come think of it, after the first
 | 
			
		||||
time the action runs, the source value will be consumed (since it’s a move-only
 | 
			
		||||
value), so the next time around, there’s no value to move from -- you’ll get a
 | 
			
		||||
run-time error that `Return(ByMove(...))` can only be run once.
 | 
			
		||||
 | 
			
		||||
@ -352,7 +352,7 @@ class FunctionMocker<R(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)> : public
 | 
			
		||||
//
 | 
			
		||||
//   class MockClass {
 | 
			
		||||
//     // Overload 1
 | 
			
		||||
//     MockSpec<string&()> gmock_GetName() { … }
 | 
			
		||||
//     MockSpec<string&()> gmock_GetName() { ... }
 | 
			
		||||
//     // Overload 2. Declared const so that the compiler will generate an
 | 
			
		||||
//     // error when trying to resolve between this and overload 4 in
 | 
			
		||||
//     // 'gmock_GetName(WithoutMatchers(), nullptr)'.
 | 
			
		||||
@ -363,7 +363,7 @@ class FunctionMocker<R(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)> : public
 | 
			
		||||
//     }
 | 
			
		||||
//
 | 
			
		||||
//     // Overload 3
 | 
			
		||||
//     const string& gmock_GetName() const { … }
 | 
			
		||||
//     const string& gmock_GetName() const { ... }
 | 
			
		||||
//     // Overload 4
 | 
			
		||||
//     MockSpec<const string&()> gmock_GetName(
 | 
			
		||||
//         const WithoutMatchers&, const Function<const string&()>*) const {
 | 
			
		||||
 | 
			
		||||
@ -114,7 +114,7 @@ class FunctionMocker<R($As)> : public
 | 
			
		||||
//
 | 
			
		||||
//   class MockClass {
 | 
			
		||||
//     // Overload 1
 | 
			
		||||
//     MockSpec<string&()> gmock_GetName() { … }
 | 
			
		||||
//     MockSpec<string&()> gmock_GetName() { ... }
 | 
			
		||||
//     // Overload 2. Declared const so that the compiler will generate an
 | 
			
		||||
//     // error when trying to resolve between this and overload 4 in
 | 
			
		||||
//     // 'gmock_GetName(WithoutMatchers(), nullptr)'.
 | 
			
		||||
@ -125,7 +125,7 @@ class FunctionMocker<R($As)> : public
 | 
			
		||||
//     }
 | 
			
		||||
//
 | 
			
		||||
//     // Overload 3
 | 
			
		||||
//     const string& gmock_GetName() const { … }
 | 
			
		||||
//     const string& gmock_GetName() const { ... }
 | 
			
		||||
//     // Overload 4
 | 
			
		||||
//     MockSpec<const string&()> gmock_GetName(
 | 
			
		||||
//         const WithoutMatchers&, const Function<const string&()>*) const {
 | 
			
		||||
 | 
			
		||||
@ -1854,22 +1854,22 @@ inline Expectation::Expectation(internal::ExpectationBase& exp)  // NOLINT
 | 
			
		||||
// parameter. This technique may only be used for non-overloaded methods.
 | 
			
		||||
//
 | 
			
		||||
//   // These are the same:
 | 
			
		||||
//   ON_CALL(mock, NoArgsMethod()).WillByDefault(…);
 | 
			
		||||
//   ON_CALL(mock, NoArgsMethod).WillByDefault(…);
 | 
			
		||||
//   ON_CALL(mock, NoArgsMethod()).WillByDefault(...);
 | 
			
		||||
//   ON_CALL(mock, NoArgsMethod).WillByDefault(...);
 | 
			
		||||
//
 | 
			
		||||
//   // As are these:
 | 
			
		||||
//   ON_CALL(mock, TwoArgsMethod(_, _)).WillByDefault(…);
 | 
			
		||||
//   ON_CALL(mock, TwoArgsMethod).WillByDefault(…);
 | 
			
		||||
//   ON_CALL(mock, TwoArgsMethod(_, _)).WillByDefault(...);
 | 
			
		||||
//   ON_CALL(mock, TwoArgsMethod).WillByDefault(...);
 | 
			
		||||
//
 | 
			
		||||
//   // Can also specify args if you want, of course:
 | 
			
		||||
//   ON_CALL(mock, TwoArgsMethod(_, 45)).WillByDefault(…);
 | 
			
		||||
//   ON_CALL(mock, TwoArgsMethod(_, 45)).WillByDefault(...);
 | 
			
		||||
//
 | 
			
		||||
//   // Overloads work as long as you specify parameters:
 | 
			
		||||
//   ON_CALL(mock, OverloadedMethod(_)).WillByDefault(…);
 | 
			
		||||
//   ON_CALL(mock, OverloadedMethod(_, _)).WillByDefault(…);
 | 
			
		||||
//   ON_CALL(mock, OverloadedMethod(_)).WillByDefault(...);
 | 
			
		||||
//   ON_CALL(mock, OverloadedMethod(_, _)).WillByDefault(...);
 | 
			
		||||
//
 | 
			
		||||
//   // Oops! Which overload did you want?
 | 
			
		||||
//   ON_CALL(mock, OverloadedMethod).WillByDefault(…);
 | 
			
		||||
//   ON_CALL(mock, OverloadedMethod).WillByDefault(...);
 | 
			
		||||
//     => ERROR: call to member function 'gmock_OverloadedMethod' is ambiguous
 | 
			
		||||
//
 | 
			
		||||
// How this works: The mock class uses two overloads of the gmock_Method
 | 
			
		||||
@ -1877,28 +1877,28 @@ inline Expectation::Expectation(internal::ExpectationBase& exp)  // NOLINT
 | 
			
		||||
// In the matcher list form, the macro expands to:
 | 
			
		||||
//
 | 
			
		||||
//   // This statement:
 | 
			
		||||
//   ON_CALL(mock, TwoArgsMethod(_, 45))…
 | 
			
		||||
//   ON_CALL(mock, TwoArgsMethod(_, 45))...
 | 
			
		||||
//
 | 
			
		||||
//   // …expands to:
 | 
			
		||||
//   mock.gmock_TwoArgsMethod(_, 45)(WithoutMatchers(), nullptr)…
 | 
			
		||||
//   // ...expands to:
 | 
			
		||||
//   mock.gmock_TwoArgsMethod(_, 45)(WithoutMatchers(), nullptr)...
 | 
			
		||||
//   |-------------v---------------||------------v-------------|
 | 
			
		||||
//       invokes first overload        swallowed by operator()
 | 
			
		||||
//
 | 
			
		||||
//   // …which is essentially:
 | 
			
		||||
//   mock.gmock_TwoArgsMethod(_, 45)…
 | 
			
		||||
//   // ...which is essentially:
 | 
			
		||||
//   mock.gmock_TwoArgsMethod(_, 45)...
 | 
			
		||||
//
 | 
			
		||||
// Whereas the form without a matcher list:
 | 
			
		||||
//
 | 
			
		||||
//   // This statement:
 | 
			
		||||
//   ON_CALL(mock, TwoArgsMethod)…
 | 
			
		||||
//   ON_CALL(mock, TwoArgsMethod)...
 | 
			
		||||
//
 | 
			
		||||
//   // …expands to:
 | 
			
		||||
//   mock.gmock_TwoArgsMethod(WithoutMatchers(), nullptr)…
 | 
			
		||||
//   // ...expands to:
 | 
			
		||||
//   mock.gmock_TwoArgsMethod(WithoutMatchers(), nullptr)...
 | 
			
		||||
//   |-----------------------v--------------------------|
 | 
			
		||||
//                 invokes second overload
 | 
			
		||||
//
 | 
			
		||||
//   // …which is essentially:
 | 
			
		||||
//   mock.gmock_TwoArgsMethod(_, _)…
 | 
			
		||||
//   // ...which is essentially:
 | 
			
		||||
//   mock.gmock_TwoArgsMethod(_, _)...
 | 
			
		||||
//
 | 
			
		||||
// The WithoutMatchers() argument is used to disambiguate overloads and to
 | 
			
		||||
// block the caller from accidentally invoking the second overload directly. The
 | 
			
		||||
 | 
			
		||||
@ -348,7 +348,7 @@ GTEST_API_ void Log(LogSeverity severity, const std::string& message,
 | 
			
		||||
// correct overload. This must not be instantiable, to prevent client code from
 | 
			
		||||
// accidentally resolving to the overload; for example:
 | 
			
		||||
//
 | 
			
		||||
//    ON_CALL(mock, Method({}, nullptr))…
 | 
			
		||||
//    ON_CALL(mock, Method({}, nullptr))...
 | 
			
		||||
//
 | 
			
		||||
class WithoutMatchers {
 | 
			
		||||
 private:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user