From 49ecebd1f25cdfb97462e81ada8662990e3d211d Mon Sep 17 00:00:00 2001
From: James Dennett <jdennett@google.com>
Date: Mon, 21 May 2018 12:27:52 -0700
Subject: [PATCH] Downgrade to C++98.

Some projects cannot handle C++11 yet.
---
 .../include/gtest/internal/gtest-type-util.h.pump    | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/googletest/include/gtest/internal/gtest-type-util.h.pump b/googletest/include/gtest/internal/gtest-type-util.h.pump
index 61228623..eb4df2c3 100644
--- a/googletest/include/gtest/internal/gtest-type-util.h.pump
+++ b/googletest/include/gtest/internal/gtest-type-util.h.pump
@@ -60,12 +60,12 @@ namespace internal {
 // used by various standard libraries (e.g., `std::__1`).  Names outside
 // of namespace std are returned unmodified.
 inline std::string CanonicalizeForStdLibVersioning(std::string s) {
-  static constexpr char prefix[] = "std::__";
+  static const char prefix[] = "std::__";
   if (s.compare(0, strlen(prefix), prefix) == 0) {
-    auto end = s.find("::", strlen(prefix));
+    std::string::size_type end = s.find("::", strlen(prefix));
     if (end != s.npos) {
-      // Erase the `::__` plus whatever was between that and the next `::`.
-      s.erase(strlen("std"), strlen("::__") + end - strlen(prefix));
+      // Erase everything between the initial `std` and the second `::`.
+      s.erase(strlen("std"), end - strlen("std"));
     }
   }
   return s;
@@ -87,9 +87,9 @@ std::string GetTypeName() {
   using abi::__cxa_demangle;
 #   endif  // GTEST_HAS_CXXABI_H_
   char* const readable_name = __cxa_demangle(name, 0, 0, &status);
-  std::string name_str(status == 0 ? readable_name : name);
+  const std::string name_str(status == 0 ? readable_name : name);
   free(readable_name);
-  return CanonicalizeForStdLibVersioning(std::move(name_str));
+  return CanonicalizeForStdLibVersioning(name_str);
 #  else
   return name;
 #  endif  // GTEST_HAS_CXXABI_H_ || __HP_aCC