1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- // 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 <boost/config.hpp>
- #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> class Holder >
- struct forwarder
- {
- template< class T >
- Holder<T> operator()( T t ) const
- {
- return Holder<T>(t);
- }
- };
- template< template<class> class Holder >
- struct forwarder2
- {
- template< class T >
- Holder<T> operator()( T t, T u ) const
- {
- return Holder<T>(t,u);
- }
- };
- template< template<class,class> class Holder >
- struct forwarder2TU
- {
- template< class T, class U >
- Holder<T, U> operator()( T t, U u ) const
- {
- return Holder<T, U>(t, u);
- }
- };
- }
-
- }
- #ifdef BOOST_MSVC
- #pragma warning(pop)
- #endif
- #endif
|