1 // Boost.Assign library 2 // 3 // Copyright Thorsten Ottosen 2003-2004. Use, modification and 4 // distribution is subject to the Boost Software License, Version 5 // 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 // http://www.boost.org/LICENSE_1_0.txt) 7 // 8 // For more information, see http://www.boost.org/libs/assign/ 9 // 10 11 12 #ifndef BOOST_ASSIGN_STD_LIST_HPP 13 #define BOOST_ASSIGN_STD_LIST_HPP 14 15 #if defined(_MSC_VER) 16 # pragma once 17 #endif 18 19 #include <boost/assign/list_inserter.hpp> 20 #include <boost/config.hpp> 21 #include <boost/move/utility.hpp> 22 #include <list> 23 24 namespace boost 25 { 26 namespace assign 27 { 28 #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) 29 30 template< class V, class A, class V2 > 31 inline list_inserter< assign_detail::call_push_back< std::list<V,A> >, V > operator +=(std::list<V,A> & c,V2 v)32 operator+=( std::list<V,A>& c, V2 v ) 33 { 34 return push_back( c )( v ); 35 } 36 37 #else 38 39 template< class V, class A, class V2 > 40 inline list_inserter< assign_detail::call_push_back< std::list<V, A> >, V > 41 operator+=(std::list<V, A>& c, V2&& v) 42 { 43 return push_back(c)(boost::forward<V2>(v)); 44 } 45 46 #endif 47 48 } 49 } 50 51 #endif 52