From 8e761289a2446367267c6c0d9a26e734f0f78306 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Wed, 16 Dec 2020 20:29:05 +0300 Subject: Get rid of legacy build systems and rename cutl/ to libcutl/ --- cutl/details/boost/mpl/bind.hpp | 551 ---------------------------------------- 1 file changed, 551 deletions(-) delete mode 100644 cutl/details/boost/mpl/bind.hpp (limited to 'cutl/details/boost/mpl/bind.hpp') diff --git a/cutl/details/boost/mpl/bind.hpp b/cutl/details/boost/mpl/bind.hpp deleted file mode 100644 index 4ddf5e8..0000000 --- a/cutl/details/boost/mpl/bind.hpp +++ /dev/null @@ -1,551 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_BIND_HPP_INCLUDED -#define BOOST_MPL_BIND_HPP_INCLUDED - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-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: bind.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 -# include -# include -# include -# include -# include -# include -# include -# include -# include -# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -# include -# endif -#endif - -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# if defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) -# define BOOST_MPL_PREPROCESSED_HEADER basic_bind.hpp -# else -# define BOOST_MPL_PREPROCESSED_HEADER bind.hpp -# endif -# include - -#else - -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# include -# include -# include -# include - -namespace cutl_details_boost { namespace mpl { - -// local macros, #undef-ined at the end of the header -# define AUX778076_APPLY \ - BOOST_PP_CAT(apply_wrap,BOOST_MPL_LIMIT_METAFUNCTION_ARITY) \ - /**/ - -# if defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) -# define AUX778076_DMC_PARAM() , int dummy_ -# else -# define AUX778076_DMC_PARAM() -# endif - -# define AUX778076_BIND_PARAMS(param) \ - BOOST_MPL_PP_PARAMS( \ - BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - , param \ - ) \ - /**/ - -# define AUX778076_BIND_DEFAULT_PARAMS(param, value) \ - BOOST_MPL_PP_DEFAULT_PARAMS( \ - BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - , param \ - , value \ - ) \ - /**/ - -# define AUX778076_BIND_N_PARAMS(n, param) \ - BOOST_PP_COMMA_IF(n) BOOST_MPL_PP_PARAMS(n, param) \ - /**/ - -# define AUX778076_BIND_N_SPEC_PARAMS(n, param, def) \ - BOOST_PP_COMMA_IF(n) \ - BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \ - /**/ - -#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) -# define AUX778076_BIND_NESTED_DEFAULT_PARAMS(param, value) \ - AUX778076_BIND_DEFAULT_PARAMS(param, value) \ - /**/ -#else -# define AUX778076_BIND_NESTED_DEFAULT_PARAMS(param, value) \ - AUX778076_BIND_PARAMS(param) \ - /**/ -#endif - -namespace aux { - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< - typename T, AUX778076_BIND_PARAMS(typename U) - > -struct resolve_bind_arg -{ - typedef T type; -}; - -# if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) - -template< - typename T - , typename Arg - > -struct replace_unnamed_arg -{ - typedef Arg next; - typedef T type; -}; - -template< - typename Arg - > -struct replace_unnamed_arg< arg<-1>,Arg > -{ - typedef typename Arg::next next; - typedef Arg type; -}; - -# endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT - -template< - BOOST_MPL_AUX_NTTP_DECL(int, N), AUX778076_BIND_PARAMS(typename U) - > -struct resolve_bind_arg< arg,AUX778076_BIND_PARAMS(U) > -{ - typedef typename AUX778076_APPLY, AUX778076_BIND_PARAMS(U)>::type type; -}; - -#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) -template< - typename F, AUX778076_BIND_PARAMS(typename T), AUX778076_BIND_PARAMS(typename U) - > -struct resolve_bind_arg< bind,AUX778076_BIND_PARAMS(U) > -{ - typedef bind f_; - typedef typename AUX778076_APPLY::type type; -}; -#endif - -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -// agurt, 15/jan/02: it's not a intended to be used as a function class, and -// MSVC6.5 has problems with 'apply' name here (the code compiles, but doesn't -// work), so I went with the 'result_' here, and in all other similar cases -template< bool > -struct resolve_arg_impl -{ - template< typename T, AUX778076_BIND_PARAMS(typename U) > struct result_ - { - typedef T type; - }; -}; - -template<> -struct resolve_arg_impl -{ - template< typename T, AUX778076_BIND_PARAMS(typename U) > struct result_ - { - typedef typename AUX778076_APPLY< - T - , AUX778076_BIND_PARAMS(U) - >::type type; - }; -}; - -// for 'resolve_bind_arg' -template< typename T > struct is_bind_template; - -template< - typename T, AUX778076_BIND_PARAMS(typename U) - > -struct resolve_bind_arg - : resolve_arg_impl< is_bind_template::value > - ::template result_< T,AUX778076_BIND_PARAMS(U) > -{ -}; - -# if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) - -template< typename T > -struct replace_unnamed_arg_impl -{ - template< typename Arg > struct result_ - { - typedef Arg next; - typedef T type; - }; -}; - -template<> -struct replace_unnamed_arg_impl< arg<-1> > -{ - template< typename Arg > struct result_ - { - typedef typename next::type next; - typedef Arg type; - }; -}; - -template< typename T, typename Arg > -struct replace_unnamed_arg - : replace_unnamed_arg_impl::template result_ -{ -}; - -# endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT - -// agurt, 10/mar/02: the forward declaration has to appear before any of -// 'is_bind_helper' overloads, otherwise MSVC6.5 issues an ICE on it -template< BOOST_MPL_AUX_NTTP_DECL(int, arity_) > struct bind_chooser; - -aux::no_tag is_bind_helper(...); -template< typename T > aux::no_tag is_bind_helper(protect*); - -// overload for "main" form -// agurt, 15/mar/02: MSVC 6.5 fails to properly resolve the overload -// in case if we use 'aux::type_wrapper< bind<...> >' here, and all -// 'bind' instantiations form a complete type anyway -#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) -template< - typename F, AUX778076_BIND_PARAMS(typename T) - > -aux::yes_tag is_bind_helper(bind*); -#endif - -template< BOOST_MPL_AUX_NTTP_DECL(int, N) > -aux::yes_tag is_bind_helper(arg*); - -template< bool is_ref_ = true > -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; -}; - -template<> -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = - sizeof(aux::is_bind_helper(static_cast(0))) - == sizeof(aux::yes_tag) - ); - }; -}; - -template< typename T > struct is_bind_template - : is_bind_template_impl< ::cutl_details_boost::detail::is_reference_impl::value > - ::template result_ -{ -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -} // namespace aux - - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) -#include BOOST_PP_ITERATE() - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) -/// if_/eval_if specializations -# define AUX778076_SPEC_NAME if_ -# define BOOST_PP_ITERATION_PARAMS_1 (3,(3, 3, )) -# include BOOST_PP_ITERATE() - -#if !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) -# define AUX778076_SPEC_NAME eval_if -# define BOOST_PP_ITERATION_PARAMS_1 (3,(3, 3, )) -# include BOOST_PP_ITERATE() -#endif -#endif - -// real C++ version is already taken care of -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) - -namespace aux { -// apply_count_args -#define AUX778076_COUNT_ARGS_PREFIX bind -#define AUX778076_COUNT_ARGS_DEFAULT na -#define AUX778076_COUNT_ARGS_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY -#include -} - -// bind -template< - typename F, AUX778076_BIND_PARAMS(typename T) AUX778076_DMC_PARAM() - > -struct bind - : aux::bind_chooser< - aux::bind_count_args::value - >::template result_< F,AUX778076_BIND_PARAMS(T) >::type -{ -}; - -BOOST_MPL_AUX_ARITY_SPEC( - BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) - , bind - ) - -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC( - BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) - , bind - ) - - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -# undef AUX778076_BIND_NESTED_DEFAULT_PARAMS -# undef AUX778076_BIND_N_SPEC_PARAMS -# undef AUX778076_BIND_N_PARAMS -# undef AUX778076_BIND_DEFAULT_PARAMS -# undef AUX778076_BIND_PARAMS -# undef AUX778076_DMC_PARAM -# undef AUX778076_APPLY - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_BIND_HPP_INCLUDED - -///// iteration, depth == 1 - -// For gcc 4.4 compatability, we must include the -// BOOST_PP_ITERATION_DEPTH test inside an #else clause. -#else // BOOST_PP_IS_ITERATING -#if BOOST_PP_ITERATION_DEPTH() == 1 - -# define i_ BOOST_PP_FRAME_ITERATION(1) - -#if defined(AUX778076_SPEC_NAME) - -// lazy metafunction specialization -template< template< BOOST_MPL_PP_PARAMS(i_, typename T) > class F, typename Tag > -struct BOOST_PP_CAT(quote,i_); - -template< BOOST_MPL_PP_PARAMS(i_, typename T) > struct AUX778076_SPEC_NAME; - -template< - typename Tag AUX778076_BIND_N_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(bind,i_)< - BOOST_PP_CAT(quote,i_) - AUX778076_BIND_N_PARAMS(i_,T) - > -{ - template< - AUX778076_BIND_NESTED_DEFAULT_PARAMS(typename U, na) - > - struct apply - { - private: - typedef mpl::arg<1> n1; -# define BOOST_PP_ITERATION_PARAMS_2 (3,(1, i_, )) -# include BOOST_PP_ITERATE() - - typedef typename AUX778076_SPEC_NAME< - typename t1::type - , BOOST_MPL_PP_EXT_PARAMS(2, BOOST_PP_INC(i_), t) - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -#undef AUX778076_SPEC_NAME - -#else // AUX778076_SPEC_NAME - -template< - typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM() - > -struct BOOST_PP_CAT(bind,i_) -{ - template< - AUX778076_BIND_NESTED_DEFAULT_PARAMS(typename U, na) - > - struct apply - { - private: -# if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) - - typedef aux::replace_unnamed_arg< F,mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg::type f_; - /// -# else - typedef typename aux::resolve_bind_arg::type f_; - -# endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT - -# if i_ > 0 -# define BOOST_PP_ITERATION_PARAMS_2 (3,(1, i_, )) -# include BOOST_PP_ITERATE() -# endif - - public: - -# define AUX778076_ARG(unused, i_, t) \ - BOOST_PP_COMMA_IF(i_) \ - typename BOOST_PP_CAT(t,BOOST_PP_INC(i_))::type \ -/**/ - - typedef typename BOOST_PP_CAT(apply_wrap,i_)< - f_ - BOOST_PP_COMMA_IF(i_) BOOST_MPL_PP_REPEAT(i_, AUX778076_ARG, t) - >::type type; - -# undef AUX778076_ARG - }; -}; - -namespace aux { - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< - typename F AUX778076_BIND_N_PARAMS(i_, typename T), AUX778076_BIND_PARAMS(typename U) - > -struct resolve_bind_arg< - BOOST_PP_CAT(bind,i_),AUX778076_BIND_PARAMS(U) - > -{ - typedef BOOST_PP_CAT(bind,i_) f_; - typedef typename AUX778076_APPLY::type type; -}; - -#else - -template< - typename F AUX778076_BIND_N_PARAMS(i_, typename T) - > -aux::yes_tag -is_bind_helper(BOOST_PP_CAT(bind,i_)*); - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(BOOST_PP_INC(i_), BOOST_PP_CAT(bind,i_)) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(BOOST_PP_INC(i_), BOOST_PP_CAT(bind,i_)) - -# if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) -# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -#if i_ == BOOST_MPL_LIMIT_METAFUNCTION_ARITY -/// primary template (not a specialization!) -template< - typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM() - > -struct bind - : BOOST_PP_CAT(bind,i_) -{ -}; -#else -template< - typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM() - > -struct bind< F AUX778076_BIND_N_SPEC_PARAMS(i_, T, na) > - : BOOST_PP_CAT(bind,i_) -{ -}; -#endif - -# else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -namespace aux { - -template<> -struct bind_chooser -{ - template< - typename F, AUX778076_BIND_PARAMS(typename T) - > - struct result_ - { - typedef BOOST_PP_CAT(bind,i_)< F AUX778076_BIND_N_PARAMS(i_,T) > type; - }; -}; - -} // namespace aux - -# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -# endif // BOOST_MPL_CFG_NO_BIND_TEMPLATE - -#endif // AUX778076_SPEC_NAME - -# undef i_ - -///// iteration, depth == 2 - -#elif BOOST_PP_ITERATION_DEPTH() == 2 - -# define j_ BOOST_PP_FRAME_ITERATION(2) -# if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) - - typedef aux::replace_unnamed_arg< BOOST_PP_CAT(T,j_),BOOST_PP_CAT(n,j_) > BOOST_PP_CAT(r,j_); - typedef typename BOOST_PP_CAT(r,j_)::type BOOST_PP_CAT(a,j_); - typedef typename BOOST_PP_CAT(r,j_)::next BOOST_PP_CAT(n,BOOST_PP_INC(j_)); - typedef aux::resolve_bind_arg BOOST_PP_CAT(t,j_); - /// -# else - typedef aux::resolve_bind_arg< BOOST_PP_CAT(T,j_),AUX778076_BIND_PARAMS(U)> BOOST_PP_CAT(t,j_); - -# endif -# undef j_ - -#endif // BOOST_PP_ITERATION_DEPTH() -#endif // BOOST_PP_IS_ITERATING -- cgit v1.1