diff options
| author | Jörg Frings-Fürst <debian@jff.email> | 2025-03-19 15:41:36 +0100 | 
|---|---|---|
| committer | Jörg Frings-Fürst <debian@jff.email> | 2025-03-19 15:41:36 +0100 | 
| commit | 018e1ba581ec6f01f069a45ec4cf89f152b44d5f (patch) | |
| tree | 0e7dda4bb693a6714066fbe5efcd2f24ff7c1a65 /libcutl/cutl/details/boost/mpl/apply_fwd.hpp | |
| parent | 1c188393cd2e271ed2581471b601fb5960777fd8 (diff) | |
remerge
Diffstat (limited to 'libcutl/cutl/details/boost/mpl/apply_fwd.hpp')
| -rw-r--r-- | libcutl/cutl/details/boost/mpl/apply_fwd.hpp | 107 | 
1 files changed, 107 insertions, 0 deletions
diff --git a/libcutl/cutl/details/boost/mpl/apply_fwd.hpp b/libcutl/cutl/details/boost/mpl/apply_fwd.hpp new file mode 100644 index 0000000..769b1fa --- /dev/null +++ b/libcutl/cutl/details/boost/mpl/apply_fwd.hpp @@ -0,0 +1,107 @@ + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_APPLY_FWD_HPP_INCLUDED +#define BOOST_MPL_APPLY_FWD_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: apply_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ +// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ +// $Revision: 49267 $ + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +#   include <cutl/details/boost/mpl/aux_/na.hpp> +#endif + +#include <cutl/details/boost/mpl/aux_/config/use_preprocessed.hpp> + +#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ +    && !defined(BOOST_MPL_PREPROCESSING_MODE) + +#   define BOOST_MPL_PREPROCESSED_HEADER apply_fwd.hpp +#   include <cutl/details/boost/mpl/aux_/include_preprocessed.hpp> + +#else + +#   include <cutl/details/boost/mpl/limits/arity.hpp> +#   include <cutl/details/boost/mpl/aux_/preprocessor/params.hpp> +#   include <cutl/details/boost/mpl/aux_/preprocessor/default_params.hpp> +#   include <cutl/details/boost/mpl/aux_/config/ctps.hpp> +#   include <cutl/details/boost/mpl/aux_/nttp_decl.hpp> + +#   include <cutl/details/boost/preprocessor/comma_if.hpp> +#   include <cutl/details/boost/preprocessor/iterate.hpp> +#   include <cutl/details/boost/preprocessor/cat.hpp> + +// agurt, 15/jan/02: top-level 'apply' template gives an ICE on MSVC +// (for known reasons) +#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) +#   define BOOST_MPL_CFG_NO_APPLY_TEMPLATE +#endif + +namespace cutl_details_boost { namespace mpl { + +// local macro, #undef-ined at the end of the header +#   define AUX778076_APPLY_DEF_PARAMS(param, value) \ +    BOOST_MPL_PP_DEFAULT_PARAMS( \ +          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ +        , param \ +        , value \ +        ) \ +    /**/ + +#   define AUX778076_APPLY_N_COMMA_PARAMS(n, param) \ +    BOOST_PP_COMMA_IF(n) \ +    BOOST_MPL_PP_PARAMS(n, param) \ +    /**/ + +#   if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE) + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +// forward declaration +template< +      typename F, AUX778076_APPLY_DEF_PARAMS(typename T, na) +    > +struct apply; +#else +namespace aux { +template< BOOST_AUX_NTTP_DECL(int, arity_) > struct apply_chooser; +} +#endif + +#   endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE + +#define BOOST_PP_ITERATION_PARAMS_1 \ +    (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <cutl/details/boost/mpl/apply_fwd.hpp>)) +#include BOOST_PP_ITERATE() + + +#   undef AUX778076_APPLY_N_COMMA_PARAMS +#   undef AUX778076_APPLY_DEF_PARAMS + +}} + +#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS +#endif // BOOST_MPL_APPLY_FWD_HPP_INCLUDED + +///// iteration + +#else +#define i_ BOOST_PP_FRAME_ITERATION(1) + +template< +      typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T) +    > +struct BOOST_PP_CAT(apply,i_); + +#undef i_ +#endif // BOOST_PP_IS_ITERATING  | 
