PageRenderTime 27ms CodeModel.GetById 14ms app.highlight 8ms RepoModel.GetById 1ms app.codeStats 0ms

/Src/Dependencies/Boost/boost/range/adaptor/argument_fwd.hpp

http://hadesmem.googlecode.com/
C++ Header | 80 lines | 58 code | 13 blank | 9 comment | 0 complexity | f2560e7b185d0e847c3619757b21a479 MD5 | raw file
 1// Boost.Range library
 2//
 3//  Copyright Thorsten Ottosen, Neil Groves 2006 - 2008. 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/range/
 9//
10
11#ifndef BOOST_RANGE_ADAPTOR_ARGUMENT_FWD_HPP
12#define BOOST_RANGE_ADAPTOR_ARGUMENT_FWD_HPP
13
14#include <boost/config.hpp>
15
16#ifdef BOOST_MSVC
17#pragma warning(push)
18#pragma warning(disable : 4512) // assignment operator could not be generated
19#endif
20
21namespace boost
22{
23    namespace range_detail
24    {  
25        template< class T >
26        struct holder
27        {
28            T val;
29            holder( T t ) : val(t)
30            { }
31        };
32
33        template< class T >
34        struct holder2
35        {
36            T val1, val2;
37            holder2( T t, T u ) : val1(t), val2(u)
38            { }
39        };
40        
41        template< template<class> class Holder >
42        struct forwarder
43        {
44            template< class T >
45            Holder<T> operator()( T t ) const
46            {
47                return Holder<T>(t);
48            }
49        };
50
51        template< template<class> class Holder >
52        struct forwarder2
53        {
54            template< class T >
55            Holder<T> operator()( T t, T u ) const
56            {
57                return Holder<T>(t,u);
58            }
59        };
60
61        template< template<class,class> class Holder >
62        struct forwarder2TU
63        {
64            template< class T, class U >
65            Holder<T, U> operator()( T t, U u ) const
66            {
67                return Holder<T, U>(t, u);
68            }
69        };
70
71
72    } 
73        
74}
75
76#ifdef BOOST_MSVC
77#pragma warning(pop)
78#endif
79
80#endif