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/queue b/include/queue
index 670fbb7..80546fd 100644
--- a/include/queue
+++ b/include/queue
@@ -290,7 +290,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)