Merge "Base: Delete ostream<< with std::string*" am: 2dd3b6e349 am: 35fc039afc
am: 433a382d9d
Change-Id: I46dbd5ffdb9692711cacfb5fd5f7a8e897ab3ed7
diff --git a/base/include/android-base/logging.h b/base/include/android-base/logging.h
index 548b286..f18cc0c 100644
--- a/base/include/android-base/logging.h
+++ b/base/include/android-base/logging.h
@@ -438,4 +438,14 @@
} // namespace base
} // namespace android
+namespace std {
+
+// Delete << with string* to avoid mistakes. The intention was most likely to print *string.
+// If you really want to print the pointer, consider static_cast<void*>.
+//
+// Note: for this to work, we need to have this in a namespace.
+std::ostream& operator<<(std::ostream& stream, const std::string* string_pointer) = delete;
+
+} // namespace std
+
#endif // ANDROID_BASE_LOGGING_H