Implement P0966 - string::reserve should not shrink

llvm-svn: 347789
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: 4d64d7dd641d385439a354db1f98cbb0ab7167f9
diff --git a/include/string b/include/string
index f7eba7d..31ad307 100644
--- a/include/string
+++ b/include/string
@@ -956,9 +956,11 @@
     void resize(size_type __n, value_type __c);
     _LIBCPP_INLINE_VISIBILITY void resize(size_type __n) {resize(__n, value_type());}
 
+    void reserve(size_type __res_arg);
     _LIBCPP_INLINE_VISIBILITY void __resize_default_init(size_type __n);
 
-    void reserve(size_type __res_arg = 0);
+    _LIBCPP_INLINE_VISIBILITY
+    void reserve() _NOEXCEPT {reserve(0);}
     _LIBCPP_INLINE_VISIBILITY
     void shrink_to_fit() _NOEXCEPT {reserve();}
     _LIBCPP_INLINE_VISIBILITY