diff options
Diffstat (limited to 'boost/phoenix')
26 files changed, 3721 insertions, 337 deletions
diff --git a/boost/phoenix/bind/bind_member_function.hpp b/boost/phoenix/bind/bind_member_function.hpp index edc10dcaac..498f1a0018 100644 --- a/boost/phoenix/bind/bind_member_function.hpp +++ b/boost/phoenix/bind/bind_member_function.hpp @@ -1,7 +1,8 @@ /*============================================================================= Copyright (c) 2001-2007 Joel de Guzman + Copyright (c) 2014 John Fletcher - Distributed under the Boost Software License, Version 1.0. (See accompanying + 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) ==============================================================================*/ @@ -10,6 +11,8 @@ #ifndef PHOENIX_BIND_BIND_MEMBER_FUNCTION_HPP #define PHOENIX_BIND_BIND_MEMBER_FUNCTION_HPP +#include <boost/utility/enable_if.hpp> +#include <boost/type_traits/is_member_function_pointer.hpp> #include <boost/phoenix/core/expression.hpp> #include <boost/phoenix/core/reference.hpp> #include <boost/phoenix/core/detail/function_eval.hpp> @@ -20,9 +23,11 @@ namespace boost { namespace phoenix template <typename RT, typename ClassT, typename ClassA> inline + typename boost::lazy_enable_if< + boost::is_member_function_pointer<RT (ClassT::*)()>, typename detail::expression::function_eval< detail::member_function_ptr<0, RT, RT(ClassT::*)()> - , ClassA + , ClassA > >::type const bind(RT(ClassT::*f)(), ClassA const& obj) { @@ -36,9 +41,11 @@ namespace boost { namespace phoenix template <typename RT, typename ClassT, typename ClassA> inline + typename boost::lazy_enable_if< + boost::is_member_function_pointer<RT (ClassT::*)()>, typename detail::expression::function_eval< detail::member_function_ptr<0, RT, RT(ClassT::*)() const> - , ClassA + , ClassA > >::type const bind(RT(ClassT::*f)() const, ClassA const& obj) { diff --git a/boost/phoenix/bind/bind_member_variable.hpp b/boost/phoenix/bind/bind_member_variable.hpp index 56515decc3..5c54a2d0ee 100644 --- a/boost/phoenix/bind/bind_member_variable.hpp +++ b/boost/phoenix/bind/bind_member_variable.hpp @@ -1,13 +1,16 @@ /*============================================================================= Copyright (c) 2001-2007 Joel de Guzman + Copyright (c) 2014 John Fletcher - Distributed under the Boost Software License, Version 1.0. (See accompanying + 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) ==============================================================================*/ #ifndef PHOENIX_BIND_BIND_MEMBER_VARIABLE_HPP #define PHOENIX_BIND_BIND_MEMBER_VARIABLE_HPP +#include <boost/utility/enable_if.hpp> +#include <boost/type_traits/is_member_function_pointer.hpp> #include <boost/phoenix/core/expression.hpp> #include <boost/phoenix/core/detail/function_eval.hpp> #include <boost/phoenix/bind/detail/member_variable.hpp> @@ -16,11 +19,12 @@ namespace boost { namespace phoenix { template <typename RT, typename ClassT, typename ClassA> inline - typename - detail::expression::function_eval< + typename boost::lazy_disable_if< + boost::is_member_function_pointer<RT (ClassT::*)>, + typename detail::expression::function_eval< detail::member_variable<RT, RT ClassT::*> - , ClassA - >::type const + , ClassA >//::type + >::type const bind(RT ClassT::*mp, ClassA const& obj) { typedef detail::member_variable<RT, RT ClassT::*> mp_type; @@ -31,10 +35,11 @@ namespace boost { namespace phoenix template <typename RT, typename ClassT> inline - typename - detail::expression::function_eval< + typename boost::lazy_disable_if< + boost::is_member_function_pointer<RT (ClassT::*)>, + typename detail::expression::function_eval< detail::member_variable<RT, RT ClassT::*> - , ClassT + , ClassT >//::type >::type const bind(RT ClassT::*mp, ClassT& obj) { diff --git a/boost/phoenix/config.hpp b/boost/phoenix/config.hpp new file mode 100644 index 0000000000..d4d78e9c94 --- /dev/null +++ b/boost/phoenix/config.hpp @@ -0,0 +1,12 @@ +/*============================================================================== + Copyright (c) 2001-2010 Joel de Guzman + Copyright (c) 2010 Eric Niebler + Copyright (c) 2014 John Fletcher + + 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) +==============================================================================*/ +#ifndef BOOST_PHOENIX_CONFIG_HPP +#define BOOST_PHOENIX_CONFIG_HPP +#include <boost/config.hpp> +#endif diff --git a/boost/phoenix/core/domain.hpp b/boost/phoenix/core/domain.hpp index 6c438de97c..f59ef8579f 100644 --- a/boost/phoenix/core/domain.hpp +++ b/boost/phoenix/core/domain.hpp @@ -33,6 +33,20 @@ namespace boost { namespace phoenix {}; }; + struct phoenix_default_domain + : proto::domain< + proto::basic_default_generator + , proto::_ + , proto::basic_default_domain + > + { + template <typename T> + struct as_child + //: proto_base_domain::as_expr<T> // proto lambda example. + : as_expr<T> + {}; + }; + struct phoenix_domain : proto::domain< phoenix_generator @@ -42,8 +56,8 @@ namespace boost { namespace phoenix { template <typename T> struct as_child - : proto_base_domain::as_expr<T> // proto lambda example. - // : as_expr<T> + //: proto_base_domain::as_expr<T> // proto lambda example. + : as_expr<T> {}; }; }} diff --git a/boost/phoenix/core/expression.hpp b/boost/phoenix/core/expression.hpp index 4291c0a5f5..c6932526ab 100644 --- a/boost/phoenix/core/expression.hpp +++ b/boost/phoenix/core/expression.hpp @@ -91,7 +91,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain //proto::basic_default_domain , BOOST_PP_REPEAT(BOOST_PHOENIX_ITERATION, M0, _) >::type base_type; @@ -109,7 +109,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain // proto::basic_default_domain >(BOOST_PHOENIX_a) }; return e; diff --git a/boost/phoenix/core/is_value.hpp b/boost/phoenix/core/is_value.hpp new file mode 100644 index 0000000000..80f6569284 --- /dev/null +++ b/boost/phoenix/core/is_value.hpp @@ -0,0 +1,63 @@ +/*============================================================================== + Copyright (c) 2005-2010 Joel de Guzman + Copyright (c) 2015 John Fletcher + + 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) +==============================================================================*/ +#ifndef BOOST_PHOENIX_CORE_IS_VALUE_HPP +#define BOOST_PHOENIX_CORE_IS_VALUE_HPP + +#include <boost/mpl/bool.hpp> + +// Copied from is_actor.hpp + +// Note to Thomas and any future maintainer: please make this as +// lightweight as possible (as it is right now). + +namespace boost { namespace phoenix +{ +/////////////////////////////////////////////////////////////////////////////// +// +// is_value<T> +// +// Tests if T is a value. Evaluates to mpl::true_ or mpl::false_ +// +/////////////////////////////////////////////////////////////////////////////// + + namespace expression { + template <typename T> + struct value; + } + + template <typename T, typename Enable = void> + struct is_value + : mpl::false_ + {}; + + template <typename T> + struct is_value<T const> + : is_value<T> + {}; + + template <typename T> + struct is_value<T &> + : is_value<T> + {}; + + // This does not seem to work. + // There is an alternative in value.hpp which does work. + template <typename T> + struct is_value< expression::value<T> > + : mpl::true_ + {}; + + template <typename T> + bool is_val(T const & /* t */) + { + return is_value<T>::value; + } + + }} + +#endif diff --git a/boost/phoenix/core/preprocessed/expression_10.hpp b/boost/phoenix/core/preprocessed/expression_10.hpp index 7342a8c700..882e945fab 100644 --- a/boost/phoenix/core/preprocessed/expression_10.hpp +++ b/boost/phoenix/core/preprocessed/expression_10.hpp @@ -36,7 +36,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type >::type base_type; @@ -52,7 +52,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0) }; return e; @@ -79,7 +79,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type >::type base_type; @@ -95,7 +95,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1) }; return e; @@ -122,7 +122,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type >::type base_type; @@ -138,7 +138,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2) }; return e; @@ -165,7 +165,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type >::type base_type; @@ -181,7 +181,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3) }; return e; @@ -208,7 +208,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type >::type base_type; @@ -224,7 +224,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4) }; return e; @@ -251,7 +251,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type >::type base_type; @@ -267,7 +267,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5) }; return e; @@ -294,7 +294,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type >::type base_type; @@ -310,7 +310,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6) }; return e; @@ -337,7 +337,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type >::type base_type; @@ -353,7 +353,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7) }; return e; @@ -380,7 +380,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type >::type base_type; @@ -396,7 +396,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8) }; return e; @@ -423,7 +423,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type >::type base_type; @@ -439,7 +439,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9) }; return e; diff --git a/boost/phoenix/core/preprocessed/expression_20.hpp b/boost/phoenix/core/preprocessed/expression_20.hpp index cd85f15d77..bcf2df7de5 100644 --- a/boost/phoenix/core/preprocessed/expression_20.hpp +++ b/boost/phoenix/core/preprocessed/expression_20.hpp @@ -36,7 +36,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type >::type base_type; @@ -52,7 +52,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0) }; return e; @@ -79,7 +79,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type >::type base_type; @@ -95,7 +95,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1) }; return e; @@ -122,7 +122,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type >::type base_type; @@ -138,7 +138,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2) }; return e; @@ -165,7 +165,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type >::type base_type; @@ -181,7 +181,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3) }; return e; @@ -208,7 +208,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type >::type base_type; @@ -224,7 +224,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4) }; return e; @@ -251,7 +251,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type >::type base_type; @@ -267,7 +267,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5) }; return e; @@ -294,7 +294,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type >::type base_type; @@ -310,7 +310,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6) }; return e; @@ -337,7 +337,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type >::type base_type; @@ -353,7 +353,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7) }; return e; @@ -380,7 +380,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type >::type base_type; @@ -396,7 +396,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8) }; return e; @@ -423,7 +423,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type >::type base_type; @@ -439,7 +439,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9) }; return e; @@ -466,7 +466,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type >::type base_type; @@ -482,7 +482,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10) }; return e; @@ -509,7 +509,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type >::type base_type; @@ -525,7 +525,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11) }; return e; @@ -552,7 +552,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type >::type base_type; @@ -568,7 +568,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12) }; return e; @@ -595,7 +595,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type >::type base_type; @@ -611,7 +611,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13) }; return e; @@ -638,7 +638,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type >::type base_type; @@ -654,7 +654,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14) }; return e; @@ -681,7 +681,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type >::type base_type; @@ -697,7 +697,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15) }; return e; @@ -724,7 +724,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type >::type base_type; @@ -740,7 +740,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16) }; return e; @@ -767,7 +767,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type >::type base_type; @@ -783,7 +783,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17) }; return e; @@ -810,7 +810,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type >::type base_type; @@ -826,7 +826,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18) }; return e; @@ -853,7 +853,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type >::type base_type; @@ -869,7 +869,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19) }; return e; diff --git a/boost/phoenix/core/preprocessed/expression_30.hpp b/boost/phoenix/core/preprocessed/expression_30.hpp index a8864192f9..974bc4dd8a 100644 --- a/boost/phoenix/core/preprocessed/expression_30.hpp +++ b/boost/phoenix/core/preprocessed/expression_30.hpp @@ -36,7 +36,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type >::type base_type; @@ -52,7 +52,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0) }; return e; @@ -79,7 +79,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type >::type base_type; @@ -95,7 +95,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1) }; return e; @@ -122,7 +122,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type >::type base_type; @@ -138,7 +138,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2) }; return e; @@ -165,7 +165,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type >::type base_type; @@ -181,7 +181,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3) }; return e; @@ -208,7 +208,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type >::type base_type; @@ -224,7 +224,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4) }; return e; @@ -251,7 +251,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type >::type base_type; @@ -267,7 +267,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5) }; return e; @@ -294,7 +294,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type >::type base_type; @@ -310,7 +310,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6) }; return e; @@ -337,7 +337,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type >::type base_type; @@ -353,7 +353,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7) }; return e; @@ -380,7 +380,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type >::type base_type; @@ -396,7 +396,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8) }; return e; @@ -423,7 +423,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type >::type base_type; @@ -439,7 +439,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9) }; return e; @@ -466,7 +466,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type >::type base_type; @@ -482,7 +482,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10) }; return e; @@ -509,7 +509,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type >::type base_type; @@ -525,7 +525,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11) }; return e; @@ -552,7 +552,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type >::type base_type; @@ -568,7 +568,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12) }; return e; @@ -595,7 +595,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type >::type base_type; @@ -611,7 +611,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13) }; return e; @@ -638,7 +638,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type >::type base_type; @@ -654,7 +654,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14) }; return e; @@ -681,7 +681,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type >::type base_type; @@ -697,7 +697,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15) }; return e; @@ -724,7 +724,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type >::type base_type; @@ -740,7 +740,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16) }; return e; @@ -767,7 +767,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type >::type base_type; @@ -783,7 +783,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17) }; return e; @@ -810,7 +810,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type >::type base_type; @@ -826,7 +826,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18) }; return e; @@ -853,7 +853,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type >::type base_type; @@ -869,7 +869,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19) }; return e; @@ -896,7 +896,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type >::type base_type; @@ -912,7 +912,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20) }; return e; @@ -939,7 +939,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type >::type base_type; @@ -955,7 +955,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21) }; return e; @@ -982,7 +982,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type >::type base_type; @@ -998,7 +998,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22) }; return e; @@ -1025,7 +1025,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type >::type base_type; @@ -1041,7 +1041,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23) }; return e; @@ -1068,7 +1068,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type >::type base_type; @@ -1084,7 +1084,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24) }; return e; @@ -1111,7 +1111,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type >::type base_type; @@ -1127,7 +1127,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25) }; return e; @@ -1154,7 +1154,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type >::type base_type; @@ -1170,7 +1170,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26) }; return e; @@ -1197,7 +1197,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type >::type base_type; @@ -1213,7 +1213,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27) }; return e; @@ -1240,7 +1240,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type >::type base_type; @@ -1256,7 +1256,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28) }; return e; @@ -1283,7 +1283,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type >::type base_type; @@ -1299,7 +1299,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29) }; return e; diff --git a/boost/phoenix/core/preprocessed/expression_40.hpp b/boost/phoenix/core/preprocessed/expression_40.hpp index b48911d97e..8add172503 100644 --- a/boost/phoenix/core/preprocessed/expression_40.hpp +++ b/boost/phoenix/core/preprocessed/expression_40.hpp @@ -36,7 +36,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type >::type base_type; @@ -52,7 +52,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0) }; return e; @@ -79,7 +79,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type >::type base_type; @@ -95,7 +95,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1) }; return e; @@ -122,7 +122,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type >::type base_type; @@ -138,7 +138,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2) }; return e; @@ -165,7 +165,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type >::type base_type; @@ -181,7 +181,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3) }; return e; @@ -208,7 +208,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type >::type base_type; @@ -224,7 +224,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4) }; return e; @@ -251,7 +251,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type >::type base_type; @@ -267,7 +267,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5) }; return e; @@ -294,7 +294,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type >::type base_type; @@ -310,7 +310,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6) }; return e; @@ -337,7 +337,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type >::type base_type; @@ -353,7 +353,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7) }; return e; @@ -380,7 +380,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type >::type base_type; @@ -396,7 +396,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8) }; return e; @@ -423,7 +423,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type >::type base_type; @@ -439,7 +439,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9) }; return e; @@ -466,7 +466,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type >::type base_type; @@ -482,7 +482,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10) }; return e; @@ -509,7 +509,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type >::type base_type; @@ -525,7 +525,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11) }; return e; @@ -552,7 +552,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type >::type base_type; @@ -568,7 +568,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12) }; return e; @@ -595,7 +595,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type >::type base_type; @@ -611,7 +611,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13) }; return e; @@ -638,7 +638,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type >::type base_type; @@ -654,7 +654,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14) }; return e; @@ -681,7 +681,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type >::type base_type; @@ -697,7 +697,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15) }; return e; @@ -724,7 +724,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type >::type base_type; @@ -740,7 +740,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16) }; return e; @@ -767,7 +767,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type >::type base_type; @@ -783,7 +783,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17) }; return e; @@ -810,7 +810,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type >::type base_type; @@ -826,7 +826,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18) }; return e; @@ -853,7 +853,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type >::type base_type; @@ -869,7 +869,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19) }; return e; @@ -896,7 +896,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type >::type base_type; @@ -912,7 +912,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20) }; return e; @@ -939,7 +939,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type >::type base_type; @@ -955,7 +955,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21) }; return e; @@ -982,7 +982,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type >::type base_type; @@ -998,7 +998,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22) }; return e; @@ -1025,7 +1025,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type >::type base_type; @@ -1041,7 +1041,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23) }; return e; @@ -1068,7 +1068,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type >::type base_type; @@ -1084,7 +1084,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24) }; return e; @@ -1111,7 +1111,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type >::type base_type; @@ -1127,7 +1127,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25) }; return e; @@ -1154,7 +1154,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type >::type base_type; @@ -1170,7 +1170,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26) }; return e; @@ -1197,7 +1197,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type >::type base_type; @@ -1213,7 +1213,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27) }; return e; @@ -1240,7 +1240,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type >::type base_type; @@ -1256,7 +1256,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28) }; return e; @@ -1283,7 +1283,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type >::type base_type; @@ -1299,7 +1299,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29) }; return e; @@ -1326,7 +1326,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type >::type base_type; @@ -1342,7 +1342,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30) }; return e; @@ -1369,7 +1369,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type >::type base_type; @@ -1385,7 +1385,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31) }; return e; @@ -1412,7 +1412,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type >::type base_type; @@ -1428,7 +1428,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32) }; return e; @@ -1455,7 +1455,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type >::type base_type; @@ -1471,7 +1471,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33) }; return e; @@ -1498,7 +1498,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type >::type base_type; @@ -1514,7 +1514,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34) }; return e; @@ -1541,7 +1541,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type >::type base_type; @@ -1557,7 +1557,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35) }; return e; @@ -1584,7 +1584,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A36>::value_type>::type >::type base_type; @@ -1600,7 +1600,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36) }; return e; @@ -1627,7 +1627,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A36>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A37>::value_type>::type >::type base_type; @@ -1643,7 +1643,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37) }; return e; @@ -1670,7 +1670,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A36>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A37>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A38>::value_type>::type >::type base_type; @@ -1686,7 +1686,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38) }; return e; @@ -1713,7 +1713,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A36>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A37>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A38>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A39>::value_type>::type >::type base_type; @@ -1729,7 +1729,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39) }; return e; diff --git a/boost/phoenix/core/preprocessed/expression_50.hpp b/boost/phoenix/core/preprocessed/expression_50.hpp index 64e5b8de05..f17ca3bd32 100644 --- a/boost/phoenix/core/preprocessed/expression_50.hpp +++ b/boost/phoenix/core/preprocessed/expression_50.hpp @@ -36,7 +36,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type >::type base_type; @@ -52,7 +52,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0) }; return e; @@ -79,7 +79,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type >::type base_type; @@ -95,7 +95,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1) }; return e; @@ -122,7 +122,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type >::type base_type; @@ -138,7 +138,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2) }; return e; @@ -165,7 +165,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type >::type base_type; @@ -181,7 +181,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3) }; return e; @@ -208,7 +208,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type >::type base_type; @@ -224,7 +224,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4) }; return e; @@ -251,7 +251,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type >::type base_type; @@ -267,7 +267,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5) }; return e; @@ -294,7 +294,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type >::type base_type; @@ -310,7 +310,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6) }; return e; @@ -337,7 +337,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type >::type base_type; @@ -353,7 +353,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7) }; return e; @@ -380,7 +380,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type >::type base_type; @@ -396,7 +396,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8) }; return e; @@ -423,7 +423,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type >::type base_type; @@ -439,7 +439,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9) }; return e; @@ -466,7 +466,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type >::type base_type; @@ -482,7 +482,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10) }; return e; @@ -509,7 +509,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type >::type base_type; @@ -525,7 +525,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11) }; return e; @@ -552,7 +552,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type >::type base_type; @@ -568,7 +568,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12) }; return e; @@ -595,7 +595,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type >::type base_type; @@ -611,7 +611,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13) }; return e; @@ -638,7 +638,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type >::type base_type; @@ -654,7 +654,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14) }; return e; @@ -681,7 +681,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type >::type base_type; @@ -697,7 +697,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15) }; return e; @@ -724,7 +724,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type >::type base_type; @@ -740,7 +740,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16) }; return e; @@ -767,7 +767,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type >::type base_type; @@ -783,7 +783,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17) }; return e; @@ -810,7 +810,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type >::type base_type; @@ -826,7 +826,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18) }; return e; @@ -853,7 +853,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type >::type base_type; @@ -869,7 +869,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19) }; return e; @@ -896,7 +896,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type >::type base_type; @@ -912,7 +912,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20) }; return e; @@ -939,7 +939,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type >::type base_type; @@ -955,7 +955,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21) }; return e; @@ -982,7 +982,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type >::type base_type; @@ -998,7 +998,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22) }; return e; @@ -1025,7 +1025,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type >::type base_type; @@ -1041,7 +1041,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23) }; return e; @@ -1068,7 +1068,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type >::type base_type; @@ -1084,7 +1084,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24) }; return e; @@ -1111,7 +1111,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type >::type base_type; @@ -1127,7 +1127,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25) }; return e; @@ -1154,7 +1154,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type >::type base_type; @@ -1170,7 +1170,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26) }; return e; @@ -1197,7 +1197,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type >::type base_type; @@ -1213,7 +1213,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27) }; return e; @@ -1240,7 +1240,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type >::type base_type; @@ -1256,7 +1256,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28) }; return e; @@ -1283,7 +1283,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type >::type base_type; @@ -1299,7 +1299,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29) }; return e; @@ -1326,7 +1326,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type >::type base_type; @@ -1342,7 +1342,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30) }; return e; @@ -1369,7 +1369,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type >::type base_type; @@ -1385,7 +1385,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31) }; return e; @@ -1412,7 +1412,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type >::type base_type; @@ -1428,7 +1428,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32) }; return e; @@ -1455,7 +1455,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type >::type base_type; @@ -1471,7 +1471,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33) }; return e; @@ -1498,7 +1498,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type >::type base_type; @@ -1514,7 +1514,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34) }; return e; @@ -1541,7 +1541,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type >::type base_type; @@ -1557,7 +1557,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35) }; return e; @@ -1584,7 +1584,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A36>::value_type>::type >::type base_type; @@ -1600,7 +1600,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36) }; return e; @@ -1627,7 +1627,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A36>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A37>::value_type>::type >::type base_type; @@ -1643,7 +1643,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37) }; return e; @@ -1670,7 +1670,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A36>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A37>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A38>::value_type>::type >::type base_type; @@ -1686,7 +1686,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38) }; return e; @@ -1713,7 +1713,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A36>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A37>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A38>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A39>::value_type>::type >::type base_type; @@ -1729,7 +1729,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39) }; return e; @@ -1756,7 +1756,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A36>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A37>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A38>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A39>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A40>::value_type>::type >::type base_type; @@ -1772,7 +1772,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40) }; return e; @@ -1799,7 +1799,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A36>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A37>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A38>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A39>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A40>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A41>::value_type>::type >::type base_type; @@ -1815,7 +1815,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41) }; return e; @@ -1842,7 +1842,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A36>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A37>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A38>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A39>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A40>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A41>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A42>::value_type>::type >::type base_type; @@ -1858,7 +1858,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42) }; return e; @@ -1885,7 +1885,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A36>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A37>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A38>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A39>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A40>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A41>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A42>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A43>::value_type>::type >::type base_type; @@ -1901,7 +1901,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43) }; return e; @@ -1928,7 +1928,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A36>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A37>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A38>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A39>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A40>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A41>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A42>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A43>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A44>::value_type>::type >::type base_type; @@ -1944,7 +1944,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44) }; return e; @@ -1971,7 +1971,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A36>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A37>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A38>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A39>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A40>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A41>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A42>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A43>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A44>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A45>::value_type>::type >::type base_type; @@ -1987,7 +1987,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45) }; return e; @@ -2014,7 +2014,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A36>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A37>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A38>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A39>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A40>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A41>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A42>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A43>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A44>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A45>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A46>::value_type>::type >::type base_type; @@ -2030,7 +2030,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46) }; return e; @@ -2057,7 +2057,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A36>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A37>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A38>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A39>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A40>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A41>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A42>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A43>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A44>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A45>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A46>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A47>::value_type>::type >::type base_type; @@ -2073,7 +2073,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47) }; return e; @@ -2100,7 +2100,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A36>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A37>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A38>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A39>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A40>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A41>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A42>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A43>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A44>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A45>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A46>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A47>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A48>::value_type>::type >::type base_type; @@ -2116,7 +2116,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47 , a48) }; return e; @@ -2143,7 +2143,7 @@ namespace boost { namespace phoenix typedef typename proto::result_of::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain , typename proto::detail::uncvref<typename call_traits<A0>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A1>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A2>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A3>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A4>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A5>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A6>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A7>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A8>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A9>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A10>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A11>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A12>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A13>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A14>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A15>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A16>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A17>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A18>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A19>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A20>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A21>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A22>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A23>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A24>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A25>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A26>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A27>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A28>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A29>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A30>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A31>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A32>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A33>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A34>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A35>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A36>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A37>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A38>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A39>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A40>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A41>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A42>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A43>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A44>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A45>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A46>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A47>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A48>::value_type>::type , typename proto::detail::uncvref<typename call_traits<A49>::value_type>::type >::type base_type; @@ -2159,7 +2159,7 @@ namespace boost { namespace phoenix { proto::make_expr< Tag - , proto::basic_default_domain + , phoenix_default_domain >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47 , a48 , a49) }; return e; diff --git a/boost/phoenix/core/value.hpp b/boost/phoenix/core/value.hpp index bb381e9d68..f0ca677b46 100644 --- a/boost/phoenix/core/value.hpp +++ b/boost/phoenix/core/value.hpp @@ -12,6 +12,7 @@ #include <boost/phoenix/core/actor.hpp> #include <boost/phoenix/core/as_actor.hpp> #include <boost/phoenix/core/terminal.hpp> +#include <boost/phoenix/core/is_value.hpp> #include <boost/utility/result_of.hpp> namespace boost { namespace phoenix @@ -51,7 +52,18 @@ namespace boost { namespace phoenix return expression::value<T>::make(t); } + // Identifies this Expr as a value. + // I think this is wrong. It is identifying all actors as values. + // Yes, it is giving false positives and needs a rethink. + // And this gives no positives. + //template <typename T> + //struct is_value<expression::value<T> > + // : mpl::true_ + //{}; + // Call out actor for special handling + // Is this correct? It applies to any actor. + // In which case why is it here? template<typename Expr> struct is_custom_terminal<actor<Expr> > : mpl::true_ @@ -77,7 +89,10 @@ namespace boost { namespace phoenix typename result<custom_terminal(actor<Expr> const &, Context &)>::type operator()(actor<Expr> const & expr, Context & ctx) const { - return boost::phoenix::eval(expr, ctx); + typedef typename result<custom_terminal(actor<Expr> const &, Context &)>::type result_type; + result_type r = boost::phoenix::eval(expr, ctx); + // std::cout << "Evaluating val() = " << r << std::endl; + return r; } }; diff --git a/boost/phoenix/function/adapt_function.hpp b/boost/phoenix/function/adapt_function.hpp index 6ba20be3d2..b539ae1894 100644 --- a/boost/phoenix/function/adapt_function.hpp +++ b/boost/phoenix/function/adapt_function.hpp @@ -13,7 +13,7 @@ #include <boost/preprocessor/repetition/repeat.hpp> #define BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY(RESULT, NAME, FUNC) \ - namespace detail \ + namespace detail0 \ { \ struct BOOST_PP_CAT(NAME, _impl_nullary) \ { \ @@ -29,18 +29,18 @@ \ inline \ boost::phoenix::detail::expression::function_eval< \ - detail:: BOOST_PP_CAT(NAME, _impl_nullary) \ + detail0:: BOOST_PP_CAT(NAME, _impl_nullary) \ >::type const \ NAME() \ { \ return boost::phoenix::detail::expression:: \ - function_eval<detail:: BOOST_PP_CAT(NAME, _impl_nullary)> \ - ::make(detail:: BOOST_PP_CAT(NAME, _impl_nullary)()); \ + function_eval<detail0:: BOOST_PP_CAT(NAME, _impl_nullary)> \ + ::make(detail0:: BOOST_PP_CAT(NAME, _impl_nullary)()); \ } \ /**/ #define BOOST_PHOENIX_ADAPT_FUNCTION(RESULT, NAME, FUNC, N) \ - namespace detail \ + namespace detail1 \ { \ struct BOOST_PP_CAT(BOOST_PP_CAT(NAME, _impl_), N) \ { \ @@ -64,16 +64,16 @@ inline \ typename \ boost::phoenix::detail::expression::function_eval< \ - detail:: BOOST_PP_CAT(BOOST_PP_CAT(NAME, _impl_), N) \ + detail1:: BOOST_PP_CAT(BOOST_PP_CAT(NAME, _impl_), N) \ , BOOST_PHOENIX_A(N)>::type const \ NAME(BOOST_PHOENIX_A_const_ref_a(N)) \ { \ return boost::phoenix::detail::expression:: \ function_eval< \ - detail:: BOOST_PP_CAT(BOOST_PP_CAT(NAME, _impl_), N) \ + detail1:: BOOST_PP_CAT(BOOST_PP_CAT(NAME, _impl_), N) \ , BOOST_PHOENIX_A(N) \ >::make( \ - detail:: BOOST_PP_CAT(BOOST_PP_CAT(NAME, _impl_), N)() \ + detail1:: BOOST_PP_CAT(BOOST_PP_CAT(NAME, _impl_), N)() \ , BOOST_PHOENIX_a(N) \ ); \ } \ diff --git a/boost/phoenix/function/function.hpp b/boost/phoenix/function/function.hpp index 4817100366..231af15dcb 100644 --- a/boost/phoenix/function/function.hpp +++ b/boost/phoenix/function/function.hpp @@ -8,7 +8,7 @@ #ifndef BOOST_PHOENIX_FUNCTION_FUNCTION_HPP #define BOOST_PHOENIX_FUNCTION_FUNCTION_HPP -#include <boost/config.hpp> +#include <boost/phoenix/config.hpp> //#include <boost/phoenix/function/function_handling.hpp> #include <boost/phoenix/core/detail/function_eval.hpp> #include <boost/preprocessor/facilities/expand.hpp> diff --git a/boost/phoenix/function/lazy_list.hpp b/boost/phoenix/function/lazy_list.hpp new file mode 100644 index 0000000000..996d34f822 --- /dev/null +++ b/boost/phoenix/function/lazy_list.hpp @@ -0,0 +1,1514 @@ +//////////////////////////////////////////////////////////////////////////// +// lazy_list.hpp +// +// Build lazy operations for Phoenix equivalents for FC++ +// +// These are equivalents of the Boost FC++ functoids in list.hpp +// +// Implemented so far: +// +// head tail null +// +// strict_list<T> and associated iterator. +// +// list<T> and odd_list<T> +// +// cons cat +// +// Comparisons between list and odd_list types and separately for strict_list. +// +// NOTES: There is a fix at the moment as I have not yet sorted out +// how to get back the return type of a functor returning a list type. +// For the moment I have fixed this as odd_list<T> at two locations, +// one in list<T> and one in Cons. I am going to leave it like this +// for now as reading the code, odd_list<T> seems to be correct. +// +// I am also not happy at the details needed to detect types in Cons. +// +// I think the structure of this file is now complete. +// John Fletcher February 2015. +// +//////////////////////////////////////////////////////////////////////////// +/*============================================================================= + Copyright (c) 2000-2003 Brian McNamara and Yannis Smaragdakis + Copyright (c) 2001-2007 Joel de Guzman + Copyright (c) 2015 John Fletcher + + 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) +==============================================================================*/ + +/////////////////////////////////////////////////////////////////////// +// This is from Boost FC++ list.hpp reimplemented without Fun0 or Full0 +/////////////////////////////////////////////////////////////////////// + +/* +concept ListLike: Given a list representation type L + +L<T> inherits ListLike and has + // typedefs just show typical values + typedef T value_type + typedef L<T> force_result_type + typedef L<T> delay_result_type + typedef L<T> tail_result_type + template <class UU> struct cons_rebind { + typedef L<UU> type; // force type + typedef L<UU> delay_type; // delay type + }; + + L() + L( a_unique_type_for_nil ) + template <class F> L(F) // F :: ()->L + + constructor: force_result_type( T, L<T> ) + template <class F> + constructor: force_result_type( T, F ) // F :: ()->L + + template <class It> + L( It, It ) + + // FIX THIS instead of operator bool(), does Boost have something better? + operator bool() const + force_result_type force() const + delay_result_type delay() const + T head() const + tail_result_type tail() const + + static const bool is_lazy; // true if can represent infinite lists + + typedef const_iterator; + typedef const_iterator iterator; // ListLikes are immutable + iterator begin() const + iterator end() const +*/ + +////////////////////////////////////////////////////////////////////// +// End of section from Boost FC++ list.hpp +////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_PHOENIX_FUNCTION_LAZY_LIST +#define BOOST_PHOENIX_FUNCTION_LAZY_LIST + +#include <boost/phoenix/core.hpp> +#include <boost/phoenix/function.hpp> +#include <boost/intrusive_ptr.hpp> +#include <boost/function.hpp> +#include <boost/type_traits/type_with_alignment.hpp> +//#include "lazy_reuse.hpp" + +namespace boost { + + namespace phoenix { + +////////////////////////////////////////////////////////////////////// +// These are the list types being declared. +////////////////////////////////////////////////////////////////////// + + template <class T> class strict_list; + namespace impl { + template <class T> class list; + template <class T> class odd_list; + } + // in ref_count.hpp in BoostFC++ now in lazy_operator.hpp + //typedef unsigned int RefCountType; + +////////////////////////////////////////////////////////////////////// +// a_unique_type_for_nil moved to lazy_operator.hpp. +////////////////////////////////////////////////////////////////////// + + +////////////////////////////////////////////////////////////////////// +// Distinguish lazy lists (list and odd_list) from strict_list. +////////////////////////////////////////////////////////////////////// + + namespace lazy { + // Copied from Boost FC++ list.hpp + template <class L, bool is_lazy> struct ensure_lazy_helper {}; + template <class L> struct ensure_lazy_helper<L,true> { + static void requires_lazy_list_to_prevent_infinite_recursion() {} + }; + template <class L> + void ensure_lazy() { + ensure_lazy_helper<L,L::is_lazy>:: + requires_lazy_list_to_prevent_infinite_recursion(); + } + + } + +////////////////////////////////////////////////////////////////////// +// Provide remove reference for types defined for list types. +////////////////////////////////////////////////////////////////////// + + namespace result_of { + + template < typename L > + class ListType + { + public: + typedef typename boost::remove_reference<L>::type LType; + typedef typename LType::value_type value_type; + typedef typename LType::tail_result_type tail_result_type; + typedef typename LType::force_result_type force_result_type; + typedef typename LType::delay_result_type delay_result_type; + }; + + template <> + class ListType<a_unique_type_for_nil> + { + public: + typedef a_unique_type_for_nil LType; + //typedef a_unique_type_for_nil value_type; + }; + + template <typename F, typename T> + struct ResultType { + typedef typename impl::odd_list<T> type; + }; + + } + +////////////////////////////////////////////////////////////////////// +// ListLike is a property inherited by any list type to enable it to +// work with the functions being implemented in this file. +// It provides the check for the structure described above. +////////////////////////////////////////////////////////////////////// + + namespace listlike { + + struct ListLike {}; // This lets us use is_base_and_derived() to see + // (at compile-time) what classes are user-defined lists. + + + template <class L, bool is_lazy> struct ensure_lazy_helper {}; + template <class L> struct ensure_lazy_helper<L,true> { + static void requires_lazy_list_to_prevent_infinite_recursion() {} + }; + template <class L> + void ensure_lazy() { + ensure_lazy_helper<L,L::is_lazy>:: + requires_lazy_list_to_prevent_infinite_recursion(); + } + + template <class L, bool b> + struct EnsureListLikeHelp { + static void trying_to_call_a_list_function_on_a_non_list() {} + }; + template <class L> struct EnsureListLikeHelp<L,false> { }; + template <class L> + void EnsureListLike() { + typedef typename result_of::ListType<L>::LType LType; + EnsureListLikeHelp<L,boost::is_base_and_derived<ListLike,LType>::value>:: + trying_to_call_a_list_function_on_a_non_list(); + } + + template <class L> + bool is_a_unique_type_for_nil(const L& l) { + return false; + } + + template <> + bool is_a_unique_type_for_nil<a_unique_type_for_nil> + (const a_unique_type_for_nil& /* n */) { + return true; + } + + template <class L> + struct detect_nil { + static const bool is_nil = false; + }; + + template <> + struct detect_nil<a_unique_type_for_nil> { + static const bool is_nil = true; + }; + + template <> + struct detect_nil<a_unique_type_for_nil&> { + static const bool is_nil = true; + }; + + template <> + struct detect_nil<const a_unique_type_for_nil&> { + static const bool is_nil = true; + }; + + } + +////////////////////////////////////////////////////////////////////// +// Implement lazy functions for list types. cat and cons come later. +////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_PHOENIX_FUNCTION_MAX_LAZY_LIST_LENGTH +#define BOOST_PHOENIX_FUNCTION_MAX_LAZY_LIST_LENGTH 1000 +#endif + + namespace impl { + + struct Head + { + template <typename Sig> + struct result; + + template <typename This, typename L> + struct result<This(L)> + { + typedef typename result_of::ListType<L>::value_type type; + }; + + template <typename L> + typename result<Head(L)>::type + operator()(const L & l) const + { + listlike::EnsureListLike<L>(); + return l.head(); + } + + }; + + struct Tail + { + template <typename Sig> + struct result; + + template <typename This, typename L> + struct result<This(L)> + { + typedef typename result_of::ListType<L>::tail_result_type type; + }; + + template <typename L> + typename result<Tail(L)>::type + operator()(const L & l) const + { + listlike::EnsureListLike<L>(); + return l.tail(); + } + + }; + + struct Null + { + template <typename Sig> + struct result; + + template <typename This, typename L> + struct result<This(L)> + { + typedef bool type; + }; + + template <typename L> + typename result<Null(L)>::type + //bool + operator()(const L& l) const + { + listlike::EnsureListLike<L>(); + return !l; + } + + }; + + struct Delay { + template <typename Sig> + struct result; + + template <typename This, typename L> + struct result<This(L)> + { + typedef typename result_of::ListType<L>::delay_result_type type; + }; + + template <typename L> + typename result<Delay(L)>::type + operator()(const L & l) const + { + listlike::EnsureListLike<L>(); + return l.delay(); + } + + }; + + struct Force { + template <typename Sig> + struct result; + + template <typename This, typename L> + struct result<This(L)> + { + typedef typename result_of::ListType<L>::force_result_type type; + }; + + template <typename L> + typename result<Force(L)>::type + operator()(const L & l) const + { + listlike::EnsureListLike<L>(); + return l.force(); + } + + }; + + } + //BOOST_PHOENIX_ADAPT_CALLABLE(head, impl::head, 1) + //BOOST_PHOENIX_ADAPT_CALLABLE(tail, impl::tail, 1) + //BOOST_PHOENIX_ADAPT_CALLABLE(null, impl::null, 1) + typedef boost::phoenix::function<impl::Head> Head; + typedef boost::phoenix::function<impl::Tail> Tail; + typedef boost::phoenix::function<impl::Null> Null; + typedef boost::phoenix::function<impl::Delay> Delay; + typedef boost::phoenix::function<impl::Force> Force; + Head head; + Tail tail; + Null null; + Delay delay; + Force force; + +////////////////////////////////////////////////////////////////////// +// These definitions used for strict_list are imported from BoostFC++ +// unchanged. +////////////////////////////////////////////////////////////////////// + +namespace impl { +template <class T> +struct strict_cons : public boost::noncopyable { + mutable RefCountType refC; + T head; + typedef boost::intrusive_ptr<strict_cons> tail_type; + tail_type tail; + strict_cons( const T& h, const tail_type& t ) : refC(0), head(h), tail(t) {} + +}; +template <class T> +void intrusive_ptr_add_ref( const strict_cons<T>* p ) { + ++ (p->refC); +} +template <class T> +void intrusive_ptr_release( const strict_cons<T>* p ) { + if( !--(p->refC) ) delete p; +} + +template <class T> +class strict_list_iterator +: public std::iterator<std::input_iterator_tag,T,ptrdiff_t> { + typedef boost::intrusive_ptr<strict_cons<T> > rep_type; + rep_type l; + bool is_nil; + void advance() { + l = l->tail; + if( !l ) + is_nil = true; + } + class Proxy { // needed for operator-> + const T x; + friend class strict_list_iterator; + Proxy( const T& xx ) : x(xx) {} + public: + const T* operator->() const { return &x; } + }; +public: + strict_list_iterator() : l(), is_nil(true) {} + explicit strict_list_iterator( const rep_type& ll ) : l(ll), is_nil(!ll) {} + + const T operator*() const { return l->head; } + const Proxy operator->() const { return Proxy(l->head); } + strict_list_iterator<T>& operator++() { + advance(); + return *this; + } + const strict_list_iterator<T> operator++(int) { + strict_list_iterator<T> i( *this ); + advance(); + return i; + } + bool operator==( const strict_list_iterator<T>& i ) const { + return is_nil && i.is_nil; + } + bool operator!=( const strict_list_iterator<T>& i ) const { + return ! this->operator==(i); + } +}; +} + +////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////// + + template <class T> + class strict_list : public listlike::ListLike + { + typedef boost::intrusive_ptr<impl::strict_cons<T> > rep_type; + rep_type rep; + struct Make {}; + + template <class Iter> + static rep_type help( Iter a, const Iter& b ) { + rep_type r; + while( a != b ) { + T x( *a ); + r = rep_type( new impl::strict_cons<T>( x, r ) ); + ++a; + } + return r; + } + + public: + static const bool is_lazy = false; + + typedef T value_type; + typedef strict_list force_result_type; + typedef strict_list delay_result_type; + typedef strict_list tail_result_type; + template <class UU> struct cons_rebind { + typedef strict_list<UU> type; + typedef strict_list<UU> delay_type; + }; + + + strict_list( Make, const rep_type& r ) : rep(r) {} + + strict_list() : rep() {} + + strict_list( a_unique_type_for_nil ) : rep() {} + + template <class F> + strict_list( const F& f ) : rep( f().rep ) { + // I cannot do this yet. + //functoid_traits<F>::template ensure_accepts<0>::args(); + } + + strict_list( const T& x, const strict_list& y ) + : rep( new impl::strict_cons<T>(x,y.rep) ) {} + + template <class F> + strict_list( const T& x, const F& f ) + : rep( new impl::strict_cons<T>(x,f().rep) ) {} + + operator bool() const { return (bool)rep; } + force_result_type force() const { return *this; } + delay_result_type delay() const { return *this; } + T head() const { +#ifndef BOOST_PHOENIX_NO_LAZY_EXCEPTIONS + if( !*this ) + throw lazy_exception("Tried to take head() of empty strict_list"); +#endif + return rep->head; + } + tail_result_type tail() const { +#ifndef BOOST_PHOENIX_NO_LAZY_EXCEPTIONS + if( !*this ) + throw lazy_exception("Tried to take tail() of empty strict_list"); +#endif + return strict_list(Make(),rep->tail); + } + + template <class Iter> + strict_list( const Iter& a, const Iter& b ) : rep( rep_type() ) { + // How ironic. We need to reverse the iterator range in order to + // non-recursively build this! + std::vector<T> tmp(a,b); + rep = help( tmp.rbegin(), tmp.rend() ); + } + + // Since the strict_cons destructor can't call the strict_list + // destructor, the "simple" iterative destructor is correct and + // efficient. Hurray. + ~strict_list() { while(rep && (rep->refC == 1)) rep = rep->tail; } + + // The following helps makes strict_list almost an STL "container" + typedef impl::strict_list_iterator<T> const_iterator; + typedef const_iterator iterator; // strict_list is immutable + iterator begin() const { return impl::strict_list_iterator<T>( rep ); } + iterator end() const { return impl::strict_list_iterator<T>(); } + + }; + + // All of these null head and tail are now non lazy using e.g. null(a)(). + // They need an extra () e.g. null(a)(). + template <class T> + bool operator==( const strict_list<T>& a, a_unique_type_for_nil ) { + return null(a)(); + } + template <class T> + bool operator==( a_unique_type_for_nil, const strict_list<T>& a ) { + return null(a)(); + } + template <class T> + bool operator==( const strict_list<T>& a, const strict_list<T>& b ) { + if( null(a)() && null(b)() ) + return true; + if( null(a)() || null(b)() ) + return false; + return (head(a)()==head(b)()) && + (tail(a)()==tail(b)()); + } + + template <class T> + bool operator<( const strict_list<T>& a, const strict_list<T>& b ) { + if( null(a)() && !null(b)() ) return true; + if( null(b)() ) return false; + if( head(b)() < head(a)() ) return false; + if( head(a)() < head(b)() ) return true; + return (tail(a)() < tail(b)()); + } + template <class T> + bool operator<( const strict_list<T>&, a_unique_type_for_nil ) { + return false; + } + template <class T> + bool operator<( a_unique_type_for_nil, const strict_list<T>& b ) { + return !(null(b)()); + } + +////////////////////////////////////////////////////////////////////// +// Class list<T> is the primary interface to the user for lazy lists. +//////////////////////////////////////////////////////////////////////{ + namespace impl { + using fcpp::INV; + using fcpp::VAR; + using fcpp::reuser2; + + struct CacheEmpty {}; + + template <class T> class Cache; + template <class T> class odd_list; + template <class T> class list_iterator; + template <class It, class T> + struct ListItHelp2 /*: public c_fun_type<It,It,odd_list<T> >*/ { + // This will need a return type. + typedef odd_list<T> return_type; + odd_list<T> operator()( It begin, const It& end, + reuser2<INV,VAR,INV,ListItHelp2<It,T>,It,It> r = NIL ) const; + }; + template <class U,class F> struct cvt; + template <class T, class F, class R> struct ListHelp; + template <class T> Cache<T>* xempty_helper(); + template <class T, class F, class L, bool b> struct ConsHelp2; + + struct ListRaw {}; + + template <class T> + class list : public listlike::ListLike + { + // never NIL, unless an empty odd_list + boost::intrusive_ptr<Cache<T> > rep; + + template <class U> friend class Cache; + template <class U> friend class odd_list; + template <class TT, class F, class L, bool b> friend struct ConsHelp2; + template <class U,class F> friend struct cvt; + + list( const boost::intrusive_ptr<Cache<T> >& p ) : rep(p) { } + list( ListRaw, Cache<T>* p ) : rep(p) { } + + bool priv_isEmpty() const { + return rep->cache().second.rep == Cache<T>::XNIL(); + } + T priv_head() const { +#ifndef BOOST_PHOENIX_NO_LAZY_EXCEPTIONS + if( priv_isEmpty() ) + throw lazy_exception("Tried to take head() of empty list"); +#endif + return rep->cache().first(); + } + list<T> priv_tail() const { +#ifndef BOOST_PHOENIX_NO_LAZY_EXCEPTIONS + if( priv_isEmpty() ) + throw lazy_exception("Tried to take tail() of empty list"); +#endif + return rep->cache().second; + } + + + public: + static const bool is_lazy = true; + + typedef T value_type; + typedef list tail_result_type; + typedef odd_list<T> force_result_type; + typedef list delay_result_type; + template <class UU> struct cons_rebind { + typedef odd_list<UU> type; + typedef list<UU> delay_type; + }; + + list( a_unique_type_for_nil ) : rep( Cache<T>::XEMPTY() ) { } + list() : rep( Cache<T>::XEMPTY() ) { } + + template <class F> // works on both ()->odd_list and ()->list + // At the moment this is fixed for odd_list<T>. + // I need to do more work to get the general result. + list( const F& f ) + : rep( ListHelp<T,F,odd_list<T> >()(f) ) { } + //: rep( ListHelp<T,F,typename F::result_type>()(f) ) { } + + operator bool() const { return !priv_isEmpty(); } + const force_result_type& force() const { return rep->cache(); } + const delay_result_type& delay() const { return *this; } + // Note: force returns a reference; + // implicit conversion now returns a copy. + operator odd_list<T>() const { return force(); } + + T head() const { return priv_head(); } + tail_result_type tail() const { return priv_tail(); } + + // The following helps makes list almost an STL "container" + typedef list_iterator<T> const_iterator; + typedef const_iterator iterator; // list is immutable + iterator begin() const { return list_iterator<T>( *this ); } + iterator end() const { return list_iterator<T>(); } + + // end of list<T> + }; + +////////////////////////////////////////////////////////////////////// +// Class odd_list<T> is not normally accessed by the user. +////////////////////////////////////////////////////////////////////// + + struct OddListDummyY {}; + + template <class T> + class odd_list : public listlike::ListLike + { + public: + typedef + typename boost::type_with_alignment<boost::alignment_of<T>::value>::type + xfst_type; + private: + union { xfst_type fst; unsigned char dummy[sizeof(T)]; }; + + const T& first() const { + return *static_cast<const T*>(static_cast<const void*>(&fst)); + } + T& first() { + return *static_cast<T*>(static_cast<void*>(&fst)); + } + list<T> second; // If XNIL, then this odd_list is NIL + + template <class U> friend class list; + template <class U> friend class Cache; + + odd_list( OddListDummyY ) + : second( Cache<T>::XBAD() ) { } + + void init( const T& x ) { + new (static_cast<void*>(&fst)) T(x); + } + + bool fst_is_valid() const { + if( second.rep != Cache<T>::XNIL() ) + if( second.rep != Cache<T>::XBAD() ) + return true; + return false; + } + + bool priv_isEmpty() const { return second.rep == Cache<T>::XNIL(); } + T priv_head() const { +#ifndef BOOST_PHOENIX_NO_LAZY_EXCEPTIONS + if( priv_isEmpty() ) + throw lazy_exception("Tried to take head() of empty odd_list"); +#endif + return first(); + } + + list<T> priv_tail() const { +#ifndef BOOST_PHOENIX_NO_LAZY_EXCEPTIONS + if( priv_isEmpty() ) + throw lazy_exception("Tried to take tail() of empty odd_list"); +#endif + return second; + } + + public: + static const bool is_lazy = true; + + typedef T value_type; + typedef list<T> tail_result_type; + typedef odd_list<T> force_result_type; + typedef list<T> delay_result_type; + template <class UU> struct cons_rebind { + typedef odd_list<UU> type; + typedef list<UU> delay_type; + }; + + odd_list() : second( Cache<T>::XNIL() ) { } + odd_list( a_unique_type_for_nil ) : second( Cache<T>::XNIL() ) { } + odd_list( const T& x, const list<T>& y ) : second(y) { init(x); } + odd_list( const T& x, a_unique_type_for_nil ) : second(NIL) { init(x); } + + odd_list( const odd_list<T>& x ) : second(x.second) { + if( fst_is_valid() ) { + init( x.first() ); + } + } + + template <class It> + odd_list( It begin, const It& end ) + : second( begin==end ? Cache<T>::XNIL() : + ( init(*begin++), list<T>( begin, end ) ) ) {} + + odd_list<T>& operator=( const odd_list<T>& x ) { + if( this == &x ) return *this; + if( fst_is_valid() ) { + if( x.fst_is_valid() ) + first() = x.first(); + else + first().~T(); + } + else { + if( x.fst_is_valid() ) + init( x.first() ); + } + second = x.second; + return *this; + } + + ~odd_list() { + if( fst_is_valid() ) { + first().~T(); + } + } + + operator bool() const { return !priv_isEmpty(); } + const force_result_type& force() const { return *this; } + delay_result_type delay() const { return list<T>(*this); } + + T head() const { return priv_head(); } + tail_result_type tail() const { return priv_tail(); } + + // The following helps makes odd_list almost an STL "container" + typedef list_iterator<T> const_iterator; + typedef const_iterator iterator; // odd_list is immutable + iterator begin() const { return list_iterator<T>( this->delay() ); } + iterator end() const { return list_iterator<T>(); } + + // end of odd_list<T> + }; + +////////////////////////////////////////////////////////////////////// +// struct cvt +////////////////////////////////////////////////////////////////////// + + // This converts ()->list<T> to ()->odd_list<T>. + // In other words, here is the 'extra work' done when using the + // unoptimized interface. + template <class U,class F> + struct cvt /*: public c_fun_type<odd_list<U> >*/ { + typedef odd_list<U> return_type; + F f; + cvt( const F& ff ) : f(ff) {} + odd_list<U> operator()() const { + list<U> l = f(); + return l.force(); + } + }; + + +////////////////////////////////////////////////////////////////////// +// Cache<T> and associated functions. +////////////////////////////////////////////////////////////////////// + +// I malloc a RefCountType to hold the refCount and init it to 1 to ensure the +// refCount will never get to 0, so the destructor-of-global-object +// order at the end of the program is a non-issue. In other words, the +// memory allocated here is only reclaimed by the operating system. + template <class T> + Cache<T>* xnil_helper() { + void *p = std::malloc( sizeof(RefCountType) ); + *((RefCountType*)p) = 1; + return static_cast<Cache<T>*>( p ); + } + + template <class T> + Cache<T>* xnil_helper_nil() { + Cache<T>* p = xnil_helper<T>(); + return p; + } + + template <class T> + Cache<T>* xnil_helper_bad() { + Cache<T>* p = xnil_helper<T>(); + return p; + } + + template <class T> + Cache<T>* xempty_helper() { + Cache<T>* p = new Cache<T>( CacheEmpty() ); + return p; + } + + // This makes a boost phoenix function type with return type + // odd_list<T> + template <class T> + struct fun0_type_helper{ + typedef boost::function0<odd_list<T> > fun_type; + typedef boost::phoenix::function<fun_type> phx_type; + }; + + + template <class T> + struct make_fun0_odd_list { + + typedef typename fun0_type_helper<T>::fun_type fun_type; + typedef typename fun0_type_helper<T>::phx_type phx_type; + typedef phx_type result_type; + + template <class F> + result_type operator()(const F& f) const + { + fun_type ff(f); + phx_type g(ff); + return g; + } + + // Overload for the case where it is a boost phoenix function already. + template <class F> + typename boost::phoenix::function<F> operator() + (const boost::phoenix::function<F>& f) const + { + return f; + } + + }; + + template <class T> + class Cache : boost::noncopyable { + mutable RefCountType refC; + // This is the boost::function type + typedef typename fun0_type_helper<T>::fun_type fun_odd_list_T; + // This is the boost::phoenix::function type; + typedef typename fun0_type_helper<T>::phx_type fun0_odd_list_T; + mutable fun0_odd_list_T fxn; + mutable odd_list<T> val; + // val.second.rep can be XBAD, XNIL, or a valid ptr + // - XBAD: val is invalid (fxn is valid) + // - XNIL: this is the empty list + // - anything else: val.first() is head, val.second is tail() + + // This functoid should never be called; it represents a + // self-referent Cache, which should be impossible under the current + // implementation. Nonetheless, we need a 'dummy' function object to + // represent invalid 'fxn's (val.second.rep!=XBAD), and this + // implementation seems to be among the most reasonable. + struct blackhole_helper /*: c_fun_type< odd_list<T> >*/ { + typedef odd_list<T> return_type; + odd_list<T> operator()() const { +#ifndef BOOST_PHOENIX_NO_LAZY_EXCEPTIONS + throw lazy_exception("You have entered a black hole."); +#else + return odd_list<T>(); +#endif + } + }; + + // Don't get rid of these XFOO() functions; they impose no overhead, + // and provide a useful place to add debugging code for tracking down + // before-main()-order-of-initialization problems. + static const boost::intrusive_ptr<Cache<T> >& XEMPTY() { + static boost::intrusive_ptr<Cache<T> > xempty( xempty_helper<T>() ); + return xempty; + } + static const boost::intrusive_ptr<Cache<T> >& XNIL() { + // this list is nil + static boost::intrusive_ptr<Cache<T> > xnil( xnil_helper_nil<T>() ); + return xnil; + } + + static const boost::intrusive_ptr<Cache<T> >& XBAD() { + // the pair is invalid; use fxn + static boost::intrusive_ptr<Cache<T> > xbad( xnil_helper_bad<T>() ); + return xbad; + } + + static fun0_odd_list_T /*<odd_list<T> >*/ the_blackhole; + static fun0_odd_list_T& blackhole() { + static fun0_odd_list_T the_blackhole; + //( make_fun0_odd_list<T>()( blackhole_helper() ) ); + return the_blackhole; + } + + odd_list<T>& cache() const { + if( val.second.rep == XBAD() ) { + val = fxn()(); + fxn = blackhole(); + } + return val; + } + + template <class U> friend class list; + template <class U> friend class odd_list; + template <class TT, class F, class L, bool b> friend struct ConsHelp2; + template <class U,class F> friend struct cvt; + template <class U, class F, class R> friend struct ListHelp; + template <class U> friend Cache<U>* xempty_helper(); + + Cache( CacheEmpty ) : refC(0), fxn(blackhole()), val() {} + Cache( const odd_list<T>& x ) : refC(0), fxn(blackhole()), val(x) {} + Cache( const T& x, const list<T>& l ) : refC(0),fxn(blackhole()),val(x,l) + {} + + Cache( const fun0_odd_list_T& f ) + : refC(0), fxn(f), val( OddListDummyY() ) {} + + // f must be a boost phoenix function object? + template <class F> + Cache( const F& f ) // ()->odd_list + : refC(0), fxn(make_fun0_odd_list<T>()(f)), val( OddListDummyY() ) {} + + // This is for ()->list<T> to ()->odd_list<T> + struct CvtFxn {}; + template <class F> + Cache( CvtFxn, const F& f ) // ()->list + : refC(0), fxn(make_fun0_odd_list<T>()(cvt<T,F>(f))), val( OddListDummyY() ) {} + + template <class X> + friend void intrusive_ptr_add_ref( const Cache<X>* p ); + template <class X> + friend void intrusive_ptr_release( const Cache<X>* p ); + }; + + template <class T> + void intrusive_ptr_add_ref( const Cache<T>* p ) { + ++ (p->refC); + } + template <class T> + void intrusive_ptr_release( const Cache<T>* p ) { + if( !--(p->refC) ) delete p; + } + +////////////////////////////////////////////////////////////////////// +// Rest of list's stuff +////////////////////////////////////////////////////////////////////// + +template <class T, class F> struct ListHelp<T,F,list<T> > { + boost::intrusive_ptr<Cache<T> > operator()( const F& f ) const { + return boost::intrusive_ptr<Cache<T> > + (new Cache<T>(typename Cache<T>::CvtFxn(),f)); + } +}; +template <class T, class F> struct ListHelp<T,F,odd_list<T> > { + boost::intrusive_ptr<Cache<T> > operator()( const F& f ) const { + return boost::intrusive_ptr<Cache<T> >(new Cache<T>(f)); + } +}; + +template <class T> +class list_iterator +: public std::iterator<std::input_iterator_tag,T,ptrdiff_t> { + list<T> l; + bool is_nil; + void advance() { + l = l.tail(); + if( !l ) + is_nil = true; + } + class Proxy { // needed for operator-> + const T x; + friend class list_iterator; + Proxy( const T& xx ) : x(xx) {} + public: + const T* operator->() const { return &x; } + }; +public: + list_iterator() : l(), is_nil(true) {} + explicit list_iterator( const list<T>& ll ) : l(ll), is_nil(!ll) {} + + const T operator*() const { return l.head(); } + const Proxy operator->() const { return Proxy(l.head()); } + list_iterator<T>& operator++() { + advance(); + return *this; + } + const list_iterator<T> operator++(int) { + list_iterator<T> i( *this ); + advance(); + return i; + } + bool operator==( const list_iterator<T>& i ) const { + return is_nil && i.is_nil; + } + bool operator!=( const list_iterator<T>& i ) const { + return ! this->operator==(i); + } +}; + + + } // namespace impl + + using impl::list; + using impl::odd_list; + using impl::list_iterator; + +////////////////////////////////////////////////////////////////////// +// op== and op<, overloaded for all combos of list, odd_list, and NIL +////////////////////////////////////////////////////////////////////// +// All of these null head and tail are now non lazy using e.g. null(a)(). +// They need an extra () e.g. null(a)(). + +// FIX THIS comparison operators can be implemented simpler with enable_if +template <class T> +bool operator==( const odd_list<T>& a, a_unique_type_for_nil ) { + return null(a)(); +} +template <class T> +bool operator==( const list<T>& a, a_unique_type_for_nil ) { + return null(a)(); +} +template <class T> +bool operator==( a_unique_type_for_nil, const odd_list<T>& a ) { + return null(a)(); +} +template <class T> +bool operator==( a_unique_type_for_nil, const list<T>& a ) { + return null(a)(); +} +template <class T> +bool operator==( const list<T>& a, const list<T>& b ) { + if( null(a)() && null(b)() ) + return true; + if( null(a)() || null(b)() ) + return false; + return (head(a)()==head(b)()) && (tail(a)()==tail(b)()); +} +template <class T> +bool operator==( const odd_list<T>& a, const odd_list<T>& b ) { + if( null(a)() && null(b)() ) + return true; + if( null(a)() || null(b)() ) + return false; + return (head(a)()==head(b)()) && (tail(a)()==tail(b)()); +} +template <class T> +bool operator==( const list<T>& a, const odd_list<T>& b ) { + if( null(a)() && null(b)() ) + return true; + if( null(a)() || null(b)() ) + return false; + return (head(a)()==head(b)()) && (tail(a)()==tail(b)()); +} +template <class T> +bool operator==( const odd_list<T>& a, const list<T>& b ) { + if( null(a)() && null(b)() ) + return true; + if( null(a)() || null(b)() ) + return false; + return (head(a)()==head(b)()) && (tail(a)()==tail(b)()); +} + +template <class T> +bool operator<( const list<T>& a, const list<T>& b ) { + if( null(a)() && !null(b)() ) return true; + if( null(b)() ) return false; + if( head(b)() < head(a)() ) return false; + if( head(a)() < head(b)() ) return true; + return (tail(a)() < tail(b)()); +} +template <class T> +bool operator<( const odd_list<T>& a, const list<T>& b ) { + if( null(a)() && !null(b)() ) return true; + if( null(b)() ) return false; + if( head(b)() < head(a)() ) return false; + if( head(a)() < head(b)() ) return true; + return (tail(a)() < tail(b)()); +} +template <class T> +bool operator<( const list<T>& a, const odd_list<T>& b ) { + if( null(a) && !null(b) ) return true; + if( null(b) ) return false; + if( head(b) < head(a) ) return false; + if( head(a) < head(b) ) return true; + return (tail(a) < tail(b)); +} +template <class T> +bool operator<( const odd_list<T>& a, const odd_list<T>& b ) { + if( null(a)() && !null(b)() ) return true; + if( null(b)() ) return false; + if( head(b)() < head(a)() ) return false; + if( head(a)() < head(b)() ) return true; + return (tail(a)() < tail(b)()); +} +template <class T> +bool operator<( const odd_list<T>&, a_unique_type_for_nil ) { + return false; +} +template <class T> +bool operator<( const list<T>&, a_unique_type_for_nil ) { + return false; +} +template <class T> +bool operator<( a_unique_type_for_nil, const odd_list<T>& b ) { + return !null(b)(); +} +template <class T> +bool operator<( a_unique_type_for_nil, const list<T>& b ) { + return !null(b)(); +} + +////////////////////////////////////////////////////////////////////// +// Implement cat and cons after the list types are defined. +////////////////////////////////////////////////////////////////////// + namespace impl { + using listlike::ListLike; + + template <class T, class F, class L> + struct ConsHelp2<T,F,L,true> + { + typedef typename boost::remove_reference<T>::type TT; + typedef typename L::force_result_type type; + static type go( const TT& x, const F& f ) { + return type( x, f ); + } + }; + template <class T, class F> + struct ConsHelp2<T,F,list<T>,true> + { + typedef typename boost::remove_reference<T>::type TT; + typedef list<TT> L; + typedef typename L::force_result_type type; + static type go( const TT& x, const F& f ) { + return odd_list<TT>(x, list<TT>( + boost::intrusive_ptr<Cache<TT> >(new Cache<T>( + typename Cache<TT>::CvtFxn(),f)))); + } + }; + template <class T, class F> + struct ConsHelp2<T,F,odd_list<T>,true> + { + typedef typename boost::remove_reference<T>::type TT; + typedef odd_list<TT> L; + typedef typename L::force_result_type type; + static type go( const TT& x, const F& f ) { + return odd_list<TT>(x, list<TT>( ListRaw(), new Cache<T>(f) )); + } + }; + template <class T, class F> + struct ConsHelp2<T,F,a_unique_type_for_nil,false> + { + typedef typename boost::remove_reference<T>::type TT; + typedef odd_list<TT> type; + static type go( const TT& x, const F& f ) { + return odd_list<TT>(x, list<TT>( ListRaw(), new Cache<T>(f) )); + } + }; + + template <class T, class L, bool b> struct ConsHelp1 { + typedef typename boost::remove_reference<T>::type TT; + typedef typename L::force_result_type type; + static type go( const TT& x, const L& l ) { + return type(x,l); + } + }; + template <class T> struct ConsHelp1<T,a_unique_type_for_nil,false> { + typedef typename boost::remove_reference<T>::type TT; + typedef odd_list<TT> type; + static type go( const TT& x, const a_unique_type_for_nil& n ) { + return type(x,n); + } + }; + template <class T, class F> struct ConsHelp1<T,F,false> { + // It's a function returning a list + // This is the one I have not fixed yet.... + // typedef typename F::result_type L; + // typedef typename result_of::template ListType<F>::result_type L; + typedef odd_list<T> L; + typedef ConsHelp2<T,F,L,boost::is_base_and_derived<ListLike,L>::value> help; + typedef typename help::type type; + static type go( const T& x, const F& f ) { + return help::go(x,f); + } + }; + + template <class T, class L, bool b> + struct ConsHelp0; + + template <class T> + struct ConsHelp0<T,a_unique_type_for_nil,true> { + typedef typename boost::remove_reference<T>::type TT; + typedef odd_list<T> type; + }; + + template <class T> + struct ConsHelp0<const T &,const a_unique_type_for_nil &,true> { + typedef typename boost::remove_reference<T>::type TT; + typedef odd_list<TT> type; + }; + + template <class T> + struct ConsHelp0<T &,a_unique_type_for_nil &,true> { + typedef typename boost::remove_reference<T>::type TT; + typedef odd_list<TT> type; + }; + + template <class T, class L> + struct ConsHelp0<T,L,false> { + // This removes any references from L for correct return type + // identification. + typedef typename boost::remove_reference<L>::type LType; + typedef typename ConsHelp1<T,LType, + boost::is_base_and_derived<ListLike,LType>::value>::type type; + }; + + ///////////////////////////////////////////////////////////////////// + // cons (t,l) - cons a value to the front of a list. + // Note: The first arg, t, must be a value. + // The second arg, l, can be a list or NIL + // or a function that returns a list. + ///////////////////////////////////////////////////////////////////// + struct Cons + { + /* template <class T, class L> struct sig : public fun_type< + typename ConsHelp1<T,L, + boost::is_base_and_derived<ListLike,L>::value>::type> {}; + */ + template <typename Sig> struct result; + + template <typename This, typename T, typename L> + struct result<This(T, L)> + { + typedef typename ConsHelp0<T,L, + listlike::detect_nil<L>::is_nil>::type type; + }; + + template <typename This, typename T> + struct result<This(T,a_unique_type_for_nil)> + { + typedef typename boost::remove_reference<T>::type TT; + typedef odd_list<TT> type; + }; + + template <typename T, typename L> + typename result<Cons(T,L)>::type + operator()( const T& x, const L& l ) const { + typedef typename result<Cons(T,L)>::type LL; + typedef typename result_of::ListType<L>::LType LType; + typedef ConsHelp1<T,LType, + boost::is_base_and_derived<ListLike,LType>::value> help; + return help::go(x,l); + } + + template <typename T> + typename result<Cons(T,a_unique_type_for_nil)>::type + operator()( const T& x, const a_unique_type_for_nil &n ) const { + typedef typename result<Cons(T,a_unique_type_for_nil)>::type LL; + typedef ConsHelp1<T,LL, + boost::is_base_and_derived<ListLike,LL>::value> help; + return help::go(x,n); + } + + }; + } + + typedef boost::phoenix::function<impl::Cons> Cons; + Cons cons; + + namespace impl { + + template <class L, class M, bool b> + struct CatHelp0; + + template <class L> + struct CatHelp0<L,a_unique_type_for_nil,true> { + typedef typename result_of::template ListType<L>::LType type; + }; + + template <class L> + struct CatHelp0<const L &,const a_unique_type_for_nil &,true> { + typedef typename result_of::template ListType<L>::LType type; + //typedef L type; + }; + + template <class L> + struct CatHelp0<L &,a_unique_type_for_nil &,true> { + typedef typename result_of::template ListType<L>::LType type; + //typedef L type; + }; + + template <class L, class M> + struct CatHelp0<L,M,false> { + // This removes any references from L for correct return type + // identification. + typedef typename result_of::template ListType<L>::LType type; + // typedef typename ConsHelp1<T,LType, + // boost::is_base_and_derived<ListLike,LType>::value>::type type; + }; + + ///////////////////////////////////////////////////////////////////// + // cat (l,m) - concatenate lists. + // Note: The first arg, l, must be a list or NIL. + // The second arg, m, can be a list or NIL + // or a function that returns a list. + ///////////////////////////////////////////////////////////////////// + struct Cat + { + template <class L, class M, bool b, class R> + struct Helper /*: public c_fun_type<L,M,R>*/ { + template <typename Sig> struct result; + + template <typename This> + struct result<This(L,M)> + { + typedef typename result_of::ListType<L>::tail_result_type type; + }; + + typedef R return_type; + R operator()( const L& l, const M& m, + reuser2<INV,VAR,INV,Helper, + typename result_of::template ListType<L>::tail_result_type,M> + r = NIL ) const { + if( null(l)() ) + return m().force(); + else + return cons( head(l)(), r( Helper<L,M,b,R>(), tail(l), m )() ); + } + }; + template <class L, class M, class R> + struct Helper<L,M,true,R> /*: public c_fun_type<L,M,R>*/ { + template <typename Sig> struct result; + + template <typename This> + struct result<This(L,M)> + { + typedef typename result_of::ListType<L>::tail_result_type type; + }; + typedef R return_type; + R operator()( const L& l, const M& m, + reuser2<INV,VAR,INV,Helper, + typename result_of::template ListType<L>::tail_result_type,M> + r = NIL ) const { + if( null(l)() ) + return m.force(); + else + return cons( head(l)(), r(Helper<L,M,true,R>(), tail(l), m )()); + } + }; + template <class L, class R> + struct Helper<L,a_unique_type_for_nil,false,R> + /*: public c_fun_type<L, + a_unique_type_for_nil,odd_list<typename L::value_type> > */ + { + typedef odd_list<typename result_of::template ListType<L>::value_type> type; + odd_list<typename result_of::template ListType<L>::value_type> + operator()( const L& l, const a_unique_type_for_nil& ) const { + return l; + } + }; + public: + /*template <class L, class M> struct sig : public fun_type< + typename RT<cons_type,typename L::value_type,M>::result_type> + {}; */ + // Need to work out the return type here. + template <typename Sig> struct result; + + template <typename This, typename L, typename M> + struct result<This(L,M)> + { + typedef typename CatHelp0<L,M, + listlike::detect_nil<M>::is_nil>::type type; + // typedef typename result_of::ListType<L>::tail_result_type type; + }; + + template <typename This, typename L> + struct result<This(L,a_unique_type_for_nil)> + { + typedef typename result_of::ListType<L>::tail_result_type type; + }; + template <class L, class M> + typename result<Cat(L,M)>::type operator()( const L& l, const M& m ) const + { + listlike::EnsureListLike<L>(); + return Helper<L,M, + boost::is_base_and_derived<typename listlike::ListLike,M>::value, + typename result<Cat(L,M)>::type>()(l,m); + } + + template <class L> + typename result<Cat(L,a_unique_type_for_nil)>::type operator()( const L& l, const a_unique_type_for_nil& /* n */ ) const + { + listlike::EnsureListLike<L>(); + return l; + } + + }; + + + } + + typedef boost::phoenix::function<impl::Cat> Cat; + Cat cat; + + +////////////////////////////////////////////////////////////////////// +// Handy functions for making list literals +////////////////////////////////////////////////////////////////////// +// Yes, these aren't functoids, they're just template functions. I'm +// lazy and created these mostly to make it easily to make little lists +// in the sample code snippets that appear in papers. + +struct UseList { + template <class T> struct List { typedef list<T> type; }; +}; +struct UseOddList { + template <class T> struct List { typedef odd_list<T> type; }; +}; +struct UseStrictList { + template <class T> struct List { typedef strict_list<T> type; }; +}; + +template <class Kind = UseList> +struct list_with { + template <class T> + typename Kind::template List<T>::type + operator()( const T& a ) const { + typename Kind::template List<T>::type l; + l = cons( a, l ); + return l; + } + + template <class T> + typename Kind::template List<T>::type + operator()( const T& a, const T& b ) const { + typename Kind::template List<T>::type l; + l = cons( b, l ); + l = cons( a, l ); + return l; + } + + template <class T> + typename Kind::template List<T>::type + operator()( const T& a, const T& b, const T& c ) const { + typename Kind::template List<T>::type l; + l = cons( c, l ); + l = cons( b, l ); + l = cons( a, l ); + return l; + } + + template <class T> + typename Kind::template List<T>::type + operator()( const T& a, const T& b, const T& c, const T& d ) const { + typename Kind::template List<T>::type l; + l = cons( d, l ); + l = cons( c, l ); + l = cons( b, l ); + l = cons( a, l ); + return l; + } + + template <class T> + typename Kind::template List<T>::type + operator()( const T& a, const T& b, const T& c, const T& d, + const T& e ) const { + typename Kind::template List<T>::type l; + l = cons( e, l ); + l = cons( d, l ); + l = cons( c, l ); + l = cons( b, l ); + l = cons( a, l ); + return l; + } +}; +////////////////////////////////////////////////////////////////////// + + } + +} + +#endif diff --git a/boost/phoenix/function/lazy_operator.hpp b/boost/phoenix/function/lazy_operator.hpp new file mode 100644 index 0000000000..c88b768e3d --- /dev/null +++ b/boost/phoenix/function/lazy_operator.hpp @@ -0,0 +1,670 @@ +//////////////////////////////////////////////////////////////////////////// +// lazy operator.hpp +// +// Build lazy operations for Phoenix equivalents for FC++ +// +// These are equivalents of the Boost FC++ functoids in operator.hpp +// +// Implemented so far: +// +// make_pair +// plus minus multiplies divides modulus +// negate equal not_equal greater less +// greater_equal less_equal logical_and logical_or +// logical_not min max inc dec +// +// These are not from the FC++ operator.hpp but were made for testing purposes. +// +// identity (renamed id) +// sin +// +// These are now being modified to use boost::phoenix::function +// so that they are available for use as arguments. +// Types are being defined in capitals e.g. Id id; +//////////////////////////////////////////////////////////////////////////// +/*============================================================================= + Copyright (c) 2000-2003 Brian McNamara and Yannis Smaragdakis + Copyright (c) 2001-2007 Joel de Guzman + Copyright (c) 2015 John Fletcher + + 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) +==============================================================================*/ + + +#ifndef BOOST_PHOENIX_FUNCTION_LAZY_OPERATOR +#define BOOST_PHOENIX_FUNCTION_LAZY_OPERATOR + +#include <cmath> +#include <cstdlib> +#include <boost/phoenix/core.hpp> +#include <boost/phoenix/function.hpp> +#include <boost/function.hpp> + +namespace boost { + + namespace phoenix { + +////////////////////////////////////////////////////////////////////// +// a_unique_type_for_nil +////////////////////////////////////////////////////////////////////// + +// This may need to be moved elsewhere to define reuser. + struct a_unique_type_for_nil { + bool operator==( a_unique_type_for_nil ) const { return true; } + bool operator< ( a_unique_type_for_nil ) const { return false; } + typedef a_unique_type_for_nil value_type; + }; + // This maybe put into a namespace. + a_unique_type_for_nil NIL; + +////////////////////////////////////////////////////////////////////// +// lazy_exception - renamed from fcpp_exception. +////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_PHOENIX_NO_LAZY_EXCEPTIONS + struct lazy_exception : public std::exception { + const char* s; + lazy_exception( const char* ss ) : s(ss) {} + const char* what() const throw() { return s; } + }; +#endif + +////////////////////////////////////////////////////////////////////// + + // in ref_count.hpp in BoostFC++ + typedef unsigned int RefCountType; + + namespace impl { + + struct Id + { + template <typename Sig> + struct result; + + template <typename This, typename A0> + struct result<This(A0)> + : boost::remove_reference<A0> + {}; + + template <typename A0> + A0 operator()(A0 const & a0) const + { + return a0; + } + + }; + + + } + + //BOOST_PHOENIX_ADAPT_CALLABLE(id, impl::id, 1) + typedef boost::phoenix::function<impl::Id> Id; + Id id; + +#ifdef BOOST_RESULT_OF_USE_TR1 + // Experiment following examples in + // phoenix/stl/container/container.hpp + + namespace result_of { + + template < + typename Arg1 + , typename Arg2 + > + class make_pair + { + public: + typedef typename boost::remove_reference<Arg1>::type Arg1Type; + typedef typename boost::remove_reference<Arg2>::type Arg2Type; + typedef std::pair<Arg1Type,Arg2Type> type; + typedef std::pair<Arg1Type,Arg2Type> result_type; + }; + } +#endif + + namespace impl + { + + struct make_pair { + + +#ifdef BOOST_RESULT_OF_USE_TR1 + template <typename Sig> + struct result; + // This fails with -O2 unless refs are removed from A1 and A2. + template <typename This, typename A0, typename A1> + struct result<This(A0, A1)> + { + typedef typename result_of::make_pair<A0,A1>::type type; + }; +#else + template <typename Sig> + struct result; + + template <typename This, typename A0, typename A1> + struct result<This(A0, A1)> + : boost::remove_reference<std::pair<A0, A1> > + {}; + +#endif + + + template <typename A0, typename A1> +#ifdef BOOST_RESULT_OF_USE_TR1 + typename result<make_pair(A0,A1)>::type +#else + std::pair<A0, A1> +#endif + operator()(A0 const & a0, A1 const & a1) const + { + return std::make_pair(a0,a1); + } + + }; + } + +BOOST_PHOENIX_ADAPT_CALLABLE(make_pair, impl::make_pair, 2) + + namespace impl + { + + // For now I will leave the return type deduction as it is. + // I want to look at bringing in the sort of type deduction for + // mixed types which I have in FC++. + // Also I could look at the case where one of the arguments is + // another functor or a Phoenix placeholder. + struct Plus + { + template <typename Sig> + struct result; + + template <typename This, typename A0, typename A1> + struct result<This(A0, A1)> + : boost::remove_reference<A0> + {}; + + template <typename This, typename A0, typename A1, typename A2> + struct result<This(A0, A1, A2)> + : boost::remove_reference<A0> + {}; + + template <typename A0, typename A1> + A0 operator()(A0 const & a0, A1 const & a1) const + { + //A0 res = a0 + a1; + //return res; + return a0 + a1; + } + + template <typename A0, typename A1, typename A2> + A0 operator()(A0 const & a0, A1 const & a1, A2 const & a2) const + { + return a0 + a1 + a2; + } + }; + + struct Minus + { + template <typename Sig> + struct result; + + template <typename This, typename A0, typename A1> + struct result<This(A0, A1)> + : boost::remove_reference<A0> + {}; + + template <typename A0, typename A1> + A0 operator()(A0 const & a0, A1 const & a1) const + { + return a0 - a1; + } + + }; + + struct multiplies + { + template <typename Sig> + struct result; + + template <typename This, typename A0, typename A1> + struct result<This(A0, A1)> + : boost::remove_reference<A0> + {}; + + template <typename A0, typename A1> + A0 operator()(A0 const & a0, A1 const & a1) const + { + return a0 * a1; + } + + }; + + struct divides + { + template <typename Sig> + struct result; + + template <typename This, typename A0, typename A1> + struct result<This(A0, A1)> + : boost::remove_reference<A0> + {}; + + template <typename A0, typename A1> + A0 operator()(A0 const & a0, A1 const & a1) const + { + return a0 / a1; + } + + }; + + struct modulus + { + template <typename Sig> + struct result; + + template <typename This, typename A0, typename A1> + struct result<This(A0, A1)> + : boost::remove_reference<A0> + {}; + + template <typename A0, typename A1> + A0 operator()(A0 const & a0, A1 const & a1) const + { + return a0 % a1; + } + + }; + + struct negate + { + template <typename Sig> + struct result; + + template <typename This, typename A0> + struct result<This(A0)> + : boost::remove_reference<A0> + {}; + + template <typename A0> + A0 operator()(A0 const & a0) const + { + return -a0; + } + }; + + struct equal + { + template <typename Sig> + struct result; + + template <typename This, typename A0, typename A1> + struct result<This(A0,A1)> + { + typedef bool type; + }; + + template <typename A0, typename A1> + bool operator()(A0 const & a0, A1 const & a1) const + { + return a0 == a1; + } + }; + + struct not_equal + { + template <typename Sig> + struct result; + + template <typename This, typename A0, typename A1> + struct result<This(A0,A1)> + { + typedef bool type; + }; + + template <typename A0, typename A1> + bool operator()(A0 const & a0, A1 const & a1) const + { + return a0 != a1; + } + }; + + struct greater + { + template <typename Sig> + struct result; + + template <typename This, typename A0, typename A1> + struct result<This(A0,A1)> + { + typedef bool type; + }; + + template <typename A0, typename A1> + bool operator()(A0 const & a0, A1 const & a1) const + { + return a0 > a1; + } + }; + + struct less + { + template <typename Sig> + struct result; + + template <typename This, typename A0, typename A1> + struct result<This(A0,A1)> + { + typedef bool type; + }; + + template <typename A0, typename A1> + bool operator()(A0 const & a0, A1 const & a1) const + { + return a0 < a1; + } + }; + + struct greater_equal + { + template <typename Sig> + struct result; + + template <typename This, typename A0, typename A1> + struct result<This(A0,A1)> + { + typedef bool type; + }; + + template <typename A0, typename A1> + bool operator()(A0 const & a0, A1 const & a1) const + { + return a0 >= a1; + } + }; + + struct less_equal + { + template <typename Sig> + struct result; + + template <typename This, typename A0, typename A1> + struct result<This(A0,A1)> + { + typedef bool type; + }; + + template <typename A0, typename A1> + bool operator()(A0 const & a0, A1 const & a1) const + { + return a0 <= a1; + } + }; + + struct logical_and + { + template <typename Sig> + struct result; + + template <typename This, typename A0, typename A1> + struct result<This(A0,A1)> + { + typedef bool type; + }; + + template <typename A0, typename A1> + bool operator()(A0 const & a0, A1 const & a1) const + { + return a0 && a1; + } + }; + + struct logical_or + { + template <typename Sig> + struct result; + + template <typename This, typename A0, typename A1> + struct result<This(A0,A1)> + { + typedef bool type; + }; + + template <typename A0, typename A1> + bool operator()(A0 const & a0, A1 const & a1) const + { + return a0 || a1; + } + }; + + struct logical_not + { + template <typename Sig> + struct result; + + template <typename This, typename A0> + struct result<This(A0)> + { + typedef bool type; + }; + + template <typename A0> + bool operator()(A0 const & a0) const + { + return !a0; + } + }; + + struct min + { + template <typename Sig> + struct result; + + template <typename This, typename A0, typename A1> + struct result<This(A0, A1)> + : boost::remove_reference<A0> + {}; + + template <typename A0, typename A1> + A0 operator()(A0 const & a0, A1 const & a1) const + { + if ( a0 < a1 ) return a0; else return a1; + } + + }; + + struct max + { + template <typename Sig> + struct result; + + template <typename This, typename A0, typename A1> + struct result<This(A0, A1)> + : boost::remove_reference<A0> + {}; + + template <typename A0, typename A1> + A0 operator()(A0 const & a0, A1 const & a1) const + { + if ( a0 < a1 ) return a1; else return a0; + } + + }; + + struct Inc + { + template <typename Sig> + struct result; + + template <typename This, typename A0> + struct result<This(A0)> + : boost::remove_reference<A0> + {}; + + template <typename A0> + A0 operator()(A0 const & a0) const + { + return a0 + 1; + } + + }; + + struct Dec + { + template <typename Sig> + struct result; + + template <typename This, typename A0> + struct result<This(A0)> + : boost::remove_reference<A0> + {}; + + template <typename A0> + A0 operator()(A0 const & a0) const + { + return a0 - 1; + } + + }; + + struct Sin + { + template <typename Sig> + struct result; + + template <typename This, typename A0> + struct result<This(A0)> + : boost::remove_reference<A0> + {}; + + template <typename A0> + A0 operator()(A0 const & a0) const + { + return std::sin(a0); + } + + }; + + // Example of templated struct. + // How do I make it callable? + template <typename Result> + struct what { + + typedef Result result_type; + + Result operator()(Result const & r) const + { + return r; + } + // what is not complete - error. + //static boost::function1<Result,Result> res = what<Result>(); + }; + + template <typename Result> + struct what0 { + + typedef Result result_type; + + Result operator()() const + { + return Result(100); + } + + }; + + template <class Result, class F> + class MonomorphicWrapper0 /* : public c_fun_type<Res> */ + { + F f; + public: + typedef Result result_type; + MonomorphicWrapper0( const F& g ) : f(g) {} + Result operator()() const { + return f(); + } + }; + + /* I need the equivalent of this + template <class Res, class F> + full0<impl::XMonomorphicWrapper0<Res,F> > monomorphize0( const F& f ) + { + return make_full0( impl::XMonomorphicWrapper0<Res,F>( f ) ); + }*/ + + + // boost::function0<int> res = MonomorphicWrapper0<int,F>(f); + + + template <class Res, class F> + boost::function<Res()> monomorphize0( const F& f ) + { + boost::function0<Res> ff = MonomorphicWrapper0<Res,F>( f ); + //BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY(Res,fres,ff) + return ff; + } + + // This is C++1y + //template <typename Result> + //static boost::function1<Result,Result> res = what<Result>(); + + + } + ///////////////////////////////////////////////////////// + // Look at this. How to use Phoenix with a templated + // struct. First adapt with boost::function and then + // convert that to Phoenix!! + // I have not found out how to do it directly. + ///////////////////////////////////////////////////////// +boost::function1<int, int > what_int = impl::what<int>(); +typedef boost::function1<int,int> fun1_int_int; +typedef boost::function0<int> fun0_int; +boost::function0<int> what0_int = impl::what0<int>(); +BOOST_PHOENIX_ADAPT_FUNCTION(int,what,what_int,1) +BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY(int,what0,what0_int) +// And this shows how to make them into argument callable functions. +typedef boost::phoenix::function<fun1_int_int> What_arg; +typedef boost::phoenix::function<fun0_int> What0_arg; +What_arg what_arg(what_int); +What0_arg what0_arg(what0_int); + +//BOOST_PHOENIX_ADAPT_CALLABLE(plus, impl::plus, 2) +//BOOST_PHOENIX_ADAPT_CALLABLE(plus, impl::plus, 3) +//BOOST_PHOENIX_ADAPT_CALLABLE(minus, impl::minus, 2) +BOOST_PHOENIX_ADAPT_CALLABLE(multiplies, impl::multiplies, 2) +BOOST_PHOENIX_ADAPT_CALLABLE(divides, impl::divides, 2) +BOOST_PHOENIX_ADAPT_CALLABLE(modulus, impl::modulus, 2) +BOOST_PHOENIX_ADAPT_CALLABLE(negate, impl::negate, 1) +BOOST_PHOENIX_ADAPT_CALLABLE(equal, impl::equal, 2) +BOOST_PHOENIX_ADAPT_CALLABLE(not_equal, impl::not_equal, 2) +BOOST_PHOENIX_ADAPT_CALLABLE(greater, impl::greater, 2) +BOOST_PHOENIX_ADAPT_CALLABLE(less, impl::less, 2) +BOOST_PHOENIX_ADAPT_CALLABLE(greater_equal, impl::greater_equal, 2) +BOOST_PHOENIX_ADAPT_CALLABLE(less_equal, impl::less_equal, 2) +BOOST_PHOENIX_ADAPT_CALLABLE(logical_and, impl::logical_and, 2) +BOOST_PHOENIX_ADAPT_CALLABLE(logical_or, impl::logical_or, 2) +BOOST_PHOENIX_ADAPT_CALLABLE(logical_not, impl::logical_not, 1) +BOOST_PHOENIX_ADAPT_CALLABLE(min, impl::min, 2) +BOOST_PHOENIX_ADAPT_CALLABLE(max, impl::max, 2) +//BOOST_PHOENIX_ADAPT_CALLABLE(inc, impl::inc, 1) +//BOOST_PHOENIX_ADAPT_CALLABLE(dec, impl::dec, 1) +//BOOST_PHOENIX_ADAPT_CALLABLE(sin, impl::sin, 1) + +// To use these as arguments they have to be defined like this. + typedef boost::phoenix::function<impl::Plus> Plus; + typedef boost::phoenix::function<impl::Minus> Minus; + typedef boost::phoenix::function<impl::Inc> Inc; + typedef boost::phoenix::function<impl::Dec> Dec; + typedef boost::phoenix::function<impl::Sin> Sin; + Plus plus; + Minus minus; + Inc inc; + Dec dec; + Sin sin; +} + +} + + + + +#endif diff --git a/boost/phoenix/function/lazy_prelude.hpp b/boost/phoenix/function/lazy_prelude.hpp new file mode 100644 index 0000000000..d79369d86a --- /dev/null +++ b/boost/phoenix/function/lazy_prelude.hpp @@ -0,0 +1,798 @@ +//////////////////////////////////////////////////////////////////////////// +// lazy prelude.hpp +// +// Build lazy operations for Phoenix equivalents for FC++ +// +// These are equivalents of the Boost FC++ functoids in prelude.hpp +// +// Usage: All of these are functors which need various numbers of arguments. +// Those can be supplied as real arguments or as Phoenix arguments. +// Execution will happen when all the arguments are supplied. +// e.g. +// take(2,list)() or take(2,arg1)(list) +// +// Implemented so far: +// +// id (moved back to operators.hpp) +// +// A lot of what comes here uses the list type, so that will be needed first. +// +// Now that list<T> is available I can start to build things here. +// +// +// until(pred,f,start) - if pred(start) is true, return start +// apply value = f(start) +// apply value = f(value) +// until pred(value) is true +// return value +// +// The predicate argument pred must be a lazy function taking one argument +// and returning bool. +// This can be a lazy function with an argument already. +// This has to be declared before the call to until. +// The type can be declated using Predicate as in this example: +// +// Predicate<int>::type f(greater(arg1,10)); +// std::cout << until(f, inc, 1)() << std::endl; +// +// until2(pred,f,start,value2) - if pred(start,value2) is true, return start +// apply value1 = f(start) +// apply value1 = f(value1) +// until pred(value1,value2) is true +// return value1 +// +// NOTE: until2 has been defined because this code does not support +// FC++ currying, so that a partial function cannot be passed +// as an argument. This provides a way of passing a second parameter. +// There is now the option to use Predicate<T> as shown above. +// +// odd(n) true if n is odd +// even(n) true if n is even +// +// last(list) +// all_but_last(list) +// at(list,n) +// length(list) +// filter(pred,list) +// iterate(function,value) +// repeat(value) +// take(n,list) +// drop(n,list) +// enum_from(x) +// enum_from_to(x,y) +// +//////////////////////////////////////////////////////////////////////////// +// Interdependence: +// The old Boost FC++ has a set of headers which interelate and call each +// other in a complicated way. I am going to document the interdependence +// of the files here. I will then make sure that they are called correctly +// starting from this file. John Fletcher. February 2015. +//////////////////////////////////////////////////////////////////////////// +// BoostFC++ header sequence: +// +// prelude.hpp -> list.hpp (optinally monad.hpp at end) +// list.hpp -> reuse.hpp +// reuse.hpp -> function.hpp +// function.hpp -> ref_count.hpp operator.hpp +// ref_count.hpp -> config.hpp boost headers and RefCountType definition +// operator.hpp -> lambda.hpp +// lambda.hpp -> full.hpp (use of lambda internals is optional) +// full.hpp -> smart.hpp curry.hpp pre_lambda.hpp (optionally full4.hpp) +// smart.hpp -> signature.hpp +// curry.hpp -> signature.hpp +// signature.hpp -> config.hpp +// +//////////////////////////////////////////////////////////////////////////// +// Proposed order in lazy_prelude.hpp +// on the basis that files need what they call. +// +// lazy_config.hpp (If needed)* probably not needed. +// lazy_signature.hpp (If needed)* +// lazy_smart.hpp (If needed)* +// lazy_curry.hpp (If needed)* +// lazy_full.hpp (If needed)* +// lazy_operator.hpp (absorb definition of RefCountType) +// lazy_function.hpp (may not now be needed) +// lazy_reuse.hpp (implemented without use of FC++ functions) +// lazy_list.hpp +// +// * file does not yet exist. +//////////////////////////////////////////////////////////////////////////// +// This is implemented such that no other lazy_ file calls other lazy_ files. +// They do call their own external files, which may well be duplicates. +// That can be sorted out later. +//////////////////////////////////////////////////////////////////////////// +// Notes: full and curry operations should be covered by Phoenix. +// The lambda operations are quite different from Phoenix lambda +// and will be omitted. +// The implementation monad can be postponed. +// Some of function and reuse are needed for the list type. +// I will review later whether they are part of the external interface. +// +// John Fletcher February 2015. +//////////////////////////////////////////////////////////////////////////// +/*============================================================================= + Copyright (c) 2000-2003 Brian McNamara and Yannis Smaragdakis + Copyright (c) 2001-2007 Joel de Guzman + Copyright (c) 2015 John Fletcher + + 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) +==============================================================================*/ + + +#ifndef BOOST_PHOENIX_FUNCTION_LAZY_PRELUDE +#define BOOST_PHOENIX_FUNCTION_LAZY_PRELUDE + +#include <exception> +#include <vector> +#include <boost/phoenix/core.hpp> +#include <boost/phoenix/function.hpp> +#include <boost/phoenix/scope.hpp> +#include <boost/phoenix/operator.hpp> +#include <boost/phoenix/function/lazy_operator.hpp> +#include <boost/phoenix/function/lazy_reuse.hpp> +#include <boost/phoenix/function/lazy_list.hpp> + +//////////////////////////////////////////////////////////////////////////// +// To come here, the Haskell Prelude things which need list<T>. +// Things which do not need list<T> are in lazy_operator.hpp. +//////////////////////////////////////////////////////////////////////////// + +namespace boost { + + namespace phoenix { + + // These are in fcpp namespace as they introduce an FC++ style. + namespace fcpp { + + template <typename T> + struct Predicate { + typedef typename boost::function1<bool,T> fun1_bool_T; + typedef typename boost::phoenix::function<fun1_bool_T> bool_F_T; + typedef bool_F_T type; + }; + + template <typename R> + struct Function0 { + typedef typename boost::function0<R> fun0_R; + typedef typename boost::phoenix::function<fun0_R> R_F; + typedef R_F type; + }; + + template <typename R,typename A0> + struct Function1 { + typedef typename boost::function1<R,A0> fun1_R_A0; + typedef typename boost::phoenix::function<fun1_R_A0> R_F_A0; + typedef R_F_A0 type; + }; + + template <typename R, typename A0, typename A1> + struct Function2 { + typedef typename boost::function2<R,A0,A1> fun2_R_A0_A1; + typedef typename boost::phoenix::function<fun2_R_A0_A1> R_F_A0_A1; + typedef R_F_A0_A1 type; + }; + + } + + namespace impl { + using fcpp::INV; + using fcpp::VAR; + using fcpp::reuser1; + using fcpp::reuser2; + using fcpp::reuser3; + using boost::phoenix::arg_names::arg1; + + struct Pow { + + template <typename Sig> + struct result; + + template <typename This, typename N, typename A0> + struct result<This(N,A0)> + : boost::remove_reference<A0> + {}; + + template <typename N, typename A0> + A0 operator()(N n, const A0 & a0, + reuser2<INV,VAR,INV,Pow,N,A0> r = NIL ) const { + if ( n <= 0 ) + return A0(1); + else if ( n==1 ) + return a0; + else { + A0 a1 = r( Pow(), n-1, a0)(); + return a0*a1; + } + } + + }; + + struct Apply { + + template <typename Sig> + struct result; + + template <typename This, typename N, typename F,typename A0> + struct result<This(N,F,A0)> + : boost::remove_reference<A0> + {}; + + template <typename N, typename F, typename A0> + A0 operator()(N n, const F &f, const A0 & a0, + reuser3<INV,VAR,INV,INV,Apply,N,F,A0> r = NIL ) const { + if ( n <= 0 ) + return a0; + else if ( n==1 ) + return f(arg1)(a0); + else { + A0 a1 = r( Apply(), n-1, f, a0)(); + return f(a1)(); + } + } + + }; + + struct Odd { + template <typename Sig> + struct result; + + template <typename This, typename T> + struct result<This(T)> + { + typedef bool type; + }; + + template <class T> + typename result<Odd(T)>::type operator()( const T& x ) const { + return x%2==1; + } + }; + + struct Even { + template <typename Sig> + struct result; + + template <typename This, typename T> + struct result<This(T)> + { + typedef bool type; + }; + + template <class T> + typename result<Even(T)>::type operator()( const T& x ) const { + return x%2==0; + } + }; + + } + typedef boost::phoenix::function<impl::Pow> Pow; + typedef boost::phoenix::function<impl::Apply> Apply; + typedef boost::phoenix::function<impl::Odd> Odd; + typedef boost::phoenix::function<impl::Even> Even; + Pow pow; + Apply apply; + Odd odd; + Even even; + + namespace impl { + using fcpp::INV; + using fcpp::VAR; + using fcpp::reuser1; + using fcpp::reuser2; + using fcpp::reuser3; + using boost::phoenix::arg_names::arg1; + + // I cannot yet do currying to pass e.g. greater(9,arg1) + // as a function. This can be done using Predicate<T>::type. + struct Until { + + template <typename Sig> struct result; + + template <typename This, typename Pred, typename Unary, typename T> + struct result<This(Pred,Unary,T)> + : boost::remove_reference<T> {}; + + template <class Pred, class Unary, class T> + T operator()( const Pred& p,const Unary& op,const T &start) const + { + T tmp = start; + while( !p(tmp)() ) { + tmp = apply(1,op,tmp)(); + } + return tmp; + } + + }; + + struct Until2 { + + template <typename Sig> struct result; + + template <typename This, typename Binary, typename Unary, + typename T, typename X> + struct result<This(Binary,Unary,T,X)> + : boost::remove_reference<T> {}; + + template <class Binary, class Unary, class T, class X> + typename result<Until2(Binary,Unary,T,X)>::type + operator()( const Binary& p, const Unary& op, const T & start, + const X & check ) const + { + T tmp1 = start; + T tmp2; + while( !p(tmp1,check)() ) { + tmp2 = apply(1,op,tmp1)(); + tmp1 = tmp2; + + } + return tmp1; + } + }; + + struct Last { + template <typename Sig> struct result; + + template <typename This, typename L> + struct result<This(L)> + { + typedef typename result_of::ListType<L>::value_type type; + }; + + template <class L> + typename result<Last(L)>::type + operator()( const L& ll ) const { + size_t x = 0; + typename result_of::ListType<L>::delay_result_type l = delay(ll); + while( !null( tail(l)() )() ) { + l = tail(l)(); + ++x; +#ifndef BOOST_PHOENIX_NO_LAZY_EXCEPTIONS + if (x > BOOST_PHOENIX_FUNCTION_MAX_LAZY_LIST_LENGTH) + break; +#endif + } +#ifndef BOOST_PHOENIX_NO_LAZY_EXCEPTIONS + if (x > BOOST_PHOENIX_FUNCTION_MAX_LAZY_LIST_LENGTH) + throw lazy_exception("Your list is too long!!"); +#endif + return head(l)(); + } + }; + + struct Init { + + template <typename Sig> struct result; + + template <typename This, typename L> + struct result<This(L)> + { + typedef typename result_of::ListType<L>::force_result_type type; + }; + + template <class L> + typename result<Init(L)>::type + operator()( const L& l, + reuser1<INV,VAR,Init, + typename result_of::ListType<L>::delay_result_type> + r = NIL ) const { + if( null( tail( l )() )() ) + return NIL; + else + return cons( head(l)(), r( Init(), tail(l)() )() )(); + } + }; + + struct Length { + template <typename Sig> struct result; + + template <typename This, typename L> + struct result<This(L)> + { + typedef size_t type; + }; + + template <class L> + size_t operator()( const L& ll ) const { + typename L::delay_result_type l = delay(ll); + size_t x = 0; + while( !null(l)() ) { + l = tail(l); + ++x; + if (x > BOOST_PHOENIX_FUNCTION_MAX_LAZY_LIST_LENGTH) + break; + } +#ifndef BOOST_PHOENIX_NO_LAZY_EXCEPTIONS + if (x > BOOST_PHOENIX_FUNCTION_MAX_LAZY_LIST_LENGTH) + throw lazy_exception("Your list is too long!!"); +#endif + return x; + } + }; + + // at is Haskell's operator (!!) + // This is zero indexed. at(l,0)() returns the first element. + struct At { + template <typename Sig> struct result; + + template <typename This, typename L, typename N> + struct result<This(L,N)> + { + typedef typename result_of::ListType<L>::value_type type; + }; + + template <class L> + typename result<At(L,size_t)>::type + operator()( L l, size_t n ) const { + while( n!=0 ) { + l = tail(l); + --n; + } + return head(l)(); + } + }; + + template <class P,class L> + struct FilterH + { + P p; + L l; + FilterH( const P& pp, const L& ll) : p(pp), l(ll) {} + template <typename Sig> struct result; + + template <typename This, class PP, class LL> + struct result<This(PP,LL)> + { + typedef typename boost::phoenix::result_of:: + ListType<LL>::delay_result_type type; + }; + typename result<FilterH(P,L)>::type operator()() const { + typedef typename result_of::ListType<L>:: + delay_result_type result_type; + typedef boost::function0<result_type> Fun2_R_P_L; + typedef boost::phoenix::function<Fun2_R_P_L> FilterH_R_P_L; + if (null(l)() ) + return NIL; + Fun2_R_P_L fun2_R_P_L = FilterH<P,L>(p,tail(l)); + FilterH_R_P_L filterh_R_P_L(fun2_R_P_L); + if( p(head(l))() ) + return cons( head(l)(), filterh_R_P_L() ); + else + return filterh_R_P_L(); + } + }; + + struct Filter { + template <typename Sig> struct result; + + template <typename This, typename P, typename L> + struct result<This(P,L)> + { + typedef typename result_of::ListType<L>::delay_result_type + type; + }; + + template <class P, class L> + typename result<Filter(P,L)>::type + operator()( const P& p, const L& ll) const + { + typename result_of::ListType<L>::delay_result_type + l = delay(ll); + typedef typename result_of::ListType<L>:: + delay_result_type result_type; + typedef boost::function0<result_type> Fun2_R_P_L; + typedef boost::phoenix::function<Fun2_R_P_L> FilterH_R_P_L; + Fun2_R_P_L fun2_R_P_L = FilterH<P,L>(p,l); + FilterH_R_P_L filterh_R_P_L(fun2_R_P_L); + return filterh_R_P_L(); + } + }; + + template <class F,class T> + struct IterateH + { + F f; + T t; + IterateH( const F& ff, const T& tt) : f(ff), t(tt) {} + template <typename Sig> struct result; + + template <typename This,class F2,class T2> + struct result<This(F2,T2)> + { + typedef typename boost::remove_reference<T2>::type TT; + typedef typename boost::remove_const<TT>::type TTT; + typedef typename UseList::template List<TTT>::type LType; + typedef typename result_of::ListType<LType>:: + delay_result_type type; + }; + + typename result<IterateH(F,T)>::type operator()() const { + typedef typename UseList::template List<T>::type LType; + typedef typename result_of::ListType<LType>:: + delay_result_type result_type; + typedef boost::function0<result_type> Fun2_R_F_T; + typedef boost::phoenix::function<Fun2_R_F_T> IterateH_R_F_T; + Fun2_R_F_T fun2_R_F_T = IterateH<F,T>(f,f(t)()); + IterateH_R_F_T iterateh_R_F_T(fun2_R_F_T); + return cons( t, iterateh_R_F_T() ); + } + }; + + + struct Iterate { + // Note: this does always return an odd_list; iterate() takes no ListLike + // parameter, and it requires that its result be lazy. + template <typename Sig> struct result; + + template <typename This, typename F, typename T> + struct result<This(F,T)> + { + typedef typename boost::remove_reference<T>::type TT; + typedef typename boost::remove_const<TT>::type TTT; + typedef typename UseList::template List<TTT>::type LType; + typedef typename result_of::ListType<LType>:: + delay_result_type type; + }; + + template <class F, class T> + typename result<Iterate(F,T)>::type operator() + (const F& f, const T& t) const { + typedef typename UseList::template List<T>::type LType; + typedef typename result_of::ListType<LType>:: + delay_result_type result_type; + typedef boost::function0<result_type> Fun2_R_F_T; + typedef boost::phoenix::function<Fun2_R_F_T> IterateH_R_F_T; + Fun2_R_F_T fun2_R_F_T = IterateH<F,T>(f,f(t)()); + IterateH_R_F_T iterateh_R_F_T(fun2_R_F_T); + return iterateh_R_F_T(); + } + }; + + } + + typedef boost::phoenix::function<impl::Until> Until; + typedef boost::phoenix::function<impl::Until2> Until2; + typedef boost::phoenix::function<impl::Last> Last; + typedef boost::phoenix::function<impl::Init> Init; + typedef boost::phoenix::function<impl::Length> Length; + typedef boost::phoenix::function<impl::At> At; + typedef boost::phoenix::function<impl::Filter> Filter; + typedef boost::phoenix::function<impl::Iterate> Iterate; + Until until; + Until2 until2; + Last last; + Init all_but_last; // renamed from init which is not available. + Length length; + At at_; //Renamed from at. + Filter filter; + Iterate iterate; + + namespace impl { + + struct Repeat { + // See note for iterate() + template <typename Sig> struct result; + + template <typename This, typename T> + struct result<This(T)> + { + typedef typename boost::remove_reference<T>::type TT; + typedef typename boost::remove_const<TT>::type TTT; + typedef typename UseList::template List<TTT>::type LType; + typedef typename result_of::ListType<LType>:: + delay_result_type type; + }; + + template <class T> + typename result<Repeat(T)>::type operator()( const T& x) const + { + return iterate(id,x); + } + }; + + struct Take { + + template <typename Sig> struct result; + + template <typename This, typename N, typename L> + struct result<This(N,L)> + { + typedef typename result_of::ListType<L>::force_result_type type; + }; + + template <class N,class L> + typename result<Take(N,L)>::type + operator()( N n, const L& l, + reuser2<INV,VAR,VAR,Take,N, + typename result_of::ListType<L>::force_result_type> + r = NIL + ) const { + if( n <= 0 || null(l)() ) + return NIL; + else { + return cons( head(l)(), r( Take(), n-1, tail(l)() )() )(); + } + } + }; + + struct Drop { + template <typename Sig> struct result; + + template <typename This, typename Dummy, typename L> + struct result<This(Dummy,L)> + { + typedef typename result_of::ListType<L>::delay_result_type type; + }; + + template <class L> + typename result<Drop(size_t,L)>::type + operator()( size_t n, const L& ll ) const { + typename L::delay_result_type l = delay(ll); + while( n!=0 && !null(l)() ) { + --n; + l = tail(l)(); + } + return l; + } + }; + + template <class T> + struct EFH + { + mutable T x; + EFH( const T& xx) : x(xx) {} + template <typename Sig> struct result; + + template <typename This, class TT> + struct result<This(TT)> + { + typedef typename boost::phoenix::UseList::template + List<TT>::type LType; + typedef typename boost::phoenix::result_of:: + ListType<LType>::delay_result_type type; + }; + typename result<EFH(T)>::type operator()() const { + typedef typename UseList::template List<T>::type LType; + typedef typename result_of::ListType<LType>:: + delay_result_type result_type; + typedef boost::function0<result_type> fun1_R_TTT; + //std::cout << "EFH (" << x << ")" << std::endl; + ++x; + fun1_R_TTT efh_R_TTT = EFH<T>(x); + typedef boost::phoenix::function<fun1_R_TTT> EFH_R_T; + EFH_R_T efh_R_T(efh_R_TTT); +#ifndef BOOST_PHOENIX_NO_LAZY_EXCEPTIONS + if (x > BOOST_PHOENIX_FUNCTION_MAX_LAZY_LIST_LENGTH) + throw lazy_exception("Running away in EFH!!"); +#endif + return cons( x-1, efh_R_T() ); + } + }; + + struct Enum_from { + template <typename Sig> struct result; + + template <typename This, typename T> + struct result<This(T)> + { + typedef typename boost::remove_reference<T>::type TT; + typedef typename boost::remove_const<TT>::type TTT; + typedef typename UseList::template List<TTT>::type LType; + typedef typename result_of::ListType<LType>:: + delay_result_type type; + }; + + template <class T> + typename result<Enum_from(T)>::type operator() + (const T & x) const + { + typedef typename boost::remove_reference<T>::type TT; + typedef typename boost::remove_const<TT>::type TTT; + typedef typename UseList::template List<T>::type LType; + typedef typename result_of::ListType<LType>:: + delay_result_type result_type; + typedef boost::function0<result_type> fun1_R_TTT; + fun1_R_TTT efh_R_TTT = EFH<TTT>(x); + typedef boost::phoenix::function<fun1_R_TTT> EFH_R_T; + EFH_R_T efh_R_T(efh_R_TTT); + //std::cout << "enum_from (" << x << ")" << std::endl; + return efh_R_T(); + } + }; + + template <class T> + struct EFTH + { + mutable T x; + T y; + EFTH( const T& xx, const T& yy) : x(xx), y(yy) {} + template <typename Sig> struct result; + + template <typename This, class TT> + struct result<This(TT)> + { + typedef typename boost::phoenix::UseList::template + List<TT>::type LType; + typedef typename boost::phoenix::result_of:: + ListType<LType>::delay_result_type type; + }; + typename result<EFTH(T)>::type operator()() const { + typedef typename UseList::template List<T>::type LType; + typedef typename result_of::ListType<LType>:: + delay_result_type result_type; + typedef boost::function0<result_type> fun1_R_TTT; + //std::cout << "EFTH (" << x << ")" << std::endl; + if (x > y ) return NIL; + ++x; + fun1_R_TTT efth_R_TTT = EFTH<T>(x,y); + typedef boost::phoenix::function<fun1_R_TTT> EFTH_R_T; + EFTH_R_T efth_R_T(efth_R_TTT); +#ifndef BOOST_PHOENIX_NO_LAZY_EXCEPTIONS + if (x > BOOST_PHOENIX_FUNCTION_MAX_LAZY_LIST_LENGTH) + throw lazy_exception("Running away in EFTH!!"); +#endif + return cons( x-1, efth_R_T() ); + } + }; + + struct Enum_from_to { + template <typename Sig> struct result; + + template <typename This, typename T> + struct result<This(T,T)> + { + typedef typename boost::remove_reference<T>::type TT; + typedef typename boost::remove_const<TT>::type TTT; + typedef typename UseList::template List<TTT>::type LType; + typedef typename result_of::ListType<LType>:: + delay_result_type type; + }; + + template <class T> + typename result<Enum_from(T,T)>::type operator() + (const T & x, const T & y) const + { + typedef typename boost::remove_reference<T>::type TT; + typedef typename boost::remove_const<TT>::type TTT; + typedef typename UseList::template List<T>::type LType; + typedef typename result_of::ListType<LType>:: + delay_result_type result_type; + typedef boost::function0<result_type> fun1_R_TTT; + fun1_R_TTT efth_R_TTT = EFTH<TTT>(x,y); + typedef boost::phoenix::function<fun1_R_TTT> EFTH_R_T; + EFTH_R_T efth_R_T(efth_R_TTT); + //std::cout << "enum_from (" << x << ")" << std::endl; + return efth_R_T(); + } + }; + + } + + + //BOOST_PHOENIX_ADAPT_CALLABLE(apply, impl::apply, 3) + // Functors to be used in reuser will have to be defined + // using boost::phoenix::function directly + // in order to be able to be used as arguments. + typedef boost::phoenix::function<impl::Repeat> Repeat; + typedef boost::phoenix::function<impl::Take> Take; + typedef boost::phoenix::function<impl::Drop> Drop; + typedef boost::phoenix::function<impl::Enum_from> Enum_from; + typedef boost::phoenix::function<impl::Enum_from_to> Enum_from_to; + Repeat repeat; + Take take; + Drop drop; + Enum_from enum_from; + Enum_from_to enum_from_to; + + namespace fcpp { + + + } + + } + +} + + +#endif diff --git a/boost/phoenix/function/lazy_reuse.hpp b/boost/phoenix/function/lazy_reuse.hpp new file mode 100644 index 0000000000..cef2ded820 --- /dev/null +++ b/boost/phoenix/function/lazy_reuse.hpp @@ -0,0 +1,242 @@ +//////////////////////////////////////////////////////////////////////////// +// lazy_reuse.hpp +// +// Build lazy operations for Phoenix equivalents for FC++ +// +// These are equivalents of the Boost FC++ functoids in reuse.hpp +// +// Implemented so far: +// +// reuser1 (not yet tested) +// reuser2 (not yet tested) +// reuser3 +// +// NOTE: It has been possible to simplify the operation of this code. +// It now makes no use of boost::function or old FC++ code. +// +// The functor type F must be an operator defined with +// boost::phoenix::function. +// See the example Apply in lazy_prelude.hpp +// +//////////////////////////////////////////////////////////////////////////// +/*============================================================================= + Copyright (c) 2000-2003 Brian McNamara and Yannis Smaragdakis + Copyright (c) 2001-2007 Joel de Guzman + Copyright (c) 2015 John Fletcher + + 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) +==============================================================================*/ + +#ifndef BOOST_PHOENIX_FUNCTION_LAZY_REUSE +#define BOOST_PHOENIX_FUNCTION_LAZY_REUSE + +#include <boost/phoenix/core.hpp> +#include <boost/phoenix/function.hpp> +#include <boost/intrusive_ptr.hpp> + + +namespace boost { + + namespace phoenix { + + namespace fcpp { + +////////////////////////////////////////////////////////////////////// +// Original FC++ comment: +// "Reuser"s are effectively special-purpose versions of curry() that +// enable recursive list functoids to reuse the thunk of the curried +// recursive call. See +// http://www.cc.gatech.edu/~yannis/fc++/New/reusers.html +// for a more detailed description. +////////////////////////////////////////////////////////////////////// + +// For efficiency, we mark parameters as either "VAR"iant or "INV"ariant. +struct INV {}; +struct VAR {}; + +template <class V, class X> struct Maybe_Var_Inv; +template <class X> +struct Maybe_Var_Inv<VAR,X> { + static void remake( X& x, const X& val ) { + x.~X(); + new (&x) X(val); + } + static X clone( const X& x ) { return X(x); } +}; +template <class X> +struct Maybe_Var_Inv<INV,X> { + static void remake( X&, const X& ) {} + static const X& clone( const X& x ) { return x; } +}; + +///////////////////////////////////////////////////////////////////// +// ThunkImpl is an implementation of Fun0Impl for this use. +///////////////////////////////////////////////////////////////////// + +template <class Result> +class ThunkImpl +{ + mutable RefCountType refC; +public: + ThunkImpl() : refC(0) {} + virtual Result operator()() const =0; + virtual ~ThunkImpl() {} + template <class X> + friend void intrusive_ptr_add_ref( const ThunkImpl<X>* p ); + template <class X> + friend void intrusive_ptr_release( const ThunkImpl<X>* p ); +}; + +template <class T> +void intrusive_ptr_add_ref( const ThunkImpl<T>* p ) { + ++ (p->refC); +} +template <class T> +void intrusive_ptr_release( const ThunkImpl<T>* p ) { + if( !--(p->refC) ) delete p; +} + +////////////////////////////////////////////////////////////////////// +// reuser1 is needed in list<T> operations +////////////////////////////////////////////////////////////////////// + +template <class V1, class V2, class F, class X> +struct reuser1; + +template <class V1, class V2, class F, class X, class R> +struct Thunk1 : public ThunkImpl<R> { + mutable F f; + mutable X x; + Thunk1( const F& ff, const X& xx ) : f(ff), x(xx) {} + void init( const F& ff, const X& xx ) const { + Maybe_Var_Inv<V1,F>::remake( f, ff ); + Maybe_Var_Inv<V2,X>::remake( x, xx ); + } + R operator()() const { + return Maybe_Var_Inv<V1,F>::clone(f)( + Maybe_Var_Inv<V2,X>::clone(x), + reuser1<V1,V2,F,X>(this) ); + } +}; + +template <class V1, class V2, class F, class X> +struct reuser1 { + typedef typename F::template result<F(X)>::type R; + typedef typename boost::phoenix::function<R> fun0_type; + typedef Thunk1<V1,V2,F,X,R> M; + typedef M result_type; + boost::intrusive_ptr<const M> ref; + reuser1(a_unique_type_for_nil) {} + reuser1(const M* m) : ref(m) {} + M operator()( const F& f, const X& x ) { + if( !ref ) ref = boost::intrusive_ptr<const M>( new M(f,x) ); + else ref->init(f,x); + return *ref; + } + void iter( const F& f, const X& x ) { + if( ref ) ref->init(f,x); + } +}; + +////////////////////////////////////////////////////////////////////// +// reuser2 is needed in list<T> +////////////////////////////////////////////////////////////////////// + +template <class V1, class V2, class V3, class F, class X, class Y> +struct reuser2; + +template <class V1, class V2, class V3, class F, class X, class Y, class R> +struct Thunk2 : public ThunkImpl<R> { + mutable F f; + mutable X x; + mutable Y y; + Thunk2( const F& ff, const X& xx, const Y& yy ) : f(ff), x(xx), y(yy) {} + void init( const F& ff, const X& xx, const Y& yy ) const { + Maybe_Var_Inv<V1,F>::remake( f, ff ); + Maybe_Var_Inv<V2,X>::remake( x, xx ); + Maybe_Var_Inv<V3,Y>::remake( y, yy ); + } + R operator()() const { + return Maybe_Var_Inv<V1,F>::clone(f)( + Maybe_Var_Inv<V2,X>::clone(x), + Maybe_Var_Inv<V3,Y>::clone(y), + reuser2<V1,V2,V3,F,X,Y>(this) ); + } +}; + +template <class V1, class V2, class V3, class F, class X, class Y> +struct reuser2 { + typedef typename F::template result<F(X,Y)>::type R; + typedef Thunk2<V1,V2,V3,F,X,Y,R> M; + typedef M result_type; + boost::intrusive_ptr<const M> ref; + reuser2(a_unique_type_for_nil) {} + reuser2(const M* m) : ref(m) {} + M operator()( const F& f, const X& x, const Y& y ) { + if( !ref ) ref = boost::intrusive_ptr<const M>( new M(f,x,y) ); + else ref->init(f,x,y); + return *ref; + } + void iter( const F& f, const X& x, const Y& y ) { + if( ref ) ref->init(f,x,y); + } +}; + +////////////////////////////////////////////////////////////////////// +// reuser3 +////////////////////////////////////////////////////////////////////// + +template <class V1, class V2, class V3, class V4, + class F, class X, class Y, class Z> +struct reuser3; + +template <class V1, class V2, class V3, class V4, + class F, class X, class Y, class Z, class R> +struct Thunk3 : public ThunkImpl<R> { + mutable F f; + mutable X x; + mutable Y y; + mutable Z z; + Thunk3( const F& ff, const X& xx, const Y& yy, const Z& zz ) + : f(ff), x(xx), y(yy), z(zz) {} + void init( const F& ff, const X& xx, const Y& yy, const Z& zz ) const { + Maybe_Var_Inv<V1,F>::remake( f, ff ); + Maybe_Var_Inv<V2,X>::remake( x, xx ); + Maybe_Var_Inv<V3,Y>::remake( y, yy ); + Maybe_Var_Inv<V4,Z>::remake( z, zz ); + } + R operator()() const { + return Maybe_Var_Inv<V1,F>::clone(f)( + Maybe_Var_Inv<V2,X>::clone(x), + Maybe_Var_Inv<V3,Y>::clone(y), + Maybe_Var_Inv<V4,Z>::clone(z), + reuser3<V1,V2,V3,V4,F,X,Y,Z>(this) ); + } +}; + +template <class V1, class V2, class V3, class V4, + class F, class X, class Y, class Z> +struct reuser3 { + typedef typename F::template result<F(X,Y,Z)>::type R; + typedef Thunk3<V1,V2,V3,V4,F,X,Y,Z,R> M; + typedef M result_type; + boost::intrusive_ptr<const M> ref; + reuser3(a_unique_type_for_nil) {} + reuser3(const M* m) : ref(m) {} + M operator()( const F& f, const X& x, const Y& y, const Z& z ) { + if( !ref ) ref = boost::intrusive_ptr<const M>( new M(f,x,y,z) ); + else ref->init(f,x,y,z); + return *ref; + } + void iter( const F& f, const X& x, const Y& y, const Z& z ) { + if( ref ) ref->init(f,x,y,z); + } +}; + + } + + } +} + +#endif diff --git a/boost/phoenix/operator/arithmetic.hpp b/boost/phoenix/operator/arithmetic.hpp index 03d2dcc731..fda6277b35 100644 --- a/boost/phoenix/operator/arithmetic.hpp +++ b/boost/phoenix/operator/arithmetic.hpp @@ -42,6 +42,7 @@ namespace boost { namespace phoenix using proto::exprns_::operator-=; using proto::exprns_::operator*=; using proto::exprns_::operator/=; + using proto::exprns_::operator%=; using proto::exprns_::operator+; using proto::exprns_::operator-; using proto::exprns_::operator*; diff --git a/boost/phoenix/scope/let.hpp b/boost/phoenix/scope/let.hpp index f1b428cab7..8581112db7 100644 --- a/boost/phoenix/scope/let.hpp +++ b/boost/phoenix/scope/let.hpp @@ -2,6 +2,7 @@ Copyright (c) 2001-2010 Joel de Guzman Copyright (c) 2004 Daniel Wallin Copyright (c) 2010 Thomas Heller + Copyright (c) 2015 John Fletcher 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) @@ -9,6 +10,8 @@ #ifndef BOOST_PHOENIX_SCOPE_LET_HPP #define BOOST_PHOENIX_SCOPE_LET_HPP +//#include <boost/assert.hpp> +//#include <sstream> #include <boost/phoenix/core/limits.hpp> #include <boost/fusion/include/transform.hpp> #include <boost/fusion/include/as_vector.hpp> @@ -57,8 +60,12 @@ namespace boost { namespace phoenix typename proto::result_of::value<Map>::type >::type map_type; + + typedef + typename proto::detail::uncvref<Expr>::type + expr_type; - typedef typename + typedef typename detail::result_of::initialize_locals< vars_type , Context @@ -67,7 +74,7 @@ namespace boost { namespace phoenix typedef typename result_of::eval< - Expr + expr_type , typename result_of::context< scoped_environment< env_type @@ -85,6 +92,8 @@ namespace boost { namespace phoenix typename result<let_eval(Vars const&, Map const&, Expr const &, Context const &)>::type const operator()(Vars const & vars, Map, Expr const & expr, Context const & ctx) const { + Vars vars_(vars); + typedef typename proto::detail::uncvref< typename result_of::env<Context>::type @@ -108,7 +117,9 @@ namespace boost { namespace phoenix >::type locals_type; - locals_type locals = initialize_locals(proto::value(vars), ctx); + locals_type locals = initialize_locals(proto::value(vars_), ctx); + + typedef typename result<let_eval(Vars const&, Map const&, Expr const &, Context const &)>::type result_type; scoped_environment< env_type @@ -118,7 +129,22 @@ namespace boost { namespace phoenix > env(phoenix::env(ctx), phoenix::env(ctx), locals); - return eval(expr, phoenix::context(env, phoenix::actions(ctx))); + // Fix for bugs (trial) + // The idea is to do something which will not be optimised away. + //int vsize = boost::fusion::size(vars); + //std::stringstream strm; + //strm << vsize << std::endl; + //int size = strm.str().length(); + //BOOST_ASSERT(size >= 0); + result_type r = eval(expr, phoenix::context(env, phoenix::actions(ctx))); + // typedef is_value<result_type> is_val; + //if(is_val::value) This seems always to be true + //{ + // std::cout << "let result has value type" << std::endl; + // } + //if (is_val(r) ) std::cout << "let returns val" << std::endl; + //std::cout << "result is " << r << std::endl; + return r; } }; @@ -146,7 +172,19 @@ namespace boost { namespace phoenix >::type const operator[](Expr const & expr) const { - return expression::let_<Locals, Map, Expr>::make(locals, Map(), expr); + typedef typename expression::let_< + Locals + , Map + , Expr + >::type let_type; + //typedef is_value<let_type> is_val; + + let_type let_exp = expression::let_<Locals, Map, Expr>::make(locals, Map(), expr); + //if(is_val::value) //This seems always to be true + //{ + // std::cout << "let has value type" << std::endl; + //} + return let_exp; } Locals locals; diff --git a/boost/phoenix/scope/local_variable.hpp b/boost/phoenix/scope/local_variable.hpp index d62a5bb223..eefb6a7149 100644 --- a/boost/phoenix/scope/local_variable.hpp +++ b/boost/phoenix/scope/local_variable.hpp @@ -127,6 +127,9 @@ namespace boost { namespace phoenix typedef detail::eval_local<Key> eval_local; + // Detect if the return_type is for a value. + //typedef typename is_value<return_type>::type is_value_type; + return eval_local::template get<return_type, index_value>( phoenix::env(ctx)); } diff --git a/boost/phoenix/statement/if.hpp b/boost/phoenix/statement/if.hpp index 41badc9962..4c5ab95679 100644 --- a/boost/phoenix/statement/if.hpp +++ b/boost/phoenix/statement/if.hpp @@ -8,7 +8,7 @@ #ifndef BOOST_PHOENIX_STATEMENT_IF_HPP #define BOOST_PHOENIX_STATEMENT_IF_HPP -#include <boost/config.hpp> +#include <boost/phoenix/config.hpp> #include <boost/phoenix/core/limits.hpp> #include <boost/phoenix/core/actor.hpp> #include <boost/phoenix/core/call.hpp> diff --git a/boost/phoenix/stl/algorithm/detail/std_hash_map_fwd.hpp b/boost/phoenix/stl/algorithm/detail/std_hash_map_fwd.hpp index 93131f06fe..3688897fa3 100644 --- a/boost/phoenix/stl/algorithm/detail/std_hash_map_fwd.hpp +++ b/boost/phoenix/stl/algorithm/detail/std_hash_map_fwd.hpp @@ -19,7 +19,7 @@ #ifndef BOOST_PHOENIX_STD_HASH_MAP_FWD_EN_16_12_2004 #define BOOST_PHOENIX_STD_HASH_MAP_FWD_EN_16_12_2004 -#include <boost/config.hpp> +#include <boost/phoenix/config.hpp> #if defined(BOOST_HAS_HASH) diff --git a/boost/phoenix/stl/algorithm/detail/std_hash_set_fwd.hpp b/boost/phoenix/stl/algorithm/detail/std_hash_set_fwd.hpp index 6c1e06b467..54049db891 100644 --- a/boost/phoenix/stl/algorithm/detail/std_hash_set_fwd.hpp +++ b/boost/phoenix/stl/algorithm/detail/std_hash_set_fwd.hpp @@ -15,7 +15,7 @@ #ifndef BOOST_PHOENIX_STD_HASH_SET_FWD_EN_16_12_2004 #define BOOST_PHOENIX_STD_HASH_SET_FWD_EN_16_12_2004 -#include <boost/config.hpp> +#include <boost/phoenix/config.hpp> #if defined(BOOST_HAS_HASH) diff --git a/boost/phoenix/stl/cmath.hpp b/boost/phoenix/stl/cmath.hpp index b7e72e583c..7db25c493c 100644 --- a/boost/phoenix/stl/cmath.hpp +++ b/boost/phoenix/stl/cmath.hpp @@ -16,7 +16,9 @@ namespace boost { -#ifdef BOOST_NO_CXX11_DECLTYPE +#if (defined (BOOST_NO_CXX11_DECLTYPE) || \ + defined (BOOST_INTEL_CXX_VERSION) || \ + (BOOST_GCC_VERSION < 40500) ) #define BOOST_PHOENIX_MATH_FUNCTION(name, n) \ namespace phoenix_impl { \ struct name ## _impl { \ diff --git a/boost/phoenix/version.hpp b/boost/phoenix/version.hpp index 41166f5a4a..baf215d097 100644 --- a/boost/phoenix/version.hpp +++ b/boost/phoenix/version.hpp @@ -1,7 +1,7 @@ /*============================================================================= Copyright (c) 2005-2008 Hartmut Kaiser Copyright (c) 2005-2010 Joel de Guzman - Copyright (c) 2014 John Fletcher + Copyright (c) 2014-2015 John Fletcher 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) @@ -14,7 +14,7 @@ // This is the version of the library // /////////////////////////////////////////////////////////////////////////////// -#define BOOST_PHOENIX_VERSION 0x3006 // 3.0.6 +#define BOOST_PHOENIX_VERSION 0x3200 // 3.2.0 // boost/predef is not in Boost before 1.55.0 #include <boost/version.hpp> @@ -26,7 +26,7 @@ #endif #ifdef BOOST_PHOENIX_HAVE_BOOST_PREDEF -#define BOOST_PHOENIX_VERSION_NUMBER = BOOST_VERSION_NUMBER(3,0,6) +#define BOOST_PHOENIX_VERSION_NUMBER = BOOST_VERSION_NUMBER(3,2,0) #endif #endif |