Implement LWG2783: stack::emplace() and queue::emplace() should return decltype(auto)

llvm-svn: 323385
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: e34f5ffe4b1317ed05c856b9d259c9dd6860f463
diff --git a/include/stack b/include/stack
index 0cb4c6c..7b81ade 100644
--- a/include/stack
+++ b/include/stack
@@ -199,7 +199,7 @@
     template <class... _Args>
         _LIBCPP_INLINE_VISIBILITY
 #if _LIBCPP_STD_VER > 14
-        reference emplace(_Args&&... __args)
+        decltype(auto) emplace(_Args&&... __args)
         { return c.emplace_back(_VSTD::forward<_Args>(__args)...);}
 #else
         void      emplace(_Args&&... __args)