commit
						42140509b6
					
				@ -191,7 +191,7 @@ class GTEST_API_ FilePath {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  void Normalize();
 | 
					  void Normalize();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Returns a pointer to the last ioccurrence of a valid path separator in
 | 
					  // Returns a pointer to the last occurence of a valid path separator in
 | 
				
			||||||
  // the FilePath. On Windows, for example, both '/' and '\' are valid path
 | 
					  // the FilePath. On Windows, for example, both '/' and '\' are valid path
 | 
				
			||||||
  // separators. Returns NULL if no path separator was found.
 | 
					  // separators. Returns NULL if no path separator was found.
 | 
				
			||||||
  const char* FindLastPathSeparator() const;
 | 
					  const char* FindLastPathSeparator() const;
 | 
				
			||||||
 | 
				
			|||||||
@ -803,31 +803,6 @@ struct RemoveConst<T[N]> {
 | 
				
			|||||||
#define GTEST_REMOVE_REFERENCE_AND_CONST_(T) \
 | 
					#define GTEST_REMOVE_REFERENCE_AND_CONST_(T) \
 | 
				
			||||||
    GTEST_REMOVE_CONST_(GTEST_REMOVE_REFERENCE_(T))
 | 
					    GTEST_REMOVE_CONST_(GTEST_REMOVE_REFERENCE_(T))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Adds reference to a type if it is not a reference type,
 | 
					 | 
				
			||||||
// otherwise leaves it unchanged.  This is the same as
 | 
					 | 
				
			||||||
// tr1::add_reference, which is not widely available yet.
 | 
					 | 
				
			||||||
template <typename T>
 | 
					 | 
				
			||||||
struct AddReference { typedef T& type; };  // NOLINT
 | 
					 | 
				
			||||||
template <typename T>
 | 
					 | 
				
			||||||
struct AddReference<T&> { typedef T& type; };  // NOLINT
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// A handy wrapper around AddReference that works when the argument T
 | 
					 | 
				
			||||||
// depends on template parameters.
 | 
					 | 
				
			||||||
#define GTEST_ADD_REFERENCE_(T) \
 | 
					 | 
				
			||||||
    typename ::testing::internal::AddReference<T>::type
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Adds a reference to const on top of T as necessary.  For example,
 | 
					 | 
				
			||||||
// it transforms
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//   char         ==> const char&
 | 
					 | 
				
			||||||
//   const char   ==> const char&
 | 
					 | 
				
			||||||
//   char&        ==> const char&
 | 
					 | 
				
			||||||
//   const char&  ==> const char&
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// The argument T must depend on some template parameters.
 | 
					 | 
				
			||||||
#define GTEST_REFERENCE_TO_CONST_(T) \
 | 
					 | 
				
			||||||
    GTEST_ADD_REFERENCE_(const GTEST_REMOVE_REFERENCE_(T))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ImplicitlyConvertible<From, To>::value is a compile-time bool
 | 
					// ImplicitlyConvertible<From, To>::value is a compile-time bool
 | 
				
			||||||
// constant that's true iff type From can be implicitly converted to
 | 
					// constant that's true iff type From can be implicitly converted to
 | 
				
			||||||
// type To.
 | 
					// type To.
 | 
				
			||||||
 | 
				
			|||||||
@ -1366,6 +1366,39 @@ inline void FlushInfoLog() { fflush(NULL); }
 | 
				
			|||||||
    GTEST_LOG_(FATAL) << #posix_call << "failed with error " \
 | 
					    GTEST_LOG_(FATAL) << #posix_call << "failed with error " \
 | 
				
			||||||
                      << gtest_error
 | 
					                      << gtest_error
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Adds reference to a type if it is not a reference type,
 | 
				
			||||||
 | 
					// otherwise leaves it unchanged.  This is the same as
 | 
				
			||||||
 | 
					// tr1::add_reference, which is not widely available yet.
 | 
				
			||||||
 | 
					template <typename T>
 | 
				
			||||||
 | 
					struct AddReference { typedef T& type; };  // NOLINT
 | 
				
			||||||
 | 
					template <typename T>
 | 
				
			||||||
 | 
					struct AddReference<T&> { typedef T& type; };  // NOLINT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// A handy wrapper around AddReference that works when the argument T
 | 
				
			||||||
 | 
					// depends on template parameters.
 | 
				
			||||||
 | 
					#define GTEST_ADD_REFERENCE_(T) \
 | 
				
			||||||
 | 
					    typename ::testing::internal::AddReference<T>::type
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Transforms "T" into "const T&" according to standard reference collapsing
 | 
				
			||||||
 | 
					// rules (this is only needed as a backport for C++98 compilers that do not
 | 
				
			||||||
 | 
					// support reference collapsing). Specifically, it transforms:
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//   char         ==> const char&
 | 
				
			||||||
 | 
					//   const char   ==> const char&
 | 
				
			||||||
 | 
					//   char&        ==> char&
 | 
				
			||||||
 | 
					//   const char&  ==> const char&
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Note that the non-const reference will not have "const" added. This is
 | 
				
			||||||
 | 
					// standard, and necessary so that "T" can always bind to "const T&".
 | 
				
			||||||
 | 
					template <typename T>
 | 
				
			||||||
 | 
					struct ConstRef { typedef const T& type; };
 | 
				
			||||||
 | 
					template <typename T>
 | 
				
			||||||
 | 
					struct ConstRef<T&> { typedef T& type; };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// The argument T must depend on some template parameters.
 | 
				
			||||||
 | 
					#define GTEST_REFERENCE_TO_CONST_(T) \
 | 
				
			||||||
 | 
					  typename ::testing::internal::ConstRef<T>::type
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if GTEST_HAS_STD_MOVE_
 | 
					#if GTEST_HAS_STD_MOVE_
 | 
				
			||||||
using std::forward;
 | 
					using std::forward;
 | 
				
			||||||
using std::move;
 | 
					using std::move;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user