diff options
Diffstat (limited to 'boost/assign/std/queue.hpp')
-rw-r--r-- | boost/assign/std/queue.hpp | 19 |
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 } } |