New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
eval_if.hpp in vendors/XIOS/current/extern/boost/include/boost/mpl – NEMO

source: vendors/XIOS/current/extern/boost/include/boost/mpl/eval_if.hpp @ 3408

Last change on this file since 3408 was 3408, checked in by rblod, 12 years ago

importing initial XIOS vendor drop

  • Property svn:keywords set to Id
File size: 1.8 KB
Line 
1
2#ifndef BOOST_MPL_EVAL_IF_HPP_INCLUDED
3#define BOOST_MPL_EVAL_IF_HPP_INCLUDED
4
5// Copyright Aleksey Gurtovoy 2000-2004
6//
7// Distributed under the Boost Software License, Version 1.0.
8// (See accompanying file LICENSE_1_0.txt or copy at
9// http://www.boost.org/LICENSE_1_0.txt)
10//
11// See http://www.boost.org/libs/mpl for documentation.
12
13// $Id$
14// $Date: 2010-05-11 17:33:24 -0400 (Tue, 11 May 2010) $
15// $Revision: 61921 $
16
17#include <boost/mpl/if.hpp>
18#include <boost/mpl/aux_/na_spec.hpp>
19#include <boost/mpl/aux_/lambda_support.hpp>
20#include <boost/mpl/aux_/config/msvc.hpp>
21#include <boost/mpl/aux_/config/gcc.hpp>
22#include <boost/mpl/aux_/config/workaround.hpp>
23
24namespace boost { namespace mpl {
25
26template<
27      typename BOOST_MPL_AUX_NA_PARAM(C)
28    , typename BOOST_MPL_AUX_NA_PARAM(F1)
29    , typename BOOST_MPL_AUX_NA_PARAM(F2)
30    >
31struct eval_if
32#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
33     || ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, >= 0x0300) \
34        && BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) \
35        )
36{
37    typedef typename if_<C,F1,F2>::type f_;
38    typedef typename f_::type type;
39#else
40    : if_<C,F1,F2>::type
41{
42#endif
43    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,eval_if,(C,F1,F2))
44};
45
46// (almost) copy & paste in order to save one more
47// recursively nested template instantiation to user
48template<
49      bool C
50    , typename F1
51    , typename F2
52    >
53struct eval_if_c
54#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
55     || ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, >= 0x0300) \
56        && BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) \
57        )
58{
59    typedef typename if_c<C,F1,F2>::type f_;
60    typedef typename f_::type type;
61#else
62    : if_c<C,F1,F2>::type
63{
64#endif
65};
66
67BOOST_MPL_AUX_NA_SPEC(3, eval_if)
68
69}}
70
71#endif // BOOST_MPL_EVAL_IF_HPP_INCLUDED
Note: See TracBrowser for help on using the repository browser.