diff options
| author | Remko Tronçon <git@el-tramo.be> | 2009-06-01 08:48:42 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2009-06-01 09:24:28 (GMT) | 
| commit | 2812bddd81f8a1b804c7460f4e14cd0aa393d129 (patch) | |
| tree | d46294f35150c4f0f43deaf2d31fceaf945ae715 /3rdParty/Boost/boost/mpl/eval_if.hpp | |
| download | swift-2812bddd81f8a1b804c7460f4e14cd0aa393d129.zip swift-2812bddd81f8a1b804c7460f4e14cd0aa393d129.tar.bz2 | |
Import.
Diffstat (limited to '3rdParty/Boost/boost/mpl/eval_if.hpp')
| -rw-r--r-- | 3rdParty/Boost/boost/mpl/eval_if.hpp | 71 | 
1 files changed, 71 insertions, 0 deletions
| diff --git a/3rdParty/Boost/boost/mpl/eval_if.hpp b/3rdParty/Boost/boost/mpl/eval_if.hpp new file mode 100644 index 0000000..3d94caf --- /dev/null +++ b/3rdParty/Boost/boost/mpl/eval_if.hpp @@ -0,0 +1,71 @@ + +#ifndef BOOST_MPL_EVAL_IF_HPP_INCLUDED +#define BOOST_MPL_EVAL_IF_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Id: eval_if.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ +// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Revision: 49267 $ + +#include <boost/mpl/if.hpp> +#include <boost/mpl/aux_/na_spec.hpp> +#include <boost/mpl/aux_/lambda_support.hpp> +#include <boost/mpl/aux_/config/msvc.hpp> +#include <boost/mpl/aux_/config/gcc.hpp> +#include <boost/mpl/aux_/config/workaround.hpp> + +namespace boost { namespace mpl { + +template< +      typename BOOST_MPL_AUX_NA_PARAM(C) +    , typename BOOST_MPL_AUX_NA_PARAM(F1) +    , typename BOOST_MPL_AUX_NA_PARAM(F2) +    > +struct eval_if +#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ +     || ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, >= 0x0300) \ +        && BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) \ +        ) +{ +    typedef typename if_<C,F1,F2>::type f_; +    typedef typename f_::type type; +#else +    : if_<C,F1,F2>::type +{ +#endif +    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,eval_if,(C,F1,F2)) +}; + +// (almost) copy & paste in order to save one more  +// recursively nested template instantiation to user +template< +      bool C +    , typename F1 +    , typename F2 +    > +struct eval_if_c +#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ +     || ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, >= 0x0300) \ +        && BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) \ +        ) +{ +    typedef typename if_c<C,F1,F2>::type f_; +    typedef typename f_::type type; +#else +    : if_c<C,F1,F2>::type +{ +#endif +}; + +BOOST_MPL_AUX_NA_SPEC(3, eval_if) + +}} + +#endif // BOOST_MPL_EVAL_IF_HPP_INCLUDED | 
 Swift
 Swift