Merge 7f4f58da20e1066a888d3e4bcbef541db798a605 into 90a443f9c2
Closes #2395
COPYBARA_INTEGRATE_REVIEW=https://github.com/google/googletest/pull/2395 from kuzkry:custom-type-traits-remove_reference 7f4f58da20e1066a888d3e4bcbef541db798a605
PiperOrigin-RevId: 266189044
		
	
Googletest Mocking (gMock) Framework
Overview
Google's framework for writing and using C++ mock classes. It can help you derive better designs of your system and write better tests.
It is inspired by:
and designed with C++'s specifics in mind.
gMock:
- provides a declarative syntax for defining mocks,
 - can define partial (hybrid) mocks, which are a cross of real and mock objects,
 - handles functions of arbitrary types and overloaded functions,
 - comes with a rich set of matchers for validating function arguments,
 - uses an intuitive syntax for controlling the behavior of a mock,
 - does automatic verification of expectations (no record-and-replay needed),
 - allows arbitrary (partial) ordering constraints on function calls to be expressed,
 - lets a user extend it by defining new matchers and actions.
 - does not use exceptions, and
 - is easy to learn and use.
 
Details and examples can be found here:
Please note that code under scripts/generator/ is from the cppclean project and under the Apache License, which is different from Google Mock's license.
Google Mock is a part of Google Test C++ testing framework and a subject to the same requirements.