~ubuntu-branches/ubuntu/wily/bombono-dvd/wily

« back to all changes in this revision

Viewing changes to libs/boost-lib/boost/mpl/apply_wrap.hpp

  • Committer: Bazaar Package Importer
  • Author(s): Alessio Treglia
  • Date: 2010-11-04 11:46:25 UTC
  • mto: This revision was merged to the branch mainline in revision 8.
  • Revision ID: james.westby@ubuntu.com-20101104114625-8xfdhvhpsm51i0nu
Tags: upstream-0.8.0
ImportĀ upstreamĀ versionĀ 0.8.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
#ifndef BOOST_MPL_APPLY_WRAP_HPP_INCLUDED
7
7
#define BOOST_MPL_APPLY_WRAP_HPP_INCLUDED
8
8
 
9
 
// Copyright Aleksey Gurtovoy 2000-2004
 
9
// Copyright Aleksey Gurtovoy 2000-2008
10
10
//
11
11
// Distributed under the Boost Software License, Version 1.0. 
12
12
// (See accompanying file LICENSE_1_0.txt or copy at 
14
14
//
15
15
// See http://www.boost.org/libs/mpl for documentation.
16
16
 
17
 
// $Source: /cvsroot/boost/boost/boost/mpl/apply_wrap.hpp,v $
18
 
// $Date: 2004/09/03 15:56:55 $
19
 
// $Revision: 1.3 $
 
17
// $Id: apply_wrap.hpp 49272 2008-10-11 06:50:46Z agurtovoy $
 
18
// $Date: 2008-10-11 02:50:46 -0400 (Sat, 11 Oct 2008) $
 
19
// $Revision: 49272 $
20
20
 
21
21
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
22
22
#   include <boost/mpl/aux_/arity.hpp>
39
39
#   include <boost/mpl/aux_/preprocessor/params.hpp>
40
40
#   include <boost/mpl/aux_/preprocessor/enum.hpp>
41
41
#   include <boost/mpl/aux_/preprocessor/add.hpp>
 
42
#   include <boost/mpl/aux_/config/bcc.hpp>
 
43
#   include <boost/mpl/aux_/config/ctps.hpp>
42
44
#   include <boost/mpl/aux_/config/dtp.hpp>
43
45
#   include <boost/mpl/aux_/config/eti.hpp>
44
 
#   include <boost/mpl/aux_/config/ctps.hpp>
45
46
#   include <boost/mpl/aux_/config/msvc.hpp>
46
47
#   include <boost/mpl/aux_/config/workaround.hpp>
47
48
 
177
178
 
178
179
#   define j_ BOOST_PP_FRAME_ITERATION(2)
179
180
 
 
181
#if i_ == 0 && j_ == 0 \
 
182
    && defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) \
 
183
    && !defined(BOOST_MPL_CFG_NO_HAS_APPLY)
 
184
 
 
185
template< typename F, bool F_has_apply >
 
186
struct apply_wrap_impl0_bcb {
 
187
    typedef typename F::template apply< na > type;
 
188
};
 
189
 
 
190
template< typename F >
 
191
struct apply_wrap_impl0_bcb< F, true > {
 
192
    typedef typename F::apply type;
 
193
};
 
194
 
 
195
template<
 
196
      typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
 
197
    >
 
198
struct BOOST_PP_CAT(apply_wrap_impl,i_)<
 
199
          BOOST_MPL_PP_ADD(i_, j_)
 
200
        , F
 
201
        BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
 
202
        >
 
203
{
 
204
    typedef apply_wrap_impl0_bcb< F, aux::has_apply< F >::value >::type type;
 
205
};
 
206
#else
 
207
 
180
208
template<
181
209
      typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
182
210
    >
198
226
        > type;
199
227
};
200
228
 
 
229
#endif
 
230
 
201
231
#   undef j_
202
232
 
203
233
#endif // BOOST_PP_ITERATION_DEPTH()