summaryrefslogtreecommitdiff
path: root/boost/assign/std/queue.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/assign/std/queue.hpp')
-rw-r--r--boost/assign/std/queue.hpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/boost/assign/std/queue.hpp b/boost/assign/std/queue.hpp
index d6023e8a12..009dc20973 100644
--- a/boost/assign/std/queue.hpp
+++ b/boost/assign/std/queue.hpp
@@ -18,12 +18,14 @@
#include <boost/assign/list_inserter.hpp>
#include <boost/config.hpp>
+#include <boost/move/utility.hpp>
#include <queue>
namespace boost
{
namespace assign
{
+#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
template< class V, class C, class V2 >
inline list_inserter< assign_detail::call_push< std::queue<V,C> >, V >
@@ -39,6 +41,23 @@ namespace assign
return push( c )( v );
}
+#else
+
+ template< class V, class C, class V2 >
+ inline list_inserter< assign_detail::call_push< std::queue<V, C> >, V >
+ operator+=(std::queue<V, C>& c, V2&& v)
+ {
+ return push(c)(boost::forward<V2>(v));
+ }
+
+ template< class V, class C, class V2 >
+ inline list_inserter< assign_detail::call_push< std::priority_queue<V, C> >, V >
+ operator+=(std::priority_queue<V, C>& c, V2&& v)
+ {
+ return push(c)(boost::forward<V2>(v));
+ }
+
+#endif
}
}