// Boost.Range library // // Copyright Thorsten Ottosen, Neil Groves 2006 - 2008. Use, modification and // distribution is subject to the Boost Software License, Version // 1.0. (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // // For more information, see http://www.boost.org/libs/range/ // #ifndef BOOST_RANGE_ADAPTOR_ARGUMENT_FWD_HPP #define BOOST_RANGE_ADAPTOR_ARGUMENT_FWD_HPP #include #ifdef BOOST_MSVC #pragma warning(push) #pragma warning(disable : 4512) // assignment operator could not be generated #endif namespace boost { namespace range_detail { template< class T > struct holder { T val; holder( T t ) : val(t) { } }; template< class T > struct holder2 { T val1, val2; holder2( T t, T u ) : val1(t), val2(u) { } }; template< template class Holder > struct forwarder { template< class T > Holder operator()( T t ) const { return Holder(t); } }; template< template class Holder > struct forwarder2 { template< class T > Holder operator()( T t, T u ) const { return Holder(t,u); } }; template< template class Holder > struct forwarder2TU { template< class T, class U > Holder operator()( T t, U u ) const { return Holder(t, u); } }; } } #ifdef BOOST_MSVC #pragma warning(pop) #endif #endif