summaryrefslogtreecommitdiff
path: root/boost/phoenix
diff options
context:
space:
mode:
Diffstat (limited to 'boost/phoenix')
-rw-r--r--boost/phoenix/bind/bind_member_function.hpp13
-rw-r--r--boost/phoenix/bind/bind_member_variable.hpp21
-rw-r--r--boost/phoenix/config.hpp12
-rw-r--r--boost/phoenix/core/domain.hpp18
-rw-r--r--boost/phoenix/core/expression.hpp4
-rw-r--r--boost/phoenix/core/is_value.hpp63
-rw-r--r--boost/phoenix/core/preprocessed/expression_10.hpp40
-rw-r--r--boost/phoenix/core/preprocessed/expression_20.hpp80
-rw-r--r--boost/phoenix/core/preprocessed/expression_30.hpp120
-rw-r--r--boost/phoenix/core/preprocessed/expression_40.hpp160
-rw-r--r--boost/phoenix/core/preprocessed/expression_50.hpp200
-rw-r--r--boost/phoenix/core/value.hpp17
-rw-r--r--boost/phoenix/function/adapt_function.hpp16
-rw-r--r--boost/phoenix/function/function.hpp2
-rw-r--r--boost/phoenix/function/lazy_list.hpp1514
-rw-r--r--boost/phoenix/function/lazy_operator.hpp670
-rw-r--r--boost/phoenix/function/lazy_prelude.hpp798
-rw-r--r--boost/phoenix/function/lazy_reuse.hpp242
-rw-r--r--boost/phoenix/operator/arithmetic.hpp1
-rw-r--r--boost/phoenix/scope/let.hpp48
-rw-r--r--boost/phoenix/scope/local_variable.hpp3
-rw-r--r--boost/phoenix/statement/if.hpp2
-rw-r--r--boost/phoenix/stl/algorithm/detail/std_hash_map_fwd.hpp2
-rw-r--r--boost/phoenix/stl/algorithm/detail/std_hash_set_fwd.hpp2
-rw-r--r--boost/phoenix/stl/cmath.hpp4
-rw-r--r--boost/phoenix/version.hpp6
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 edc10dc..498f1a0 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 56515de..5c54a2d 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 0000000..d4d78e9
--- /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 6c438de..f59ef85 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 4291c0a..c693252 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 0000000..80f6569
--- /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 7342a8c..882e945 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 cd85f15..bcf2df7 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 a886419..974bc4d 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 b48911d..8add172 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 64e5b8d..f17ca3b 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 bb381e9..f0ca677 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 6ba20be..b539ae1 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 4817100..231af15 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 0000000..996d34f
--- /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 0000000..c88b768
--- /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 0000000..d79369d
--- /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 0000000..cef2ded
--- /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 03d2dcc..fda6277 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 f1b428c..8581112 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 d62a5bb..eefb6a7 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 41badc9..4c5ab95 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 93131f0..3688897 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 6c1e06b..54049db 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 b7e72e5..7db25c4 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 41166f5..baf215d 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