diff --git a/ChangeLog b/ChangeLog index 6ea88ac..edd1569 100644 --- a/ChangeLog +++ b/ChangeLog @@ -47,6 +47,14 @@ CHANGELOG - DEVELOP +- V3.1.1 +- Bump version number to 3.1.1 in version.hpp and branch for release. +- New tests for lazy functions using existing phoenix/function capability. + lazy_argument_tests, lazy_make_pair_tests, lazy_templated_struct_tests +- New example bind_goose.cpp comparing boost.bind and boost.phoenix.bind. +- Changes to let_tests and more_let_tests to avoid failing cases. +- Updates to documentation. + - V3.1.0 - Bump version number to 3.1.0 in version.hpp and branch for release. - New file boost/phoenix/config.hpp to centralise configuration issues. diff --git a/doc/maintenance.qbk b/doc/maintenance.qbk index 0130d8c..815a013 100644 --- a/doc/maintenance.qbk +++ b/doc/maintenance.qbk @@ -6,6 +6,8 @@ ===============================================================================/] [/ January 2015] +[/ February 2015] + [section Maintenance] @@ -27,6 +29,10 @@ Unfortunately, while most things now work, there are a number of subtle bugs whe The remainder of this page is found from the index above. +John Fletcher + +January and February 2015 + [/endsect] [section Background] @@ -37,6 +43,11 @@ At the end of 2014 I came back to the task anew. In the meantime I have learned I have still not solved all the problems in Boost Phoenix. I think I am closing in on some of the remaining ones. I now know that some of the problems in Phoenix V3 were also present in Phoenix V2. This has changed the approach to how to solve them as I know that the problems cannot be in the use of Boost Proto as it was not used in V2. +<<<<<<< HEAD +======= +I have made further progress during 2015 on understanding what the problems are and how to avoid them or work around them. That has given me the confidence to explore further applications of the code, which I expect will develop a lot in the next few months. + +>>>>>>> release-3.1.1 I want in this document to share some of what I have been doing and how I have solved some of the problems. One reason for doing this is that there may be other people who are considering taking on library maintenance of a library they did not themselves write. I hope I can make that easier for people to do. [endsect] @@ -82,6 +93,11 @@ My experience has been that not all the tools and knowledge to be a maintainer a The bugs to be fixed have come from several sources. +<<<<<<< HEAD +======= +One type of bug which has been very difficult to understand has been that some test cases failed when compiled with optimisation and not without it. I now believe that this is related to the use of references in the arguments passed back, and I have one test where the cure is demonstrated, lazy_make_pair_tests. + +>>>>>>> release-3.1.1 [endsect] [section Compilers] @@ -107,8 +123,7 @@ I have been attempting to understand the differences between compilers and envir [endsect] -John Fletcher - -January 2015 + +[endsect] [endsect] diff --git a/doc/phoenix3.qbk b/doc/phoenix3.qbk index 631e0e4..8051a48 100644 --- a/doc/phoenix3.qbk +++ b/doc/phoenix3.qbk @@ -1,7 +1,7 @@ [library Phoenix [quickbook 1.6] [compatibility-mode 1.3] - [version 3.1.0] + [version 3.1.1] [authors [de Guzman, Joel], [Marsden, Dan], [Heller, Thomas], [Fletcher, John] ] [copyright 2002 2003 2004 2005 2010 2014 2015 Joel de Guzman, Dan Marsden, Thomas Heller, John Fletcher] [category string-text] @@ -89,4 +89,5 @@ [include acknowledgment.qbk] [include references.qbk] -[endsect] [/added because it was complaining!] +[/endsect] [/added because it was complaining!] + diff --git a/doc/what_s_new.qbk b/doc/what_s_new.qbk index 26b333d..855f87e 100644 --- a/doc/what_s_new.qbk +++ b/doc/what_s_new.qbk @@ -9,7 +9,7 @@ [section What's New] -======= + [section Phoenix - warning on *lambda and let*] * There are a number of bugs in the implementation of *lambda* and *let* constructs in the current version of Boost Phoenix (Boost release 1.57.0). @@ -18,13 +18,22 @@ * Some usage may work with some compilers but not others. * More information will be made available as soon as possible. * Workarounds for different compilers are being made available. -* These are currently on test in develop and will move to master when tested. +* These are currently on test in develop and are moving to master in version 3.1.1. + +[endsect] + +[section Phoenix 3.1.1] + +* This is the start of a series of changes which continue the fixing of the bugs. +* There are new examples and tests which show the capability of phoenix. +* A new example bind_goose shows the compatibility between boost bind and boost phoenix bind. +* New tests lazy_argument_tests, lazy_make_pair_tests, lazy_templated_struct_tests show different possible uses of boost phoenix function objects. [endsect] [section Phoenix 3.1.0] -This is the latest in a series of updates to Phoenix to fix some bugs and +This contains a series of updates to Phoenix to fix some bugs and to extend the examples. Details of the changes will be found in the __changelog__ and the release number will be increased for each set of changes released. diff --git a/example/bind_goose.cpp b/example/bind_goose.cpp new file mode 100644 index 0000000..66c5199 --- /dev/null +++ b/example/bind_goose.cpp @@ -0,0 +1,144 @@ +/*============================================================================= +For Boost Bind: + Copyright (c) 2001-2004 Peter Dimov and Multi Media Ltd. + Copyright (c) 2001 David Abrahams + Copyright (c) 2005 Peter Dimov +For Boost Phoenix: + Copyright (c) 2001-2010 Joel de Guzman + Copyright (c) 2010 Thomas Heller +For the example: + Copyright (c) 2011 Paul Heil + 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) +==============================================================================*/ +// bind_goose.cpp +// This example is based on code by Paul Heil to be found here: +// http://www.codeproject.com/Tips/248492/How-does-boost-phoenix-improve-boost-bind +// +// Show different ways of using boost bind and phoenix to handle deletion. +// + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//////////////////////////////////////////// +// Set up the list here +//////////////////////////////////////////// +std::vector< std::string > make_list() { + std::vector< std::string > list; + list.push_back( "duck" ); + list.push_back( "duck" ); + list.push_back( "goose" ); + return list; +} +////////////////////////////////////////////// +// First example using standard library only +////////////////////////////////////////////// +bool IsGoose( const std::string& s ) +{ + return s == "goose"; +} + +void delete_value1(std::vector< std::string > &list ) +{ + list.erase( std::remove_if( list.begin(), list.end(), IsGoose ), list.end() ); +} + +void out_string(const std::string &s) +{ + std::cout << s << std::endl; +} + +void show_list1( const std::vector< std::string > &list ) +{ + std::for_each(list.begin(), list.end(), out_string); +} + +////////////////////////////////////////////// +// Second example using boost bind +////////////////////////////////////////////// + +bool isValue(const std::string &s1, const std::string &s2) +{ + return s1==s2; +} + +void delete_value2(std::vector< std::string > &list, const std::string & value) +{ + list.erase( + std::remove_if( + list.begin(), + list.end(), + boost::bind( + isValue, // &isValue works as well. + _1, // Boost.Bind placeholder + boost::cref( value ) ) ), + list.end() ); +} + +/////////////////////////////////////////////////////// +// Third example using boost phoenix for the comparison +/////////////////////////////////////////////////////// + +namespace phx = boost::phoenix; +using phx::placeholders::arg1; +using phx::placeholders::arg2; + +void delete_value3(std::vector< std::string > &list, const std::string & value) +{ + list.erase( std::remove_if( + list.begin(), + list.end(), + // This needs header boost/phoenix/operator/comparison. + // arg1 is a Boost.Phoenix placeholder. + arg1 == phx::cref( value ) ), + list.end() ); +} + +////////////////////////////////////////////////////////////// +// Third example using boost phoenix for the algorithm as well +////////////////////////////////////////////////////////////// + +void delete_value4(std::vector< std::string > &list, const std::string & value) +{ + // This need header boost/phoenix/stl/algorithm/transformation + list.erase( phx::remove_if( arg1, arg2 ) + ( list, arg1 == phx::cref( value ) ), + list.end() ); +} + +int main() { + std::cout << "--------------------------------" << std::endl; + std::cout << "Delete the goose examples." << std::endl; + std::cout << "--------------------------------" << std::endl; + std::string value = "goose"; + + std::vector< std::string > list1 = make_list(); + delete_value1(list1); + show_list1(list1); + std::cout << "--------------------------------" << std::endl; + std::vector< std::string > list2 = make_list(); + delete_value2(list2,value); + show_list1(list2); + std::cout << "--------------------------------" << std::endl; + std::vector< std::string > list3 = make_list(); + delete_value3(list3,value); + show_list1(list3); + std::cout << "--------------------------------" << std::endl; + std::vector< std::string > list4 = make_list(); + delete_value4(list4,value); + show_list1(list4); + std::cout << "--------------------------------" << std::endl; + return 0; +} diff --git a/include/boost/phoenix/core/domain.hpp b/include/boost/phoenix/core/domain.hpp index 6c438de..f59ef85 100644 --- a/include/boost/phoenix/core/domain.hpp +++ b/include/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 + struct as_child + //: proto_base_domain::as_expr // proto lambda example. + : as_expr + {}; + }; + struct phoenix_domain : proto::domain< phoenix_generator @@ -42,8 +56,8 @@ namespace boost { namespace phoenix { template struct as_child - : proto_base_domain::as_expr // proto lambda example. - // : as_expr + //: proto_base_domain::as_expr // proto lambda example. + : as_expr {}; }; }} diff --git a/include/boost/phoenix/core/expression.hpp b/include/boost/phoenix/core/expression.hpp index 4291c0a..c693252 100644 --- a/include/boost/phoenix/core/expression.hpp +++ b/include/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/include/boost/phoenix/core/is_value.hpp b/include/boost/phoenix/core/is_value.hpp new file mode 100644 index 0000000..501d7e0 --- /dev/null +++ b/include/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 + +// 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 +// +// Tests if T is a value. Evaluates to mpl::true_ or mpl::false_ +// +/////////////////////////////////////////////////////////////////////////////// + + namespace expression { + template + struct value; + } + + template + struct is_value + : mpl::false_ + {}; + + template + struct is_value + : is_value + {}; + + template + struct is_value + : is_value + {}; + + // This does not seem to work. + // There is an alternative in value.hpp which does work. + template + struct is_value< expression::value > + : mpl::true_ + {}; + + template + bool is_val(T const &t) + { + return is_value::value; + } + + }} + +#endif diff --git a/include/boost/phoenix/core/preprocessed/expression_10.hpp b/include/boost/phoenix/core/preprocessed/expression_10.hpp index 7342a8c..882e945 100644 --- a/include/boost/phoenix/core/preprocessed/expression_10.hpp +++ b/include/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::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::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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/include/boost/phoenix/core/preprocessed/expression_20.hpp b/include/boost/phoenix/core/preprocessed/expression_20.hpp index cd85f15..bcf2df7 100644 --- a/include/boost/phoenix/core/preprocessed/expression_20.hpp +++ b/include/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::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::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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/include/boost/phoenix/core/preprocessed/expression_30.hpp b/include/boost/phoenix/core/preprocessed/expression_30.hpp index a886419..974bc4d 100644 --- a/include/boost/phoenix/core/preprocessed/expression_30.hpp +++ b/include/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::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::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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/include/boost/phoenix/core/preprocessed/expression_40.hpp b/include/boost/phoenix/core/preprocessed/expression_40.hpp index b48911d..8add172 100644 --- a/include/boost/phoenix/core/preprocessed/expression_40.hpp +++ b/include/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::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::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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/include/boost/phoenix/core/preprocessed/expression_50.hpp b/include/boost/phoenix/core/preprocessed/expression_50.hpp index 64e5b8d..f17ca3b 100644 --- a/include/boost/phoenix/core/preprocessed/expression_50.hpp +++ b/include/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::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::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::value_type>::type , typename proto::detail::uncvref::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/include/boost/phoenix/core/value.hpp b/include/boost/phoenix/core/value.hpp index bb381e9..f0ca677 100644 --- a/include/boost/phoenix/core/value.hpp +++ b/include/boost/phoenix/core/value.hpp @@ -12,6 +12,7 @@ #include #include #include +#include #include namespace boost { namespace phoenix @@ -51,7 +52,18 @@ namespace boost { namespace phoenix return expression::value::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 + //struct is_value > + // : mpl::true_ + //{}; + // Call out actor for special handling + // Is this correct? It applies to any actor. + // In which case why is it here? template struct is_custom_terminal > : mpl::true_ @@ -77,7 +89,10 @@ namespace boost { namespace phoenix typename result const &, Context &)>::type operator()(actor const & expr, Context & ctx) const { - return boost::phoenix::eval(expr, ctx); + typedef typename result 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/include/boost/phoenix/scope/let.hpp b/include/boost/phoenix/scope/let.hpp index f1b428c..1f01ad9 100644 --- a/include/boost/phoenix/scope/let.hpp +++ b/include/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 +//#include #include #include #include @@ -57,8 +60,12 @@ namespace boost { namespace phoenix typename proto::result_of::value::type >::type map_type; + + typedef + typename proto::detail::uncvref::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::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::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::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 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_::make(locals, Map(), expr); + typedef typename expression::let_< + Locals + , Map + , Expr + >::type let_type; + typedef is_value is_val; + + let_type let_exp = expression::let_::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/include/boost/phoenix/scope/local_variable.hpp b/include/boost/phoenix/scope/local_variable.hpp index d62a5bb..a1d4523 100644 --- a/include/boost/phoenix/scope/local_variable.hpp +++ b/include/boost/phoenix/scope/local_variable.hpp @@ -127,6 +127,9 @@ namespace boost { namespace phoenix typedef detail::eval_local eval_local; + // Detect if the return_type is for a value. + typedef typename is_value::type is_value_type; + return eval_local::template get( phoenix::env(ctx)); } diff --git a/include/boost/phoenix/version.hpp b/include/boost/phoenix/version.hpp index 8f9d93f..ce813ba 100644 --- a/include/boost/phoenix/version.hpp +++ b/include/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 0x3100 // 3.1.0 +#define BOOST_PHOENIX_VERSION 0x3101 // 3.1.1 // boost/predef is not in Boost before 1.55.0 #include @@ -26,7 +26,7 @@ #endif #ifdef BOOST_PHOENIX_HAVE_BOOST_PREDEF -#define BOOST_PHOENIX_VERSION_NUMBER = BOOST_VERSION_NUMBER(3,1,0) +#define BOOST_PHOENIX_VERSION_NUMBER = BOOST_VERSION_NUMBER(3,1,1) #endif #endif diff --git a/test/Jamfile b/test/Jamfile index 1860f94..8b04926 100644 --- a/test/Jamfile +++ b/test/Jamfile @@ -1,5 +1,6 @@ #============================================================================== # Copyright (c) 2003-2006 Joel de Guzman +# Copyright (c) 2014-2015 John Fletcher # # Use, modification and distribution is subject to the Boost Software # License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at @@ -51,6 +52,9 @@ test-suite phoenix_object : test-suite phoenix_function : [ run function/adapt_function.cpp ] [ run function/function_tests.cpp ] + [ run function/lazy_argument_tests.cpp ] + [ run function/lazy_make_pair_tests.cpp ] + [ run function/lazy_templated_struct_tests.cpp ] # [ run function/function_tests_phx2.cpp ] ; @@ -87,11 +91,36 @@ test-suite phoenix_container : ; test-suite phoenix_scope : - [ run scope/lambda_tests.cpp ] +# [ run scope/lambda_tests.cpp ] +# [ run scope/lambda_tests1.cpp ] + [ run scope/lambda_tests1a.cpp ] +# [ run scope/lambda_tests1b.cpp ] + [ run scope/lambda_tests1b1p.cpp ] + [ run scope/lambda_tests1b1q.cpp ] + [ run scope/lambda_tests1b1r.cpp ] + [ run scope/lambda_tests1b1s.cpp ] + [ run scope/lambda_tests1b1t.cpp ] + [ run scope/lambda_tests1b2p.cpp ] + [ run scope/lambda_tests1b2q.cpp ] + [ run scope/lambda_tests1b2r.cpp ] + [ run scope/lambda_tests2.cpp ] + [ run scope/lambda_tests2a.cpp ] + [ run scope/lambda_tests3.cpp ] + [ run scope/lambda_tests3a.cpp ] +# [ run scope/lambda_tests3a1.cpp ] + [ run scope/lambda_tests3b.cpp ] # [ run scope/lambda_tests_phx2.cpp ] [ run scope/let_tests.cpp ] + [ run scope/let_tests_113.cpp ] +# [ run scope/let_tests_113a.cpp ] + [ run scope/let_tests_157.cpp ] +# [ run scope/let_tests_157a.cpp ] + [ run scope/let_tests_rest.cpp ] [ run scope/more_lambda_tests.cpp ] [ run scope/more_let_tests.cpp ] +# [ run scope/more_let_tests1.cpp ] +# [ run scope/more_let_tests2a.cpp ] +# [ run scope/more_let_tests2b.cpp ] [ run scope/dynamic_tests.cpp ] [ run scope/bug3289.cpp ] [ run scope/bug8298.cpp ] @@ -117,6 +146,7 @@ test-suite phoenix_boost_bind_compatibility : [ run boost_bind_compatibility/bind_const_test.cpp ] [ run boost_bind_compatibility/bind_cv_test.cpp ] [ run boost_bind_compatibility/bind_dm_test.cpp ] +# [ run boost_bind_compatibility/bind_dm1_test.cpp ] [ run boost_bind_compatibility/bind_dm2_test.cpp ] [ run boost_bind_compatibility/bind_dm3_test.cpp ] [ run boost_bind_compatibility/bind_eq_test.cpp ] @@ -124,6 +154,7 @@ test-suite phoenix_boost_bind_compatibility : [ run boost_bind_compatibility/bind_eq3_test.cpp ] [ run boost_bind_compatibility/bind_fn2_test.cpp ] [ run boost_bind_compatibility/bind_function_test.cpp ] + [ run boost_bind_compatibility/bind_interoperation_test.cpp ] [ run boost_bind_compatibility/bind_mf2_test.cpp ] [ run boost_bind_compatibility/bind_not_test.cpp ] [ run boost_bind_compatibility/bind_placeholder_test.cpp ] @@ -131,8 +162,16 @@ test-suite phoenix_boost_bind_compatibility : [ run boost_bind_compatibility/bind_rel_test.cpp ] [ run boost_bind_compatibility/bind_rvalue_test.cpp ] [ run boost_bind_compatibility/bind_rv_sp_test.cpp ] +# [ run boost_bind_compatibility/bind_rv_sp1_test.cpp ] +# [ run boost_bind_compatibility/bind_rv_sp2_test.cpp ] +# [ run boost_bind_compatibility/bind_rv_sp3_test.cpp ] +# [ run boost_bind_compatibility/bind_rv_sp4_test.cpp ] +# [ run boost_bind_compatibility/bind_rv_sp5_test.cpp ] +# [ run boost_bind_compatibility/bind_rv_sp6_test.cpp ] +# [ run boost_bind_compatibility/bind_rv_sp7_test.cpp ] [ run boost_bind_compatibility/bind_stateful_test.cpp ] [ run boost_bind_compatibility/bind_test.cpp ] +# [ run boost_bind_compatibility/bind_void_dm_test.cpp ] ; test-suite phoenix_regression : @@ -156,7 +195,7 @@ test-suite phoenix_include : [ run include/object.cpp ] [ run include/operator.cpp ] [ run include/scope.cpp ] - [ run include/spirit.cpp ] +# [ run include/spirit.cpp ] # [ run include/spirit_no_specialize.cpp ] [ run include/statement.cpp ] [ run include/stl.cpp ] diff --git a/test/boost_bind_compatibility/bind_dm1_test.cpp b/test/boost_bind_compatibility/bind_dm1_test.cpp new file mode 100644 index 0000000..68f50c0 --- /dev/null +++ b/test/boost_bind_compatibility/bind_dm1_test.cpp @@ -0,0 +1,77 @@ +/*============================================================================== + Copyright (c) 2005 Peter Dimov + Copyright (c) 2005-2010 Joel de Guzman + Copyright (c) 2010 Thomas Heller + + 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) +==============================================================================*/ + +#include + +#if defined(BOOST_MSVC) +#pragma warning(disable: 4786) // identifier truncated in debug info +#pragma warning(disable: 4710) // function not inlined +#pragma warning(disable: 4711) // function selected for automatic inline expansion +#pragma warning(disable: 4514) // unreferenced inline removed +#endif + +#include +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(push, 3) +#endif + +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(pop) +#endif + +#include + +struct X +{ + int m; +}; + +X f( int v ) +{ + X r = { v }; + return r; +} + +int main() +{ + using boost::phoenix::bind; + using boost::phoenix::ref; + using boost::phoenix::placeholders::_1; + + X x = { 17041 }; + X * px = &x; + + BOOST_TEST( bind( &X::m, _1 )( x ) == 17041 ); + BOOST_TEST( bind( &X::m, _1 )( px ) == 17041 ); + + BOOST_TEST( bind( &X::m, x )() == 17041 ); + BOOST_TEST( bind( &X::m, px )() == 17041 ); + BOOST_TEST( bind( &X::m, ref(x) )() == 17041 ); + + + X const cx = x; + X const * pcx = &cx; + + BOOST_TEST( bind( &X::m, _1 )( cx ) == 17041 ); + BOOST_TEST( bind( &X::m, _1 )( pcx ) == 17041 ); + + BOOST_TEST( bind( &X::m, cx )() == 17041 ); + BOOST_TEST( bind( &X::m, pcx )() == 17041 ); + BOOST_TEST( bind( &X::m, ref(cx) )() == 17041 ); + + int const v = 42; + // Change bind_dm_test.cpp to bind to _1 twice. + BOOST_TEST( bind( &X::m, _1)( bind( f, _1 )( v ) ) == v ); + + return boost::report_errors(); +} diff --git a/test/boost_bind_compatibility/bind_dm3_test.cpp b/test/boost_bind_compatibility/bind_dm3_test.cpp index ee4bc99..d50a4ea 100644 --- a/test/boost_bind_compatibility/bind_dm3_test.cpp +++ b/test/boost_bind_compatibility/bind_dm3_test.cpp @@ -41,7 +41,13 @@ int main() pair_type pair( 10, 20 ); +#if defined(BOOST_MSVC) && (BOOST_MSVC >= 1600) && (BOOST_MSVC < 1700) +// bind is being confused with 'std::tr1::_Bind' to be found here +// C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xxbind1(485) + int const & x = boost::phoenix::bind( &pair_type::first, _1 )( pair ); +#else int const & x = bind( &pair_type::first, _1 )( pair ); +#endif BOOST_TEST( &pair.first == &x ); diff --git a/test/boost_bind_compatibility/bind_dm_test.cpp b/test/boost_bind_compatibility/bind_dm_test.cpp index 8df1659..fcf699d 100644 --- a/test/boost_bind_compatibility/bind_dm_test.cpp +++ b/test/boost_bind_compatibility/bind_dm_test.cpp @@ -71,7 +71,11 @@ int main() int const v = 42; +#if defined(BOOST_GCC_VERSION) && (BOOST_GCC_VERSION >= 50000) && __OPTIMIZE__ + // Change bind_dm_test.cpp to bind to _1 twice. + BOOST_TEST( bind( &X::m, _1)( bind( f, _1 )( v ) ) == v ); +#else BOOST_TEST( bind( &X::m, bind( f, _1 ) )( v ) == v ); - +#endif return boost::report_errors(); } diff --git a/test/boost_bind_compatibility/bind_interoperation_test.cpp b/test/boost_bind_compatibility/bind_interoperation_test.cpp new file mode 100644 index 0000000..fdce19a --- /dev/null +++ b/test/boost_bind_compatibility/bind_interoperation_test.cpp @@ -0,0 +1,142 @@ +/*============================================================================== + Copyright (c) 2005 Peter Dimov + Copyright (c) 2005-2010 Joel de Guzman + 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) +==============================================================================*/ + +#include + +#if defined(BOOST_MSVC) +#pragma warning(disable: 4786) // identifier truncated in debug info +#pragma warning(disable: 4710) // function not inlined +#pragma warning(disable: 4711) // function selected for automatic inline expansion +#pragma warning(disable: 4514) // unreferenced inline removed +#endif + +#include +#include +#include +#include +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(push, 3) +#endif + +#include +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(pop) +#endif + +int f1( int x ) +{ + return x; +} + +int f2( int x, int y ) +{ + return x + y; +} + +struct X +{ + mutable int n; + + X() : n(0) {} + + int f0() { n += f1(17); return n; } + int g0() const { n += g1(17); return n; } + + + int f1(int a1) { return a1; } + int g1(int a1) const { return a1; } +}; + +struct Y +{ + int m; +}; + +namespace phx = boost::phoenix; +using phx::placeholders::arg1; +using phx::placeholders::arg2; +using boost::phoenix::ref; + +void member_test() +{ + Y y = { 17041 }; + Y * py = &y; + + BOOST_TEST( boost::bind( &Y::m, _1 )( y ) == 17041 ); + BOOST_TEST( boost::bind( &Y::m, _1 )( py ) == 17041 ); + + BOOST_TEST( phx::bind( &Y::m, _1 )( y ) == 17041 ); + BOOST_TEST( phx::bind( &Y::m, _1 )( py ) == 17041 ); + + BOOST_TEST( phx::bind( &Y::m, arg1 )( y ) == 17041 ); + BOOST_TEST( phx::bind( &Y::m, arg1 )( py ) == 17041 ); + + BOOST_TEST( boost::bind( &Y::m, y )() == 17041 ); + BOOST_TEST( boost::bind( &Y::m, py )() == 17041 ); + //BOOST_TEST( boost::bind( &Y::m, ref(y) )() == 17041 ); + + BOOST_TEST( phx::bind( &Y::m, y )() == 17041 ); + BOOST_TEST( phx::bind( &Y::m, py )() == 17041 ); + BOOST_TEST( phx::bind( &Y::m, ref(y) )() == 17041 ); + + return; +} + +void member_function_test() +{ + + X x; + + // 0 + + BOOST_TEST(boost::bind(&X::f0, &x )() == 17); + //boost::bind(&X::f0, ref(x) )(); boost::bind does not work with phx::ref. + + BOOST_TEST(boost::bind(&X::g0, &x )() == 34); + BOOST_TEST(boost::bind(&X::g0, x )() == 51); + //boost::bind(&X::g0, ref(x) )(); + + BOOST_TEST(phx::bind(&X::f0, &x )() == 51); + BOOST_TEST(phx::bind(&X::f0, ref(x) )() == 68); + + BOOST_TEST(phx::bind(&X::g0, &x )() == 85); + BOOST_TEST(phx::bind(&X::g0, x )() == 102); + BOOST_TEST(phx::bind(&X::g0, ref(x) )() == 102); + + return; +} + +int main() +{ + + boost::function fun1_f1(boost::bind ( &f1, _1) ); + boost::function fun2_f1( phx::bind ( &f1, _1) ); + boost::function fun3_f1( phx::bind ( &f1, arg1) ); + + BOOST_TEST( fun1_f1(1) == 1 ); + BOOST_TEST( fun2_f1(2) == 2 ); + BOOST_TEST( fun3_f1(3) == 3 ); + + boost::function fun1_f2(boost::bind ( &f2, _1, _2) ); + boost::function fun2_f2( phx::bind ( &f2, _1, _2) ); + boost::function fun3_f2( phx::bind ( &f2, arg1, arg2) ); + + BOOST_TEST( fun1_f2(1,2) == 3 ); + BOOST_TEST( fun2_f2(2,3) == 5 ); + BOOST_TEST( fun3_f2(3,4) == 7 ); + + member_function_test(); + member_test(); + return boost::report_errors(); +} diff --git a/test/boost_bind_compatibility/bind_rv_sp1_test.cpp b/test/boost_bind_compatibility/bind_rv_sp1_test.cpp new file mode 100644 index 0000000..a276014 --- /dev/null +++ b/test/boost_bind_compatibility/bind_rv_sp1_test.cpp @@ -0,0 +1,68 @@ +/*============================================================================== + Copyright (c) 2006 Peter Dimov + Copyright (c) 2005-2010 Joel de Guzman + Copyright (c) 2010 Thomas Heller + + 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) +==============================================================================*/ + +#include + +#if defined(BOOST_MSVC) +#pragma warning(disable: 4786) // identifier truncated in debug info +#pragma warning(disable: 4710) // function not inlined +#pragma warning(disable: 4711) // function selected for automatic inline expansion +#pragma warning(disable: 4514) // unreferenced inline removed +#endif + +#include +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(push, 3) +#endif + +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(pop) +#endif + +#include +#include + +struct X +{ + int v_; + + X( int v ): v_( v ) + { + } + + int f() + { + return v_; + } +}; + +struct Y +{ + boost::shared_ptr f() + { + return boost::shared_ptr( new X( 42 ) ); + } +}; + +int main() +{ + using boost::phoenix::bind; + using boost::phoenix::placeholders::_1; + + Y y; + + // Change bind_rv_sp_test.cpp to bind to _1. + BOOST_TEST( bind( &X::f, _1) ( bind( &Y::f, &y )()) == 42 ); + + return boost::report_errors(); +} diff --git a/test/boost_bind_compatibility/bind_rv_sp2_test.cpp b/test/boost_bind_compatibility/bind_rv_sp2_test.cpp new file mode 100644 index 0000000..ca505f2 --- /dev/null +++ b/test/boost_bind_compatibility/bind_rv_sp2_test.cpp @@ -0,0 +1,68 @@ +/*============================================================================== + Copyright (c) 2006 Peter Dimov + Copyright (c) 2005-2010 Joel de Guzman + Copyright (c) 2010 Thomas Heller + + 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) +==============================================================================*/ + +#include + +#if defined(BOOST_MSVC) +#pragma warning(disable: 4786) // identifier truncated in debug info +#pragma warning(disable: 4710) // function not inlined +#pragma warning(disable: 4711) // function selected for automatic inline expansion +#pragma warning(disable: 4514) // unreferenced inline removed +#endif + +#include +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(push, 3) +#endif + +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(pop) +#endif + +#include +#include + +struct X +{ + int v_; + + X( int v ): v_( v ) + { + } + + int f() + { + return v_; + } +}; + +struct Y +{ + boost::shared_ptr f() + { + return boost::shared_ptr( new X( 42 ) ); + } +}; + +int main() +{ + using boost::phoenix::bind; + //using boost::phoenix::placeholders::_1; + + Y y; + + // Simplify Change bind_rv_sp_test.cpp to bind to _1. + BOOST_TEST( (*bind( &Y::f, &y )()).f() == 42 ); + + return boost::report_errors(); +} diff --git a/test/boost_bind_compatibility/bind_rv_sp3_test.cpp b/test/boost_bind_compatibility/bind_rv_sp3_test.cpp new file mode 100644 index 0000000..2aff70a --- /dev/null +++ b/test/boost_bind_compatibility/bind_rv_sp3_test.cpp @@ -0,0 +1,68 @@ +/*============================================================================== + Copyright (c) 2006 Peter Dimov + Copyright (c) 2005-2010 Joel de Guzman + Copyright (c) 2010 Thomas Heller + + 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) +==============================================================================*/ + +#include + +#if defined(BOOST_MSVC) +#pragma warning(disable: 4786) // identifier truncated in debug info +#pragma warning(disable: 4710) // function not inlined +#pragma warning(disable: 4711) // function selected for automatic inline expansion +#pragma warning(disable: 4514) // unreferenced inline removed +#endif + +#include +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(push, 3) +#endif + +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(pop) +#endif + +#include +#include + +struct X +{ + int v_; + + X( int v ): v_( v ) + { + } + + int f() + { + return v_; + } +}; + +struct Y +{ + boost::shared_ptr g() + { + return boost::shared_ptr( new X( 42 ) ); + } +}; + +int main() +{ + using boost::phoenix::bind; + using boost::phoenix::placeholders::_1; + + Y y; + + // Change bind_rv_sp_test.cpp to bind to _1. Renamed f to g in y + BOOST_TEST( bind( &X::f, _1) ( bind( &Y::g, &y )()) == 42 ); + + return boost::report_errors(); +} diff --git a/test/boost_bind_compatibility/bind_rv_sp4_test.cpp b/test/boost_bind_compatibility/bind_rv_sp4_test.cpp new file mode 100644 index 0000000..1cd9a88 --- /dev/null +++ b/test/boost_bind_compatibility/bind_rv_sp4_test.cpp @@ -0,0 +1,70 @@ +/*============================================================================== + Copyright (c) 2006 Peter Dimov + Copyright (c) 2005-2010 Joel de Guzman + Copyright (c) 2010 Thomas Heller + + 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) +==============================================================================*/ + +#include + +#if defined(BOOST_MSVC) +#pragma warning(disable: 4786) // identifier truncated in debug info +#pragma warning(disable: 4710) // function not inlined +#pragma warning(disable: 4711) // function selected for automatic inline expansion +#pragma warning(disable: 4514) // unreferenced inline removed +#endif + +#include +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(push, 3) +#endif + +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(pop) +#endif + +#include +#include + +struct X +{ + int v_; + + X( int v ): v_( v ) + { + } + + int f() + { + return v_; + } +}; + +struct Y +{ + boost::shared_ptr f() + { + return boost::shared_ptr( new X( 42 ) ); + } +}; + +int main() +{ + using boost::phoenix::bind; + //using boost::phoenix::placeholders::_1; + + Y y; + + // Change bind_rv_sp_test.cpp to bind to _1. Renamed f to g in y + //BOOST_TEST( bind( &X::f, _1) ( bind( &Y::g, &y )()) == 42 ); + boost::shared_ptr xp = bind( &Y::f, &y )(); + BOOST_TEST( bind( &X::f, xp)() == 42 ); + + return boost::report_errors(); +} diff --git a/test/boost_bind_compatibility/bind_rv_sp5_test.cpp b/test/boost_bind_compatibility/bind_rv_sp5_test.cpp new file mode 100644 index 0000000..4d82a46 --- /dev/null +++ b/test/boost_bind_compatibility/bind_rv_sp5_test.cpp @@ -0,0 +1,70 @@ +/*============================================================================== + Copyright (c) 2006 Peter Dimov + Copyright (c) 2005-2010 Joel de Guzman + Copyright (c) 2010 Thomas Heller + + 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) +==============================================================================*/ + +#include + +#if defined(BOOST_MSVC) +#pragma warning(disable: 4786) // identifier truncated in debug info +#pragma warning(disable: 4710) // function not inlined +#pragma warning(disable: 4711) // function selected for automatic inline expansion +#pragma warning(disable: 4514) // unreferenced inline removed +#endif + +#include +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(push, 3) +#endif + +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(pop) +#endif + +#include +#include + +struct X +{ + int v_; + + X( int v ): v_( v ) + { + } + + int f() + { + return v_; + } +}; + +struct Y +{ + boost::shared_ptr f() + { + return boost::shared_ptr( new X( 42 ) ); + } +}; + +int main() +{ + using boost::phoenix::bind; + //using boost::phoenix::placeholders::_1; + + Y y; + + // Change bind_rv_sp_test.cpp to bind to _1. Renamed f to g in y + //BOOST_TEST( bind( &X::f, _1) ( bind( &Y::g, &y )()) == 42 ); + boost::shared_ptr xp = bind( &Y::f, &y )(); + //BOOST_TEST( bind( &X::f, xp)() == 42 ); + BOOST_TEST( (*xp).f() == 42 ); + return boost::report_errors(); +} diff --git a/test/boost_bind_compatibility/bind_rv_sp6_test.cpp b/test/boost_bind_compatibility/bind_rv_sp6_test.cpp new file mode 100644 index 0000000..446d17e --- /dev/null +++ b/test/boost_bind_compatibility/bind_rv_sp6_test.cpp @@ -0,0 +1,71 @@ +/*============================================================================== + Copyright (c) 2006 Peter Dimov + Copyright (c) 2005-2010 Joel de Guzman + Copyright (c) 2010 Thomas Heller + + 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) +==============================================================================*/ + +#include + +#if defined(BOOST_MSVC) +#pragma warning(disable: 4786) // identifier truncated in debug info +#pragma warning(disable: 4710) // function not inlined +#pragma warning(disable: 4711) // function selected for automatic inline expansion +#pragma warning(disable: 4514) // unreferenced inline removed +#endif + +#include +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(push, 3) +#endif + +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(pop) +#endif + +#include +#include + +struct X +{ + int v_; + + X( int v ): v_( v ) + { + } + + int f() + { + return v_; + } +}; + +struct Y +{ + boost::shared_ptr f() + { + return boost::shared_ptr( new X( 42 ) ); + } +}; + +int main() +{ + using boost::phoenix::bind; + //using boost::phoenix::placeholders::_1; + + Y y; + + // Change bind_rv_sp_test.cpp to bind to _1. Renamed f to g in y + //BOOST_TEST( bind( &X::f, _1) ( bind( &Y::g, &y )()) == 42 ); + //boost::shared_ptr xp = bind( &Y::f, &y )(); + boost::shared_ptr xp = y.f(); + BOOST_TEST( bind( &X::f, xp)() == 42 ); + //BOOST_TEST( (*xp).f() == 42 ); + return boost::report_errors(); +} diff --git a/test/boost_bind_compatibility/bind_rv_sp7_test.cpp b/test/boost_bind_compatibility/bind_rv_sp7_test.cpp new file mode 100644 index 0000000..7b050bf --- /dev/null +++ b/test/boost_bind_compatibility/bind_rv_sp7_test.cpp @@ -0,0 +1,71 @@ +/*============================================================================== + Copyright (c) 2006 Peter Dimov + Copyright (c) 2005-2010 Joel de Guzman + Copyright (c) 2010 Thomas Heller + + 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) +==============================================================================*/ + +#include + +#if defined(BOOST_MSVC) +#pragma warning(disable: 4786) // identifier truncated in debug info +#pragma warning(disable: 4710) // function not inlined +#pragma warning(disable: 4711) // function selected for automatic inline expansion +#pragma warning(disable: 4514) // unreferenced inline removed +#endif + +#include +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(push, 3) +#endif + +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(pop) +#endif + +#include +#include + +struct X +{ + int v_; + + X( int v ): v_( v ) + { + } + + int f() + { + return v_; + } +}; + +struct Y +{ + boost::shared_ptr f() + { + return boost::shared_ptr( new X( 42 ) ); + } +}; + +int main() +{ + using boost::phoenix::bind; + //using boost::phoenix::placeholders::_1; + + Y y; + + // Change bind_rv_sp_test.cpp to bind to _1. Renamed f to g in y + //BOOST_TEST( bind( &X::f, _1) ( bind( &Y::g, &y )()) == 42 ); + //boost::shared_ptr xp = bind( &Y::f, &y )(); + boost::shared_ptr xp = y.f(); + // BOOST_TEST( bind( &X::f, xp)() == 42 ); + BOOST_TEST( (*xp).f() == 42 ); + return boost::report_errors(); +} diff --git a/test/boost_bind_compatibility/bind_void_dm_test.cpp b/test/boost_bind_compatibility/bind_void_dm_test.cpp new file mode 100644 index 0000000..5755fb6 --- /dev/null +++ b/test/boost_bind_compatibility/bind_void_dm_test.cpp @@ -0,0 +1,73 @@ +/*============================================================================== + Copyright (c) 2006 Peter Dimov + Copyright (c) 2014 Agustin Berge + 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) +==============================================================================*/ + +#include + +#if defined(BOOST_MSVC) +#pragma warning(disable: 4786) // identifier truncated in debug info +#pragma warning(disable: 4710) // function not inlined +#pragma warning(disable: 4711) // function selected for automatic inline expansion +#pragma warning(disable: 4514) // unreferenced inline removed +#endif + +#include +#include +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(push, 3) +#endif + +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(pop) +#endif + +#include + +// + +struct Z +{ + int m; +}; + +void member_data_test() +{ + using boost::phoenix::bind; + + Z z = { 17041 }; + Z * pz = &z; + + bind( &Z::m, _1 )( z ); + bind( &Z::m, _1 )( pz ); + + bind( &Z::m, z )(); + bind( &Z::m, pz )(); + bind( &Z::m, boost::ref(z) )(); + + + Z const cz = z; + Z const * pcz = &cz; + + bind( &Z::m, _1 )( cz ); + bind( &Z::m, _1 )( pcz ); + + bind( &Z::m, cz )(); + bind( &Z::m, pcz )(); + bind( &Z::m, boost::ref(cz) )(); +} + +int main() +{ + member_data_test(); + + return boost::report_errors(); +} diff --git a/test/boost_bind_compatibility/bind_void_mf_test.cpp b/test/boost_bind_compatibility/bind_void_mf_test.cpp new file mode 100644 index 0000000..62c2dcd --- /dev/null +++ b/test/boost_bind_compatibility/bind_void_mf_test.cpp @@ -0,0 +1,171 @@ +#include + +#if defined(BOOST_MSVC) +#pragma warning(disable: 4786) // identifier truncated in debug info +#pragma warning(disable: 4710) // function not inlined +#pragma warning(disable: 4711) // function selected for automatic inline expansion +#pragma warning(disable: 4514) // unreferenced inline removed +#endif + +// +// bind_void_mf_test.cpp - test for bind with member functions +// +// Copyright (c) 2008 Peter Dimov +// Copyright (c) 2014 Agustin Berge +// +// 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) +// + +#include +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(push, 3) +#endif + +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(pop) +#endif + +#include + +// + +long global_result; + +// + +struct X +{ + mutable unsigned int hash; + + X(): hash(0) {} + + int f0() { f1(17); return 0; } + int g0() const { g1(17); return 0; } + + int f1(int a1) { hash = (hash * 17041 + a1) % 32768; return 0; } + int g1(int a1) const { hash = (hash * 17041 + a1 * 2) % 32768; return 0; } + + int f2(int a1, int a2) { f1(a1); f1(a2); return 0; } + int g2(int a1, int a2) const { g1(a1); g1(a2); return 0; } + + int f3(int a1, int a2, int a3) { f2(a1, a2); f1(a3); return 0; } + int g3(int a1, int a2, int a3) const { g2(a1, a2); g1(a3); return 0; } + + int f4(int a1, int a2, int a3, int a4) { f3(a1, a2, a3); f1(a4); return 0; } + int g4(int a1, int a2, int a3, int a4) const { g3(a1, a2, a3); g1(a4); return 0; } + + int f5(int a1, int a2, int a3, int a4, int a5) { f4(a1, a2, a3, a4); f1(a5); return 0; } + int g5(int a1, int a2, int a3, int a4, int a5) const { g4(a1, a2, a3, a4); g1(a5); return 0; } + + int f6(int a1, int a2, int a3, int a4, int a5, int a6) { f5(a1, a2, a3, a4, a5); f1(a6); return 0; } + int g6(int a1, int a2, int a3, int a4, int a5, int a6) const { g5(a1, a2, a3, a4, a5); g1(a6); return 0; } + + int f7(int a1, int a2, int a3, int a4, int a5, int a6, int a7) { f6(a1, a2, a3, a4, a5, a6); f1(a7); return 0; } + int g7(int a1, int a2, int a3, int a4, int a5, int a6, int a7) const { g6(a1, a2, a3, a4, a5, a6); g1(a7); return 0; } + + int f8(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8) { f7(a1, a2, a3, a4, a5, a6, a7); f1(a8); return 0; } + int g8(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8) const { g7(a1, a2, a3, a4, a5, a6, a7); g1(a8); return 0; } +}; + +void member_function_test() +{ + using namespace boost; + + X x; + + // 0 + + bind(&X::f0, &x)(); + bind(&X::f0, ref(x))(); + + bind(&X::g0, &x)(); + bind(&X::g0, x)(); + bind(&X::g0, ref(x))(); + + // 1 + + bind(&X::f1, &x, 1)(); + bind(&X::f1, ref(x), 1)(); + + bind(&X::g1, &x, 1)(); + bind(&X::g1, x, 1)(); + bind(&X::g1, ref(x), 1)(); + + // 2 + + bind(&X::f2, &x, 1, 2)(); + bind(&X::f2, ref(x), 1, 2)(); + + bind(&X::g2, &x, 1, 2)(); + bind(&X::g2, x, 1, 2)(); + bind(&X::g2, ref(x), 1, 2)(); + + // 3 + + bind(&X::f3, &x, 1, 2, 3)(); + bind(&X::f3, ref(x), 1, 2, 3)(); + + bind(&X::g3, &x, 1, 2, 3)(); + bind(&X::g3, x, 1, 2, 3)(); + bind(&X::g3, ref(x), 1, 2, 3)(); + + // 4 + + bind(&X::f4, &x, 1, 2, 3, 4)(); + bind(&X::f4, ref(x), 1, 2, 3, 4)(); + + bind(&X::g4, &x, 1, 2, 3, 4)(); + bind(&X::g4, x, 1, 2, 3, 4)(); + bind(&X::g4, ref(x), 1, 2, 3, 4)(); + + // 5 + + bind(&X::f5, &x, 1, 2, 3, 4, 5)(); + bind(&X::f5, ref(x), 1, 2, 3, 4, 5)(); + + bind(&X::g5, &x, 1, 2, 3, 4, 5)(); + bind(&X::g5, x, 1, 2, 3, 4, 5)(); + bind(&X::g5, ref(x), 1, 2, 3, 4, 5)(); + + // 6 + + bind(&X::f6, &x, 1, 2, 3, 4, 5, 6)(); + bind(&X::f6, ref(x), 1, 2, 3, 4, 5, 6)(); + + bind(&X::g6, &x, 1, 2, 3, 4, 5, 6)(); + bind(&X::g6, x, 1, 2, 3, 4, 5, 6)(); + bind(&X::g6, ref(x), 1, 2, 3, 4, 5, 6)(); + + // 7 + + bind(&X::f7, &x, 1, 2, 3, 4, 5, 6, 7)(); + bind(&X::f7, ref(x), 1, 2, 3, 4, 5, 6, 7)(); + + bind(&X::g7, &x, 1, 2, 3, 4, 5, 6, 7)(); + bind(&X::g7, x, 1, 2, 3, 4, 5, 6, 7)(); + bind(&X::g7, ref(x), 1, 2, 3, 4, 5, 6, 7)(); + + // 8 + + bind(&X::f8, &x, 1, 2, 3, 4, 5, 6, 7, 8)(); + bind(&X::f8, ref(x), 1, 2, 3, 4, 5, 6, 7, 8)(); + + bind(&X::g8, &x, 1, 2, 3, 4, 5, 6, 7, 8)(); + bind(&X::g8, x, 1, 2, 3, 4, 5, 6, 7, 8)(); + bind(&X::g8, ref(x), 1, 2, 3, 4, 5, 6, 7, 8)(); + + BOOST_TEST( x.hash == 23558 ); +} + +int main() +{ + member_function_test(); + + return boost::report_errors(); +} diff --git a/test/boost_bind_compatibility/bind_void_test.cpp b/test/boost_bind_compatibility/bind_void_test.cpp new file mode 100644 index 0000000..bb1e80d --- /dev/null +++ b/test/boost_bind_compatibility/bind_void_test.cpp @@ -0,0 +1,139 @@ +#include + +#if defined(BOOST_MSVC) +#pragma warning(disable: 4786) // identifier truncated in debug info +#pragma warning(disable: 4710) // function not inlined +#pragma warning(disable: 4711) // function selected for automatic inline expansion +#pragma warning(disable: 4514) // unreferenced inline removed +#endif + +// +// bind_void_test.cpp - test for bind +// +// Copyright (c) 2008 Peter Dimov +// Copyright (c) 2014 Agustin Berge +// +// 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) +// + +#include +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(push, 3) +#endif + +#include + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +#pragma warning(pop) +#endif + +#include + +// + +long global_result; + +long f_0() +{ + return global_result = 17041L; +} + +long f_1(long a) +{ + return global_result = a; +} + +long f_2(long a, long b) +{ + return global_result = a + 10 * b; +} + +long f_3(long a, long b, long c) +{ + return global_result = a + 10 * b + 100 * c; +} + +long f_4(long a, long b, long c, long d) +{ + return global_result = a + 10 * b + 100 * c + 1000 * d; +} + +long f_5(long a, long b, long c, long d, long e) +{ + return global_result = a + 10 * b + 100 * c + 1000 * d + 10000 * e; +} + +long f_6(long a, long b, long c, long d, long e, long f) +{ + return global_result = a + 10 * b + 100 * c + 1000 * d + 10000 * e + 100000 * f; +} + +long f_7(long a, long b, long c, long d, long e, long f, long g) +{ + return global_result = a + 10 * b + 100 * c + 1000 * d + 10000 * e + 100000 * f + 1000000 * g; +} + +long f_8(long a, long b, long c, long d, long e, long f, long g, long h) +{ + return global_result = a + 10 * b + 100 * c + 1000 * d + 10000 * e + 100000 * f + 1000000 * g + 10000000 * h; +} + +long f_9(long a, long b, long c, long d, long e, long f, long g, long h, long i) +{ + return global_result = a + 10 * b + 100 * c + 1000 * d + 10000 * e + 100000 * f + 1000000 * g + 10000000 * h + 100000000 * i; +} + +void function_test() +{ + using namespace boost; + + int const i = 1; + + BOOST_TEST( (bind(f_0)(i), (global_result == 17041L)) ); + BOOST_TEST( (bind(f_1, _1)(i), (global_result == 1L)) ); + BOOST_TEST( (bind(f_2, _1, 2)(i), (global_result == 21L)) ); + BOOST_TEST( (bind(f_3, _1, 2, 3)(i), (global_result == 321L)) ); + BOOST_TEST( (bind(f_4, _1, 2, 3, 4)(i), (global_result == 4321L)) ); + BOOST_TEST( (bind(f_5, _1, 2, 3, 4, 5)(i), (global_result == 54321L)) ); + BOOST_TEST( (bind(f_6, _1, 2, 3, 4, 5, 6)(i), (global_result == 654321L)) ); + BOOST_TEST( (bind(f_7, _1, 2, 3, 4, 5, 6, 7)(i), (global_result == 7654321L)) ); + BOOST_TEST( (bind(f_8, _1, 2, 3, 4, 5, 6, 7, 8)(i), (global_result == 87654321L)) ); + BOOST_TEST( (bind(f_9, _1, 2, 3, 4, 5, 6, 7, 8, 9)(i), (global_result == 987654321L)) ); +} + +// + +struct Y +{ + short operator()(short & r) const { return global_result = ++r; } + int operator()(int a, int b) const { return global_result = a + 10 * b; } + long operator() (long a, long b, long c) const { return global_result = a + 10 * b + 100 * c; } + void operator() (long a, long b, long c, long d) const { global_result = a + 10 * b + 100 * c + 1000 * d; } +}; + +void function_object_test() +{ + using namespace boost; + + short i(6); + + int const k = 3; + + BOOST_TEST( (bind(Y(), ref(i))(), (global_result == 7)) ); + BOOST_TEST( (bind(Y(), ref(i))(), (global_result == 8)) ); + BOOST_TEST( (bind(Y(), i, _1)(k), (global_result == 38)) ); + BOOST_TEST( (bind(Y(), i, _1, 9)(k), (global_result == 938)) ); + BOOST_TEST( (bind(Y(), i, _1, 9, 4)(k), (global_result == 4938)) ); +} + +int main() +{ + function_test(); + function_object_test(); + + return boost::report_errors(); +} diff --git a/test/function/lazy_argument_tests.cpp b/test/function/lazy_argument_tests.cpp new file mode 100644 index 0000000..a45f501 --- /dev/null +++ b/test/function/lazy_argument_tests.cpp @@ -0,0 +1,53 @@ +//////////////////////////////////////////////////////////////////////////// +// lazy_argument_tests.cpp +// +// lazy argument tests passing lazy function as argument. +// +//////////////////////////////////////////////////////////////////////////// +/*============================================================================= + 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) +==============================================================================*/ + +#include + +#include +#include +#include + +namespace example { + struct G { + + template + struct result; + + template + struct result + : boost::remove_reference + {}; + + template + T operator()(T t) const { return ++t; } + + }; +} + +typedef boost::phoenix::function GG; +boost::phoenix::function gg; + +template +T h(F f, T const& t) +{ + return f(t)(); +} + +int main() +{ + BOOST_TEST( h(gg,1) == 2); + BOOST_TEST(( h(gg,1) == 2)); + + return boost::report_errors(); +} diff --git a/test/function/lazy_make_pair_tests.cpp b/test/function/lazy_make_pair_tests.cpp new file mode 100644 index 0000000..09fccf5 --- /dev/null +++ b/test/function/lazy_make_pair_tests.cpp @@ -0,0 +1,109 @@ +//////////////////////////////////////////////////////////////////////////// +// lazy_make_pair_tests.cpp +// +// lazy make_pair test solving the optimizer problem. +// +//////////////////////////////////////////////////////////////////////////// +/*============================================================================= + 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) +==============================================================================*/ + +#include + +#include +#include +#include + +namespace boost { + + namespace phoenix { + +#ifdef BOOST_RESULT_OF_USE_TR1 + + namespace result_of { + + template < + typename Arg1 + , typename Arg2 + > + class make_pair + { + public: + typedef typename boost::remove_reference::type Arg1Type; + typedef typename boost::remove_reference::type Arg2Type; + typedef std::pair type; + }; + } +#endif + + namespace impl + { + + struct make_pair { + + +#ifdef BOOST_RESULT_OF_USE_TR1 + template + struct result; + // This fails with -O2 unless refs are removed from A1 and A2. + template + struct result + { + typedef typename result_of::make_pair::type type; + }; +#else + template + struct result; + + template + struct result + : boost::remove_reference > + {}; + +#endif + + + template +#ifdef BOOST_RESULT_OF_USE_TR1 + typename result::type +#else + std::pair +#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) + + } + +} + +int main() +{ + namespace phx = boost::phoenix; + using boost::phoenix::arg_names::arg1; + using boost::phoenix::arg_names::arg2; + int a = 99; int b = 256; + + std::pair ab1 = phx::make_pair(a,b)(); + //std::cout << ab1.first << "," << ab1.second << std::endl; + BOOST_TEST(ab1.first == 99 && ab1.second == 256); + std::pair ab2 = phx::make_pair(arg1,b)(a); + //std::cout << ab2.first << "," << ab2.second << std::endl; + BOOST_TEST(ab2.first == 99 && ab2.second == 256); + std::pair ab3 = phx::make_pair(arg1,arg2)(a,b); + //std::cout << ab3.first << "," << ab3.second << std::endl; + BOOST_TEST(ab3.first == 99 && ab3.second == 256); + + + return boost::report_errors(); +} diff --git a/test/function/lazy_templated_struct_tests.cpp b/test/function/lazy_templated_struct_tests.cpp new file mode 100644 index 0000000..b7c9904 --- /dev/null +++ b/test/function/lazy_templated_struct_tests.cpp @@ -0,0 +1,68 @@ +//////////////////////////////////////////////////////////////////////////// +// lazy_templated_struct_tests.cpp +// +// lazy templated struct test to check this works everywhere. +// +//////////////////////////////////////////////////////////////////////////// +/*============================================================================= + 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) +==============================================================================*/ + +#include + +#include +#include +#include +#include + +namespace example { + + namespace impl { + // Example of templated struct. + template + struct what { + + typedef Result result_type; + + Result operator()(Result const & r) const + { + return r; + } + }; + + template + struct what0 { + + typedef Result result_type; + + Result operator()() const + { + return Result(100); + } + + }; + + } + + boost::function1 what_int = impl::what(); + boost::function0 what0_int = impl::what0(); + BOOST_PHOENIX_ADAPT_FUNCTION(int,what,what_int,1) + BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY(int,what0,what0_int) +} + +int main() +{ + int a = 99; + using boost::phoenix::arg_names::arg1; + BOOST_TEST(example::what_int(a) == a); + BOOST_TEST(example::what(a)() == a); + BOOST_TEST(example::what(arg1)(a) == a); + BOOST_TEST(example::what0_int() == 100); + BOOST_TEST(example::what0()() == 100); + + return boost::report_errors(); +} diff --git a/test/regression/bug4853.cpp b/test/regression/bug4853.cpp index 34b6f08..7a21d16 100644 --- a/test/regression/bug4853.cpp +++ b/test/regression/bug4853.cpp @@ -1,6 +1,7 @@ /*============================================================================== Copyright (c) 2005-2010 Joel de Guzman 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) @@ -51,10 +52,13 @@ int range_test_complex() { using namespace boost::adaptors; using phoenix::arg_names::arg1; + // This is failing for gcc 4.4 and 4.5 - reason not identified. +#if ((BOOST_GCC_VERSION < 40400) || (BOOST_GCC_VERSION >= 40600)) boost::push_back(result1, source | transformed(phoenix::bind(&Foo::name_, *arg1)) | uniqued); for(unsigned i = 0; i < result1.size(); ++i) std::cout << result1[i] << "\n"; +#endif #if !(BOOST_GCC_VERSION < 40500) boost::push_back(result2, source | transformed(phoenix::bind(&Foo::value_, *arg1)) | uniqued); diff --git a/test/scope/bug_000008.cpp b/test/scope/bug_000008.cpp index de39398..58adf41 100644 --- a/test/scope/bug_000008.cpp +++ b/test/scope/bug_000008.cpp @@ -1,8 +1,9 @@ /*============================================================================= Copyright (c) 2003 Martin Wille Copyright (c) 2001-2007 Joel de Guzman + Copyright (c) 2015 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) =============================================================================*/ @@ -17,6 +18,10 @@ #include #include #include + // Testing problems in thread/future +//#include +//#include +//using boost::move_detail::is_copy_constructible; #include #if defined(DONT_HAVE_BOOST) \ diff --git a/test/scope/lambda_tests.cpp b/test/scope/lambda_tests.cpp index fb42dbc..fea7d31 100644 --- a/test/scope/lambda_tests.cpp +++ b/test/scope/lambda_tests.cpp @@ -16,7 +16,7 @@ #include #include #include -#include +//#include #include namespace boost { namespace phoenix diff --git a/test/scope/lambda_tests1.cpp b/test/scope/lambda_tests1.cpp new file mode 100644 index 0000000..c9fdde1 --- /dev/null +++ b/test/scope/lambda_tests1.cpp @@ -0,0 +1,108 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +//#include +#include + +struct zzz {}; + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + using boost::phoenix::local_names::_b; + // using boost::phoenix::placeholders::arg1; + + { + int x = 1; + int y = lambda[_1]()(x); + BOOST_TEST(x == y); + } + + { + int x = 1, y = 10; + BOOST_TEST( + (_1 + lambda[_1 + 2])(x)(y) == 1+10+2 + ); + BOOST_TEST( + (_1 + lambda[-_1])(x)(y) == 1+-10 + ); + } + + { + int x = 1, y = 10, z = 13; + BOOST_TEST( + lambda(_a = _1, _b = _2) + [ + _1 + _a + _b + ] + (x, z)(y) == x + y + z + ); + } + + { + int x = 4; + int y = 5; + lambda(_a = _1)[_a = 555](x)(); + BOOST_TEST(x == 555); + (void)y; + } + + { + int x = 1; + long x2 = 2; + short x3 = 3; + char const* y = "hello"; + zzz z; + + BOOST_TEST(lambda[_1](x)(y) == y); + BOOST_TEST(lambda(_a = _1)[_a](x)(y) == x); + BOOST_TEST(lambda(_a = _1)[lambda[_a]](x)(y)(z) == x); + BOOST_TEST(lambda(_a = _1)[lambda[_a + _1]](x)(y)(x) == 2); + BOOST_TEST(lambda(_a = _1)[lambda(_b = _1)[_a + _b + _1]](x)(x2)(x3) == 6); + } + + { + int x = 1, y = 10; + BOOST_TEST( + (_1 + lambda(_a = _1)[_a + _1 + 2])(x)(y) == 1+1+10+2 + ); + } + + { + int x = 1, y = 10; + BOOST_TEST( + ( + _1 + + lambda(_a = _1) + [ + _a + lambda[_a + 2] + ] + ) + (x)(y)(y) == 1+1+1+2 + ); + } + + return boost::report_errors(); +} diff --git a/test/scope/lambda_tests1a.cpp b/test/scope/lambda_tests1a.cpp new file mode 100644 index 0000000..938ba5b --- /dev/null +++ b/test/scope/lambda_tests1a.cpp @@ -0,0 +1,71 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +//#include +#include + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + using boost::phoenix::local_names::_b; + // using boost::phoenix::placeholders::arg1; + + { + int x = 1; + int y = lambda[_1]()(x); + BOOST_TEST(x == y); + } + + { + int x = 1, y = 10; + BOOST_TEST( + (_1 + lambda[_1 + 2])(x)(y) == 1+10+2 + ); + BOOST_TEST( + (_1 + lambda[-_1])(x)(y) == 1+-10 + ); + } + + { + int x = 1, y = 10, z = 13; + BOOST_TEST( + lambda(_a = _1, _b = _2) + [ + _1 + _a + _b + ] + (x, z)(y) == x + y + z + ); + } + + { + int x = 4; + int y = 5; + lambda(_a = _1)[_a = 555](x)(); + BOOST_TEST(x == 555); + (void)y; + } + + return boost::report_errors(); +} diff --git a/test/scope/lambda_tests1b.cpp b/test/scope/lambda_tests1b.cpp new file mode 100644 index 0000000..1c906c4 --- /dev/null +++ b/test/scope/lambda_tests1b.cpp @@ -0,0 +1,74 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +//#include +#include + +struct zzz {}; + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + //using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + using boost::phoenix::local_names::_b; + // using boost::phoenix::placeholders::arg1; + + + { + int x = 1; + long x2 = 2; + short x3 = 3; + char const* y = "hello"; + zzz z; + + BOOST_TEST(lambda[_1](x)(y) == y); + BOOST_TEST(lambda(_a = _1)[_a](x)(y) == x); + BOOST_TEST(lambda(_a = _1)[lambda[_a]](x)(y)(z) == x); + BOOST_TEST(lambda(_a = _1)[lambda[_a + _1]](x)(y)(x) == 2); + BOOST_TEST(lambda(_a = _1)[lambda(_b = _1)[_a + _b + _1]](x)(x2)(x3) == 6); + } + + { + int x = 1, y = 10; + BOOST_TEST( + (_1 + lambda(_a = _1)[_a + _1 + 2])(x)(y) == 1+1+10+2 + ); + } + + { + int x = 1, y = 10; + BOOST_TEST( + ( + _1 + + lambda(_a = _1) + [ + _a + lambda[_a + 2] + ] + ) + (x)(y)(y) == 1+1+1+2 + ); + } + + return boost::report_errors(); +} diff --git a/test/scope/lambda_tests1b1.cpp b/test/scope/lambda_tests1b1.cpp new file mode 100644 index 0000000..6151100 --- /dev/null +++ b/test/scope/lambda_tests1b1.cpp @@ -0,0 +1,75 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +//#include +#include + +struct zzz {}; + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + //using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + using boost::phoenix::local_names::_b; + // using boost::phoenix::placeholders::arg1; + + + { + int x = 1; + long x2 = 2; + short x3 = 3; + char const* y = "hello"; + zzz z; + + BOOST_TEST(lambda[_1](x)(y) == y); + BOOST_TEST(lambda(_a = _1)[_a](x)(y) == x); + BOOST_TEST(lambda(_a = _1)[lambda[_a]](x)(y)(z) == x); + BOOST_TEST(lambda(_a = _1)[lambda[_a + _1]](x)(y)(x) == 2); + BOOST_TEST(lambda(_a = _1)[lambda(_b = _1)[_a + _b + _1]](x)(x2)(x3) == 6); + } + + /* + { + int x = 1, y = 10; + BOOST_TEST( + (_1 + lambda(_a = _1)[_a + _1 + 2])(x)(y) == 1+1+10+2 + ); + } + + { + int x = 1, y = 10; + BOOST_TEST( + ( + _1 + + lambda(_a = _1) + [ + _a + lambda[_a + 2] + ] + ) + (x)(y)(y) == 1+1+1+2 + ); + } + */ + return boost::report_errors(); +} diff --git a/test/scope/lambda_tests1b1p.cpp b/test/scope/lambda_tests1b1p.cpp new file mode 100644 index 0000000..34e139c --- /dev/null +++ b/test/scope/lambda_tests1b1p.cpp @@ -0,0 +1,75 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +//#include +#include + +struct zzz {}; + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + //using boost::phoenix::arg_names::_2; + //using boost::phoenix::local_names::_a; + //using boost::phoenix::local_names::_b; + // using boost::phoenix::placeholders::arg1; + + + { + int x = 1; + //long x2 = 2; + //short x3 = 3; + char const* y = "hello"; + //zzz z; + + BOOST_TEST(lambda[_1](x)(y) == y); + //BOOST_TEST(lambda(_a = _1)[_a](x)(y) == x); + //BOOST_TEST(lambda(_a = _1)[lambda[_a]](x)(y)(z) == x); + //BOOST_TEST(lambda(_a = _1)[lambda[_a + _1]](x)(y)(x) == 2); + //BOOST_TEST(lambda(_a = _1)[lambda(_b = _1)[_a + _b + _1]](x)(x2)(x3) == 6); + } + + /* + { + int x = 1, y = 10; + BOOST_TEST( + (_1 + lambda(_a = _1)[_a + _1 + 2])(x)(y) == 1+1+10+2 + ); + } + + { + int x = 1, y = 10; + BOOST_TEST( + ( + _1 + + lambda(_a = _1) + [ + _a + lambda[_a + 2] + ] + ) + (x)(y)(y) == 1+1+1+2 + ); + } + */ + return boost::report_errors(); +} diff --git a/test/scope/lambda_tests1b1q.cpp b/test/scope/lambda_tests1b1q.cpp new file mode 100644 index 0000000..b4634e1 --- /dev/null +++ b/test/scope/lambda_tests1b1q.cpp @@ -0,0 +1,75 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +//#include +#include + +struct zzz {}; + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + //using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + //using boost::phoenix::local_names::_b; + // using boost::phoenix::placeholders::arg1; + + + { + int x = 1; + //long x2 = 2; + //short x3 = 3; + char const* y = "hello"; + //zzz z; + + //BOOST_TEST(lambda[_1](x)(y) == y); + BOOST_TEST(lambda(_a = _1)[_a](x)(y) == x); + //BOOST_TEST(lambda(_a = _1)[lambda[_a]](x)(y)(z) == x); + //BOOST_TEST(lambda(_a = _1)[lambda[_a + _1]](x)(y)(x) == 2); + //BOOST_TEST(lambda(_a = _1)[lambda(_b = _1)[_a + _b + _1]](x)(x2)(x3) == 6); + } + + /* + { + int x = 1, y = 10; + BOOST_TEST( + (_1 + lambda(_a = _1)[_a + _1 + 2])(x)(y) == 1+1+10+2 + ); + } + + { + int x = 1, y = 10; + BOOST_TEST( + ( + _1 + + lambda(_a = _1) + [ + _a + lambda[_a + 2] + ] + ) + (x)(y)(y) == 1+1+1+2 + ); + } + */ + return boost::report_errors(); +} diff --git a/test/scope/lambda_tests1b1r.cpp b/test/scope/lambda_tests1b1r.cpp new file mode 100644 index 0000000..22c10e8 --- /dev/null +++ b/test/scope/lambda_tests1b1r.cpp @@ -0,0 +1,79 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +//#include +#include + +struct zzz {}; + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + //using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + //using boost::phoenix::local_names::_b; + // using boost::phoenix::placeholders::arg1; + + + { + int x = 1; + //long x2 = 2; + //short x3 = 3; + char const* y = "hello"; + zzz z; + //BOOST_TEST(lambda[_1](x)(y) == y); + //BOOST_TEST(lambda(_a = _1)[_a](x)(y) == x); +#if defined(BOOST_MSVC) && (BOOST_MSVC >= 1700) + int xx = x; + BOOST_TEST(lambda(_a = _1)[_1 = lambda[_a + 0]](x)(y)() == xx); +#else + BOOST_TEST(lambda(_a = _1)[lambda[_a]](x)(y)(z) == x); +#endif + //BOOST_TEST(lambda(_a = _1)[lambda[_a + _1]](x)(y)(x) == 2); + //BOOST_TEST(lambda(_a = _1)[lambda(_b = _1)[_a + _b + _1]](x)(x2)(x3) == 6); + } + + /* + { + int x = 1, y = 10; + BOOST_TEST( + (_1 + lambda(_a = _1)[_a + _1 + 2])(x)(y) == 1+1+10+2 + ); + } + + { + int x = 1, y = 10; + BOOST_TEST( + ( + _1 + + lambda(_a = _1) + [ + _a + lambda[_a + 2] + ] + ) + (x)(y)(y) == 1+1+1+2 + ); + } + */ + return boost::report_errors(); +} diff --git a/test/scope/lambda_tests1b1s.cpp b/test/scope/lambda_tests1b1s.cpp new file mode 100644 index 0000000..ee13e9f --- /dev/null +++ b/test/scope/lambda_tests1b1s.cpp @@ -0,0 +1,75 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +//#include +#include + +struct zzz {}; + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + //using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + //using boost::phoenix::local_names::_b; + // using boost::phoenix::placeholders::arg1; + + + { + int x = 1; + //long x2 = 2; + //short x3 = 3; + char const* y = "hello"; + //zzz z; + + //BOOST_TEST(lambda[_1](x)(y) == y); + //BOOST_TEST(lambda(_a = _1)[_a](x)(y) == x); + //BOOST_TEST(lambda(_a = _1)[lambda[_a]](x)(y)(z) == x); + BOOST_TEST(lambda(_a = _1)[lambda[_a + _1]](x)(y)(x) == 2); + //BOOST_TEST(lambda(_a = _1)[lambda(_b = _1)[_a + _b + _1]](x)(x2)(x3) == 6); + } + + /* + { + int x = 1, y = 10; + BOOST_TEST( + (_1 + lambda(_a = _1)[_a + _1 + 2])(x)(y) == 1+1+10+2 + ); + } + + { + int x = 1, y = 10; + BOOST_TEST( + ( + _1 + + lambda(_a = _1) + [ + _a + lambda[_a + 2] + ] + ) + (x)(y)(y) == 1+1+1+2 + ); + } + */ + return boost::report_errors(); +} diff --git a/test/scope/lambda_tests1b1t.cpp b/test/scope/lambda_tests1b1t.cpp new file mode 100644 index 0000000..48fc753 --- /dev/null +++ b/test/scope/lambda_tests1b1t.cpp @@ -0,0 +1,75 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +//#include +#include + +struct zzz {}; + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + //using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + using boost::phoenix::local_names::_b; + // using boost::phoenix::placeholders::arg1; + + + { + int x = 1; + long x2 = 2; + short x3 = 3; + //char const* y = "hello"; + //zzz z; + + //BOOST_TEST(lambda[_1](x)(y) == y); + //BOOST_TEST(lambda(_a = _1)[_a](x)(y) == x); + //BOOST_TEST(lambda(_a = _1)[lambda[_a]](x)(y)(z) == x); + //BOOST_TEST(lambda(_a = _1)[lambda[_a + _1]](x)(y)(x) == 2); + BOOST_TEST(lambda(_a = _1)[lambda(_b = _1)[_a + _b + _1]](x)(x2)(x3) == 6); + } + + /* + { + int x = 1, y = 10; + BOOST_TEST( + (_1 + lambda(_a = _1)[_a + _1 + 2])(x)(y) == 1+1+10+2 + ); + } + + { + int x = 1, y = 10; + BOOST_TEST( + ( + _1 + + lambda(_a = _1) + [ + _a + lambda[_a + 2] + ] + ) + (x)(y)(y) == 1+1+1+2 + ); + } + */ + return boost::report_errors(); +} diff --git a/test/scope/lambda_tests1b2.cpp b/test/scope/lambda_tests1b2.cpp new file mode 100644 index 0000000..d79468d --- /dev/null +++ b/test/scope/lambda_tests1b2.cpp @@ -0,0 +1,74 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +//#include +#include + +struct zzz {}; + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + //using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + //using boost::phoenix::local_names::_b; + // using boost::phoenix::placeholders::arg1; + + /* + { + int x = 1; + long x2 = 2; + short x3 = 3; + char const* y = "hello"; + zzz z; + + BOOST_TEST(lambda[_1](x)(y) == y); + BOOST_TEST(lambda(_a = _1)[_a](x)(y) == x); + BOOST_TEST(lambda(_a = _1)[lambda[_a]](x)(y)(z) == x); + BOOST_TEST(lambda(_a = _1)[lambda[_a + _1]](x)(y)(x) == 2); + BOOST_TEST(lambda(_a = _1)[lambda(_b = _1)[_a + _b + _1]](x)(x2)(x3) == 6); + } + */ + { + int x = 1, y = 10; + BOOST_TEST( + (_1 + lambda(_a = _1)[_a + _1 + 2])(x)(y) == 1+1+10+2 + ); + } + + { + int x = 1, y = 10; + BOOST_TEST( + ( + _1 + + lambda(_a = _1) + [ + _a + lambda[_a + 2] + ] + ) + (x)(y)(y) == 1+1+1+2 + ); + } + + return boost::report_errors(); +} diff --git a/test/scope/lambda_tests1b2p.cpp b/test/scope/lambda_tests1b2p.cpp new file mode 100644 index 0000000..8600bc2 --- /dev/null +++ b/test/scope/lambda_tests1b2p.cpp @@ -0,0 +1,74 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +//#include +#include + +struct zzz {}; + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + //using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + //using boost::phoenix::local_names::_b; + // using boost::phoenix::placeholders::arg1; + + /* + { + int x = 1; + long x2 = 2; + short x3 = 3; + char const* y = "hello"; + zzz z; + + BOOST_TEST(lambda[_1](x)(y) == y); + BOOST_TEST(lambda(_a = _1)[_a](x)(y) == x); + BOOST_TEST(lambda(_a = _1)[lambda[_a]](x)(y)(z) == x); + BOOST_TEST(lambda(_a = _1)[lambda[_a + _1]](x)(y)(x) == 2); + BOOST_TEST(lambda(_a = _1)[lambda(_b = _1)[_a + _b + _1]](x)(x2)(x3) == 6); + } + */ + { + int x = 1, y = 10; + BOOST_TEST( + (_1 + _1 + lambda[_1 + 2])(x)(y) == 1+1+10+2 + ); + } + /* + { + int x = 1, y = 10; + BOOST_TEST( + ( + _1 + + lambda(_a = _1) + [ + _a + lambda[_a + 2] + ] + ) + (x)(y)(y) == 1+1+1+2 + ); + } + */ + return boost::report_errors(); +} diff --git a/test/scope/lambda_tests1b2q.cpp b/test/scope/lambda_tests1b2q.cpp new file mode 100644 index 0000000..f610a1f --- /dev/null +++ b/test/scope/lambda_tests1b2q.cpp @@ -0,0 +1,74 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +//#include +#include + +struct zzz {}; + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + //using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + //using boost::phoenix::local_names::_b; + // using boost::phoenix::placeholders::arg1; + + /* + { + int x = 1; + long x2 = 2; + short x3 = 3; + char const* y = "hello"; + zzz z; + + BOOST_TEST(lambda[_1](x)(y) == y); + BOOST_TEST(lambda(_a = _1)[_a](x)(y) == x); + BOOST_TEST(lambda(_a = _1)[lambda[_a]](x)(y)(z) == x); + BOOST_TEST(lambda(_a = _1)[lambda[_a + _1]](x)(y)(x) == 2); + BOOST_TEST(lambda(_a = _1)[lambda(_b = _1)[_a + _b + _1]](x)(x2)(x3) == 6); + } + */ + { + int x = 1, y = 10; + BOOST_TEST( + (_1 + lambda(_a = _1)[_a + _1 + 2])(x)(y) == 1+1+10+2 + ); + } + /* + { + int x = 1, y = 10; + BOOST_TEST( + ( + _1 + + lambda(_a = _1) + [ + _a + lambda[_a + 2] + ] + ) + (x)(y)(y) == 1+1+1+2 + ); + } + */ + return boost::report_errors(); +} diff --git a/test/scope/lambda_tests1b2r.cpp b/test/scope/lambda_tests1b2r.cpp new file mode 100644 index 0000000..4505628 --- /dev/null +++ b/test/scope/lambda_tests1b2r.cpp @@ -0,0 +1,89 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +//#include +#include + +struct zzz {}; + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + using boost::phoenix::arg_names::_2; + using boost::phoenix::arg_names::_3; + using boost::phoenix::local_names::_a; + //using boost::phoenix::local_names::_b; + // using boost::phoenix::placeholders::arg1; + + /* + { + int x = 1; + long x2 = 2; + short x3 = 3; + char const* y = "hello"; + zzz z; + + BOOST_TEST(lambda[_1](x)(y) == y); + BOOST_TEST(lambda(_a = _1)[_a](x)(y) == x); + BOOST_TEST(lambda(_a = _1)[lambda[_a]](x)(y)(z) == x); + BOOST_TEST(lambda(_a = _1)[lambda[_a + _1]](x)(y)(x) == 2); + BOOST_TEST(lambda(_a = _1)[lambda(_b = _1)[_a + _b + _1]](x)(x2)(x3) == 6); + } + */ + /*{ + int x = 1, y = 10; + BOOST_TEST( + (_1 + lambda(_a = _1)[_a + _1 + 2])(x)(y) == 1+1+10+2 + ); + } + */ + { + int x = 1, y = 10; +#if defined(BOOST_MSVC) && (BOOST_MSVC >= 1700) + int z; + BOOST_TEST( + ( + _3 = _1 + + lambda(_a = _1) + [ + _a + lambda[_a + 2] + ] + ) + (x)(y)(z) == 1+1+1+2 + ); +#else + BOOST_TEST( + ( + _1 + + lambda(_a = _1) + [ + _a + lambda[_a + 2] + ] + ) + (x)(y)(y) == 1+1+1+2 + ); +#endif + } + + return boost::report_errors(); +} diff --git a/test/scope/lambda_tests2.cpp b/test/scope/lambda_tests2.cpp new file mode 100644 index 0000000..2f80b0f --- /dev/null +++ b/test/scope/lambda_tests2.cpp @@ -0,0 +1,107 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +//#include +#include + +namespace boost { namespace phoenix +{ + struct for_each_impl + { + template + struct result; + + template + struct result + { + typedef void type; + }; + + template + void operator()(C& c, F f) const + { + std::for_each(c.begin(), c.end(), f); + } + }; + + function const for_each = for_each_impl(); + + struct push_back_impl + { + template + struct result; + + template + struct result + { + typedef void type; + }; + + template + void operator()(C& c, T& x) const + { + c.push_back(x); + } + }; + + function const push_back = push_back_impl(); +}} + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + // using boost::phoenix::local_names::_b; + using boost::phoenix::placeholders::arg1; + + { + using boost::phoenix::for_each; + //#if (!defined(BOOST_MSVC) || (BOOST_MSVC < 1800)) + int init[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; + std::vector v(init, init+10); + + int x = 0; + for_each(_1, lambda(_a = _2)[_a += _1])(v, x); + BOOST_TEST(x == 55); + //#endif + } + + { + using boost::phoenix::for_each; + using boost::phoenix::push_back; + + //#if (!defined(BOOST_MSVC) || (BOOST_MSVC < 1800)) + int x = 10; + std::vector > v(10); + for_each(_1, lambda(_a = _2)[push_back(_1, _a)])(v, x); + + int y = 0; + for_each(arg1, lambda[ref(y) += _1[0]])(v); + BOOST_TEST(y == 100); + //#endif + } + + return boost::report_errors(); +} + diff --git a/test/scope/lambda_tests2a.cpp b/test/scope/lambda_tests2a.cpp new file mode 100644 index 0000000..c8b8fb5 --- /dev/null +++ b/test/scope/lambda_tests2a.cpp @@ -0,0 +1,66 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +//#include +#include +#include +#include + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + // using boost::phoenix::local_names::_b; + using boost::phoenix::placeholders::arg1; + + { + using boost::phoenix::for_each; + //#if (!defined(BOOST_MSVC) || (BOOST_MSVC < 1800)) + int init[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; + std::vector v(init, init+10); + + int x = 0; + for_each(_1, lambda(_a = _2)[_a += _1])(v, x); + BOOST_TEST(x == 55); + //#endif + } + + { + using boost::phoenix::for_each; + using boost::phoenix::push_back; + + //#if (!defined(BOOST_MSVC) || (BOOST_MSVC < 1800)) + int x = 10; + std::vector > v(10); + for_each(_1, lambda(_a = _2)[push_back(_1, _a)])(v, x); + + int y = 0; + for_each(arg1, lambda[ref(y) += _1[0]])(v); + BOOST_TEST(y == 100); + //#endif + } + + return boost::report_errors(); +} + diff --git a/test/scope/lambda_tests3.cpp b/test/scope/lambda_tests3.cpp new file mode 100644 index 0000000..0e7df76 --- /dev/null +++ b/test/scope/lambda_tests3.cpp @@ -0,0 +1,71 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + using boost::phoenix::local_names::_b; + // using boost::phoenix::placeholders::arg1; + + + { + int x = 1, y = 10, z = 13; + + BOOST_TEST( + lambda(_a = _1, _b = _2) + [ + _1 + _a + _b + ] + (x, z)(y) == x + y + z + ); + } + + { + { + // $$$ Fixme. This should not be failing $$$ + //int x = (let(_a = lambda[val(1)])[_a])()(); + //BOOST_TEST(x == 1); + } + + { + // int x = (let(_a = lambda[val(1)])[bind(_a)])(); + // BOOST_TEST(x == 1); + // Take this out too, I am not sure about this. + } + } + + { + int i = 0; + int j = 2; + BOOST_TEST(lambda[let(_a = _1)[_a = _2]]()(i, j) == j); + BOOST_TEST(i == j); + } + + + return boost::report_errors(); +} diff --git a/test/scope/lambda_tests3a.cpp b/test/scope/lambda_tests3a.cpp new file mode 100644 index 0000000..20ff470 --- /dev/null +++ b/test/scope/lambda_tests3a.cpp @@ -0,0 +1,75 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + using boost::phoenix::local_names::_b; + // using boost::phoenix::placeholders::arg1; + + /* + { + int x = 1, y = 10, z = 13; + + BOOST_TEST( + lambda(_a = _1, _b = _2) + [ + _1 + _a + _b + ] + (x, z)(y) == x + y + z + ); + } + */ + { + { + // $$$ Fixme. This should not be failing $$$ + //int x = (let(_a = lambda[val(1)])[_a])()(); + //BOOST_TEST(x == 1); + } + + { +#if defined(BOOST_GCC_VERSION) && (BOOST_GCC_VERSION >= 50000) && __OPTIMIZE__ + int x = (let(_a = _1)[bind(_a)])(lambda[val(1)]()); +#else + int x = (let(_a = lambda[val(1)])[bind(_a)])(); +#endif + BOOST_TEST(x == 1); + // Take this out too, I am not sure about this. + } + } + /* + { + int i = 0; + int j = 2; + BOOST_TEST(lambda[let(_a = _1)[_a = _2]]()(i, j) == j); + BOOST_TEST(i == j); + } + */ + + return boost::report_errors(); +} diff --git a/test/scope/lambda_tests3a1.cpp b/test/scope/lambda_tests3a1.cpp new file mode 100644 index 0000000..69525e3 --- /dev/null +++ b/test/scope/lambda_tests3a1.cpp @@ -0,0 +1,71 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + //using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + //using boost::phoenix::local_names::_b; + // using boost::phoenix::placeholders::arg1; + + /* + { + int x = 1, y = 10, z = 13; + + BOOST_TEST( + lambda(_a = _1, _b = _2) + [ + _1 + _a + _b + ] + (x, z)(y) == x + y + z + ); + } + */ + { + { + // $$$ Fixme. This should not be failing $$$ + //int x = (let(_a = lambda[val(1)])[_a])()(); + //BOOST_TEST(x == 1); + } + + { + int x = (let(_a = _1)[bind(_a)])(lambda[val(1)]()); + BOOST_TEST(x == 1); + // Take this out too, I am not sure about this. + } + } + /* + { + int i = 0; + int j = 2; + BOOST_TEST(lambda[let(_a = _1)[_a = _2]]()(i, j) == j); + BOOST_TEST(i == j); + } + */ + + return boost::report_errors(); +} diff --git a/test/scope/lambda_tests3b.cpp b/test/scope/lambda_tests3b.cpp new file mode 100644 index 0000000..1d60580 --- /dev/null +++ b/test/scope/lambda_tests3b.cpp @@ -0,0 +1,72 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include + +int +main() +{ + using boost::phoenix::lambda; + using boost::phoenix::let; + using boost::phoenix::ref; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + // using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + //using boost::phoenix::local_names::_b; + // using boost::phoenix::placeholders::arg1; + + /* + { + int x = 1, y = 10, z = 13; + + BOOST_TEST( + lambda(_a = _1, _b = _2) + [ + _1 + _a + _b + ] + (x, z)(y) == x + y + z + ); + } + */ + { + { + // $$$ Fixme. This should not be failing $$$ + //int x = (let(_a = lambda[val(1)])[_a])()(); + //BOOST_TEST(x == 1); + } + + { + //int x = (let(_a = lambda[val(1)])[bind(_a)])(); + int x = (let(_a = _1)[bind(_a)])(lambda[val(1)]()); + BOOST_TEST(x == 1); + // Take this out too, I am not sure about this. + } + } + /* + { + int i = 0; + int j = 2; + BOOST_TEST(lambda[let(_a = _1)[_a = _2]]()(i, j) == j); + BOOST_TEST(i == j); + } + */ + + return boost::report_errors(); +} diff --git a/test/scope/let_tests.cpp b/test/scope/let_tests.cpp index 8917041..5a8424d 100644 --- a/test/scope/let_tests.cpp +++ b/test/scope/let_tests.cpp @@ -109,9 +109,9 @@ main() { int x = 999; - + /* BOOST_TEST( - let(_x = val(_1)) // _x holds x by value + let(_x = val(_1)) // _x holds x by value [ _x += 888 ] @@ -119,9 +119,9 @@ main() ); BOOST_TEST(x == 999); - + */ BOOST_TEST( - let(_x = val(_1)) // _x holds x by value + let(_x = val(_1)) // _x holds x by value [ val(_x += 888) ] @@ -152,8 +152,11 @@ main() { // show that we can return a local from an outer scope int y = 0; +#if defined(BOOST_GCC_VERSION) && (BOOST_GCC_VERSION >= 50000) && __OPTIMIZE__ + int x = (let(_a = _2)[let(_b = _1)[ _a ]])(y,1); +#else int x = (let(_a = 1)[let(_b = _1)[ _a ]])(y); - +#endif BOOST_TEST(x == 1); } diff --git a/test/scope/let_tests_113.cpp b/test/scope/let_tests_113.cpp new file mode 100644 index 0000000..c8ebea1 --- /dev/null +++ b/test/scope/let_tests_113.cpp @@ -0,0 +1,204 @@ +/*============================================================================= + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace fusion = boost::fusion; +namespace mpl = boost::mpl; + +int +main() +{ + using boost::phoenix::let; + using boost::phoenix::val; + using boost::phoenix::ref; + using boost::phoenix::arg_names::_1; + //using boost::phoenix::arg_names::_2; + //using boost::phoenix::arg_names::_3; + //using boost::phoenix::local_names::_a; + //using boost::phoenix::local_names::_b; + //using boost::phoenix::local_names::_c; + //using boost::phoenix::local_names::_d; + //using boost::phoenix::local_names::_e; + using boost::phoenix::local_names::_x; + //using boost::phoenix::local_names::_y; + //using boost::phoenix::local_names::_z; + //using boost::phoenix::placeholders::arg1; + /* + { + int x = 1; + BOOST_TEST( + let(_a = _1) + [ + _a + ] + (x) == x + ) + ; + } + + { + int x = 1, y = 10; + BOOST_TEST( + let(_a = _1, _b = _2) + [ + _a + _b + ] + (x, y) == x + y + ); + } + + { + int x = 1, y = 10, z = 13; + BOOST_TEST( + let(_x = _1, _y = _2) + [ + let(_z = _3) + [ + _x + _y + _z + ] + ] + (x, y, z) == x + y + z + ); + } + + { + int x = 1, y = 10; + BOOST_TEST( + let(_x = _1) + [ + _x + + let(_x = _2) + [ + -_x + ] + ] + (x, y) == x + -y + ); + } + + { + int x = 999; + BOOST_TEST( + let(_x = _1) // _x is a reference to x + [ + _x += 888 + ] + (x) == 999 + 888 + ); + + BOOST_TEST(x == 888 + 999); + } + */ + { + int x = 999; + + BOOST_TEST( + let(_x = val(_1)) // _x holds x by value + [ + val(_x += 888) // so use value here too. + ] + (x) == x + 888 + ); + + BOOST_TEST(x == 999); + /* + BOOST_TEST( + let(_x = ref(_1)) // _x holds x by reference + [ + _x += 888 + ] + (x) == x + 888 + ); + + BOOST_TEST(x == 999); + */ + + BOOST_TEST( + let( _x = _1 ) // _x holds x by reference + [ + _x += 888 + ] + (x) == 999 + 888 + ); + + BOOST_TEST(x == 888 + 999); + } + /* + { + BOOST_TEST( + let(_a = 1, _b = 2, _c = 3, _d = 4, _e = 5) + [ + _a + _b + _c + _d + _e + ] + () == 1 + 2 + 3 + 4 + 5 + ); + } + +#ifdef PHOENIX_SHOULD_NOT_COMPILE_TEST + { + // disallow this: + int i; + (_a + _b)(i); + } +#endif + + { + // show that we can return a local from an outer scope + int y = 0; + int x = (let(_a = 1)[let(_b = _1)[ _a ]])(y); + + BOOST_TEST(x == 1); + } + + { + // show that this code returns an lvalue + int i = 1; + let(_a = arg1)[ _a ](i)++; + BOOST_TEST(i == 2); + } + + { + // show that what you put in is what you get out + int i = 1; + int& j = let(_a = arg1)[_a](i); + BOOST_TEST(&i == &j); + } + + { + using boost::phoenix::at_c; + + boost::fusion::tuple t = boost::fusion::make_tuple(0, 1); + int i = let(_a = at_c<0>(_1))[_a](t); + + BOOST_TEST( i == 0 ); + } + + { + int i = 0; + let(_a = _1)[_a = _2](i, 2); + BOOST_TEST(i == 2); + } + */ + return boost::report_errors(); +} + diff --git a/test/scope/let_tests_113a.cpp b/test/scope/let_tests_113a.cpp new file mode 100644 index 0000000..6d84e48 --- /dev/null +++ b/test/scope/let_tests_113a.cpp @@ -0,0 +1,192 @@ +/*============================================================================= + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace fusion = boost::fusion; +namespace mpl = boost::mpl; + +int +main() +{ + using boost::phoenix::let; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + //using boost::phoenix::arg_names::_2; + //using boost::phoenix::arg_names::_3; + //using boost::phoenix::local_names::_a; + //using boost::phoenix::local_names::_b; + //using boost::phoenix::local_names::_c; + //using boost::phoenix::local_names::_d; + //using boost::phoenix::local_names::_e; + using boost::phoenix::local_names::_x; + //using boost::phoenix::local_names::_y; + //using boost::phoenix::local_names::_z; + //using boost::phoenix::placeholders::arg1; + /* + { + int x = 1; + BOOST_TEST( + let(_a = _1) + [ + _a + ] + (x) == x + ) + ; + } + + { + int x = 1, y = 10; + BOOST_TEST( + let(_a = _1, _b = _2) + [ + _a + _b + ] + (x, y) == x + y + ); + } + + { + int x = 1, y = 10, z = 13; + BOOST_TEST( + let(_x = _1, _y = _2) + [ + let(_z = _3) + [ + _x + _y + _z + ] + ] + (x, y, z) == x + y + z + ); + } + + { + int x = 1, y = 10; + BOOST_TEST( + let(_x = _1) + [ + _x + + let(_x = _2) + [ + -_x + ] + ] + (x, y) == x + -y + ); + } + + { + int x = 999; + BOOST_TEST( + let(_x = _1) // _x is a reference to x + [ + _x += 888 + ] + (x) == 999 + 888 + ); + + BOOST_TEST(x == 888 + 999); + } + */ + { + int x = 999; + + BOOST_TEST( + let(_x = val(_1)) // _x holds x by value + [ + val(_x += 888) + ] + (x) == x + 888 + ); + + BOOST_TEST(x == 999); + /* + BOOST_TEST( + let(_x = val(_1)) // _x holds x by value + [ + val(_x += 888) + ] + (x) == x + 888 + ); + + BOOST_TEST(x == 999); */ + } + /* + { + BOOST_TEST( + let(_a = 1, _b = 2, _c = 3, _d = 4, _e = 5) + [ + _a + _b + _c + _d + _e + ] + () == 1 + 2 + 3 + 4 + 5 + ); + } + +#ifdef PHOENIX_SHOULD_NOT_COMPILE_TEST + { + // disallow this: + int i; + (_a + _b)(i); + } +#endif + + { + // show that we can return a local from an outer scope + int y = 0; + int x = (let(_a = 1)[let(_b = _1)[ _a ]])(y); + + BOOST_TEST(x == 1); + } + + { + // show that this code returns an lvalue + int i = 1; + let(_a = arg1)[ _a ](i)++; + BOOST_TEST(i == 2); + } + + { + // show that what you put in is what you get out + int i = 1; + int& j = let(_a = arg1)[_a](i); + BOOST_TEST(&i == &j); + } + + { + using boost::phoenix::at_c; + + boost::fusion::tuple t = boost::fusion::make_tuple(0, 1); + int i = let(_a = at_c<0>(_1))[_a](t); + + BOOST_TEST( i == 0 ); + } + + { + int i = 0; + let(_a = _1)[_a = _2](i, 2); + BOOST_TEST(i == 2); + } + */ + return boost::report_errors(); +} + diff --git a/test/scope/let_tests_157.cpp b/test/scope/let_tests_157.cpp new file mode 100644 index 0000000..41211d2 --- /dev/null +++ b/test/scope/let_tests_157.cpp @@ -0,0 +1,194 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace fusion = boost::fusion; +namespace mpl = boost::mpl; + +int +main() +{ + using boost::phoenix::let; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + using boost::phoenix::arg_names::_2; + //using boost::phoenix::arg_names::_3; + using boost::phoenix::local_names::_a; + using boost::phoenix::local_names::_b; + //using boost::phoenix::local_names::_c; + //using boost::phoenix::local_names::_d; + //using boost::phoenix::local_names::_e; + //using boost::phoenix::local_names::_x; + //using boost::phoenix::local_names::_y; + //using boost::phoenix::local_names::_z; + //using boost::phoenix::placeholders::arg1; + /* + { + int x = 1; + BOOST_TEST( + let(_a = _1) + [ + _a + ] + (x) == x + ) + ; + } + + { + int x = 1, y = 10; + BOOST_TEST( + let(_a = _1, _b = _2) + [ + _a + _b + ] + (x, y) == x + y + ); + } + + { + int x = 1, y = 10, z = 13; + BOOST_TEST( + let(_x = _1, _y = _2) + [ + let(_z = _3) + [ + _x + _y + _z + ] + ] + (x, y, z) == x + y + z + ); + } + + { + int x = 1, y = 10; + BOOST_TEST( + let(_x = _1) + [ + _x + + let(_x = _2) + [ + -_x + ] + ] + (x, y) == x + -y + ); + } + + { + int x = 999; + BOOST_TEST( + let(_x = _1) // _x is a reference to x + [ + _x += 888 + ] + (x) == 999 + 888 + ); + + BOOST_TEST(x == 888 + 999); + } + + { + int x = 999; + + BOOST_TEST( + let(_x = val(_1)) // _x holds x by value + [ + _x += 888 + ] + (x) == x + 888 + ); + + BOOST_TEST(x == 999); + + BOOST_TEST( + let(_x = val(_1)) // _x holds x by value + [ + val(_x += 888) + ] + (x) == x + 888 + ); + + BOOST_TEST(x == 999); + } + + { + BOOST_TEST( + let(_a = 1, _b = 2, _c = 3, _d = 4, _e = 5) + [ + _a + _b + _c + _d + _e + ] + () == 1 + 2 + 3 + 4 + 5 + ); + } + +#ifdef PHOENIX_SHOULD_NOT_COMPILE_TEST + { + // disallow this: + int i; + (_a + _b)(i); + } +#endif + */ + { + // show that we can return a local from an outer scope + int y = 0; +#if defined(BOOST_GCC_VERSION) && (BOOST_GCC_VERSION >= 50000) && __OPTIMIZE__ + int x = (let(_a = _2)[let(_b = _1)[ _a ]])(y,1); +#else + int x = (let(_a = 1)[let(_b = _1)[ _a ]])(y); +#endif + BOOST_TEST(x == 1); + } + /* + { + // show that this code returns an lvalue + int i = 1; + let(_a = arg1)[ _a ](i)++; + BOOST_TEST(i == 2); + } + + { + // show that what you put in is what you get out + int i = 1; + int& j = let(_a = arg1)[_a](i); + BOOST_TEST(&i == &j); + } + + { + using boost::phoenix::at_c; + + boost::fusion::tuple t = boost::fusion::make_tuple(0, 1); + int i = let(_a = at_c<0>(_1))[_a](t); + + BOOST_TEST( i == 0 ); + } + + { + int i = 0; + let(_a = _1)[_a = _2](i, 2); + BOOST_TEST(i == 2); + } + */ + return boost::report_errors(); +} + diff --git a/test/scope/let_tests_157a.cpp b/test/scope/let_tests_157a.cpp new file mode 100644 index 0000000..83dd33a --- /dev/null +++ b/test/scope/let_tests_157a.cpp @@ -0,0 +1,191 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace fusion = boost::fusion; +namespace mpl = boost::mpl; + +int +main() +{ + using boost::phoenix::let; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + using boost::phoenix::arg_names::_2; + //using boost::phoenix::arg_names::_3; + using boost::phoenix::local_names::_a; + using boost::phoenix::local_names::_b; + //using boost::phoenix::local_names::_c; + //using boost::phoenix::local_names::_d; + //using boost::phoenix::local_names::_e; + //using boost::phoenix::local_names::_x; + //using boost::phoenix::local_names::_y; + //using boost::phoenix::local_names::_z; + //using boost::phoenix::placeholders::arg1; + /* + { + int x = 1; + BOOST_TEST( + let(_a = _1) + [ + _a + ] + (x) == x + ) + ; + } + + { + int x = 1, y = 10; + BOOST_TEST( + let(_a = _1, _b = _2) + [ + _a + _b + ] + (x, y) == x + y + ); + } + + { + int x = 1, y = 10, z = 13; + BOOST_TEST( + let(_x = _1, _y = _2) + [ + let(_z = _3) + [ + _x + _y + _z + ] + ] + (x, y, z) == x + y + z + ); + } + + { + int x = 1, y = 10; + BOOST_TEST( + let(_x = _1) + [ + _x + + let(_x = _2) + [ + -_x + ] + ] + (x, y) == x + -y + ); + } + + { + int x = 999; + BOOST_TEST( + let(_x = _1) // _x is a reference to x + [ + _x += 888 + ] + (x) == 999 + 888 + ); + + BOOST_TEST(x == 888 + 999); + } + + { + int x = 999; + + BOOST_TEST( + let(_x = val(_1)) // _x holds x by value + [ + _x += 888 + ] + (x) == x + 888 + ); + + BOOST_TEST(x == 999); + + BOOST_TEST( + let(_x = val(_1)) // _x holds x by value + [ + val(_x += 888) + ] + (x) == x + 888 + ); + + BOOST_TEST(x == 999); + } + + { + BOOST_TEST( + let(_a = 1, _b = 2, _c = 3, _d = 4, _e = 5) + [ + _a + _b + _c + _d + _e + ] + () == 1 + 2 + 3 + 4 + 5 + ); + } + +#ifdef PHOENIX_SHOULD_NOT_COMPILE_TEST + { + // disallow this: + int i; + (_a + _b)(i); + } +#endif + */ + { + // show that we can return a local from an outer scope + int y = 0; + int x = (let(_a = _2)[let(_b = _1)[ _a ]])(y,1); + + BOOST_TEST(x == 1); + } + /* + { + // show that this code returns an lvalue + int i = 1; + let(_a = arg1)[ _a ](i)++; + BOOST_TEST(i == 2); + } + + { + // show that what you put in is what you get out + int i = 1; + int& j = let(_a = arg1)[_a](i); + BOOST_TEST(&i == &j); + } + + { + using boost::phoenix::at_c; + + boost::fusion::tuple t = boost::fusion::make_tuple(0, 1); + int i = let(_a = at_c<0>(_1))[_a](t); + + BOOST_TEST( i == 0 ); + } + + { + int i = 0; + let(_a = _1)[_a = _2](i, 2); + BOOST_TEST(i == 2); + } + */ + return boost::report_errors(); +} + diff --git a/test/scope/let_tests_rest.cpp b/test/scope/let_tests_rest.cpp new file mode 100644 index 0000000..9200d31 --- /dev/null +++ b/test/scope/let_tests_rest.cpp @@ -0,0 +1,192 @@ +/*============================================================================= + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace fusion = boost::fusion; +namespace mpl = boost::mpl; + +int +main() +{ + using boost::phoenix::let; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + using boost::phoenix::arg_names::_2; + using boost::phoenix::arg_names::_3; + using boost::phoenix::local_names::_a; + using boost::phoenix::local_names::_b; + using boost::phoenix::local_names::_c; + using boost::phoenix::local_names::_d; + using boost::phoenix::local_names::_e; + using boost::phoenix::local_names::_x; + using boost::phoenix::local_names::_y; + using boost::phoenix::local_names::_z; + using boost::phoenix::placeholders::arg1; + + { + int x = 1; + BOOST_TEST( + let(_a = _1) + [ + _a + ] + (x) == x + ) + ; + } + + { + int x = 1, y = 10; + BOOST_TEST( + let(_a = _1, _b = _2) + [ + _a + _b + ] + (x, y) == x + y + ); + } + + { + int x = 1, y = 10, z = 13; + BOOST_TEST( + let(_x = _1, _y = _2) + [ + let(_z = _3) + [ + _x + _y + _z + ] + ] + (x, y, z) == x + y + z + ); + } + + { + int x = 1, y = 10; + BOOST_TEST( + let(_x = _1) + [ + _x + + let(_x = _2) + [ + -_x + ] + ] + (x, y) == x + -y + ); + } + + { + int x = 999; + BOOST_TEST( + let(_x = _1) // _x is a reference to x + [ + _x += 888 + ] + (x) == 999 + 888 + ); + + BOOST_TEST(x == 888 + 999); + } + /* + { + int x = 999; + + BOOST_TEST( + let(_x = val(_1)) // _x holds x by value + [ + _x += 888 + ] + (x) == x + 888 + ); + + BOOST_TEST(x == 999); + + BOOST_TEST( + let(_x = val(_1)) // _x holds x by value + [ + val(_x += 888) + ] + (x) == x + 888 + ); + + BOOST_TEST(x == 999); + } + */ + { + BOOST_TEST( + let(_a = 1, _b = 2, _c = 3, _d = 4, _e = 5) + [ + _a + _b + _c + _d + _e + ] + () == 1 + 2 + 3 + 4 + 5 + ); + } + +#ifdef PHOENIX_SHOULD_NOT_COMPILE_TEST + { + // disallow this: + int i; + (_a + _b)(i); + } +#endif + /* + { + // show that we can return a local from an outer scope + int y = 0; + int x = (let(_a = 1)[let(_b = _1)[ _a ]])(y); + + BOOST_TEST(x == 1); + } + */ + { + // show that this code returns an lvalue + int i = 1; + let(_a = arg1)[ _a ](i)++; + BOOST_TEST(i == 2); + } + + { + // show that what you put in is what you get out + int i = 1; + int& j = let(_a = arg1)[_a](i); + BOOST_TEST(&i == &j); + } + + { + using boost::phoenix::at_c; + + boost::fusion::tuple t = boost::fusion::make_tuple(0, 1); + int i = let(_a = at_c<0>(_1))[_a](t); + + BOOST_TEST( i == 0 ); + } + + { + int i = 0; + let(_a = _1)[_a = _2](i, 2); + BOOST_TEST(i == 2); + } + + return boost::report_errors(); +} + diff --git a/test/scope/more_lambda_tests.cpp b/test/scope/more_lambda_tests.cpp index 3f53027..ea9209d 100644 --- a/test/scope/more_lambda_tests.cpp +++ b/test/scope/more_lambda_tests.cpp @@ -22,10 +22,10 @@ main() using boost::phoenix::ref; using boost::phoenix::val; using boost::phoenix::arg_names::_1; - using boost::phoenix::arg_names::_2; + //using boost::phoenix::arg_names::_2; using boost::phoenix::local_names::_a; - using boost::phoenix::local_names::_b; - using boost::phoenix::placeholders::arg1; + // using boost::phoenix::local_names::_b; + //using boost::phoenix::placeholders::arg1; { int x = 1; @@ -39,4 +39,10 @@ main() BOOST_TEST(x+1 == y); } + { + int x = lambda[val(1)]()(); + BOOST_TEST(x == 1); + } + + return boost::report_errors(); } diff --git a/test/scope/more_let_tests.cpp b/test/scope/more_let_tests.cpp index a26d533..5950e6e 100644 --- a/test/scope/more_let_tests.cpp +++ b/test/scope/more_let_tests.cpp @@ -1,7 +1,8 @@ /*============================================================================= Copyright (c) 2001-2007 Joel de Guzman + Copyright (c) 2015 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) ==============================================================================*/ #include @@ -30,14 +31,18 @@ main() using boost::phoenix::let; using boost::phoenix::val; using boost::phoenix::arg_names::_1; + using boost::phoenix::arg_names::_2; using boost::phoenix::local_names::_a; using boost::phoenix::local_names::_b; { // show that we can return a local from an outer scope int y = 0; +#ifdef __OPTIMIZE__ + int x = (let(_a = 1)[let(_b = _1)[ _a + 0 ]])(y); +#else int x = (let(_a = 1)[let(_b = _1)[ _a ]])(y); - +#endif BOOST_TEST(x == 1); } { @@ -50,15 +55,21 @@ main() { // show that we can return a local from an outer scope //int y = 0; +#ifdef __OPTIMIZE__ + int x = (let(_a = 1)[let(_b = _a)[ _a + 0 ]])(); +#else int x = (let(_a = 1)[let(_b = _a)[ _a ]])(); - +#endif BOOST_TEST(x == 1); } { // show that we can return a local from an inner scope //int y = 0; +#ifdef __OPTIMIZE__ + int x = (let(_a = 1)[let(_b = _a)[ _b + 0 ]])(); +#else int x = (let(_a = 1)[let(_b = _a)[ _b ]])(); - +#endif BOOST_TEST(x == 1); } { @@ -83,25 +94,41 @@ main() //++++++++++++++++++++++++++++++++++++++++++++++++++++++++ { int y = 0; +#ifdef __OPTIMIZE__ + int x = (let(_a = 1, _b = 2)[let(_b = _a)[ _a + 0 ]])(y); +#else int x = (let(_a = 1, _b = 2)[let(_b = _a)[ _a ]])(y); +#endif //std::cout << x << " P1A "; //clang - empty memory BOOST_TEST(x == 1); } { int y = 0; +#ifdef __OPTIMIZE__ + int x = (let(_a = 1, _b = 2)[let(_b = _a)[ _b + 0 ]])(y); +#else int x = (let(_a = 1, _b = 2)[let(_b = _a)[ _b ]])(y); +#endif //std::cout << x << " P1B "; //clang - 42 value- one step better BOOST_TEST(x == 1); } { int y = 0; +#ifdef __OPTIMIZE__ + int x = (let(_a = val(1), _b = val(2))[let(_b = _a)[ val(_a) ]])(y); +#else int x = (let(_a = val(1), _b = val(2))[let(_b = _a)[ _a ]])(y); +#endif //std::cout << x << " P2A "; //clang - 42 value - one step better BOOST_TEST(x == 1); } { int y = 0; +#ifdef __OPTIMIZE__ + int x = (let(_a = val(1), _b = val(2))[let(_b = _a)[ val(_b) ]])(y); +#else int x = (let(_a = val(1), _b = val(2))[let(_b = _a)[ _b ]])(y); +#endif //std::cout << x << " P2B "; //clang - 42 value - one step better BOOST_TEST(x == 1); } @@ -114,7 +141,11 @@ main() { int y = 0; +#ifdef __OPTIMIZE__ + int x = (let(_a = 1, _b = 2)[let(_b = _1)[ _a + 0 ]])(y); +#else int x = (let(_a = 1, _b = 2)[let(_b = _1)[ _a ]])(y); +#endif // std::cout << x << " Q "; // clang 4201472 BOOST_TEST(x == 1); } diff --git a/test/scope/more_let_tests1.cpp b/test/scope/more_let_tests1.cpp new file mode 100644 index 0000000..d4dddf1 --- /dev/null +++ b/test/scope/more_let_tests1.cpp @@ -0,0 +1,136 @@ +/*============================================================================= + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace fusion = boost::fusion; +namespace mpl = boost::mpl; + +int +main() +{ + using boost::phoenix::let; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + using boost::phoenix::local_names::_b; + + { + // show that we can return a local from an outer scope + int y = 0; +#if defined(BOOST_GCC_VERSION) && (BOOST_GCC_VERSION >= 50000) && __OPTIMIZE__ + int x = (let(_a = _2)[let(_b = _1)[ _a ]])(y,1); +#else + int x = (let(_a = 1)[let(_b = _1)[ _a ]])(y); +#endif + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an inner scope + int y = 1; + int x = (let(_a = 0)[let(_b = _1)[ _b ]])(y); + + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an outer scope + //int y = 0; +#if defined(BOOST_GCC_VERSION) && (BOOST_GCC_VERSION >= 50000) && __OPTIMIZE__ + int x = (let(_a = 1)[let(_b = _a)[ _a ]])(); +#else + int x = (let(_a = _1)[let(_b = _a)[ _a ]])(1); +#endif + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an inner scope + //int y = 0; +#if defined(BOOST_GCC_VERSION) && (BOOST_GCC_VERSION >= 50000) && __OPTIMIZE__ + int x = (let(_a = _1)[let(_b = _a)[ _b ]])(1); +#else + int x = (let(_a = 1)[let(_b = _a)[ _b ]])(); +#endif + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an outer scope + int y = 1; + int x = (let(_a = _1)[let(_b = _a)[ _a ]])(y); + + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an inner scope + int y = 1; + int x = (let(_a = _1)[let(_b = _a)[ _b ]])(y); + + BOOST_TEST(x == 1); + } + + //++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + // Be very careful. Some of these cases give a silly answer + // with clang 3.4 with C++03 and work for C++11. + // gcc 4.8.2 seems O.K. both ways. Oh dear. + //++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + /* { + int y = 0; + int x = (let(_a = 1, _b = 2)[let(_b = _a)[ _a ]])(y); + //std::cout << x << " P1A "; //clang - empty memory + BOOST_TEST(x == 1); + } + { + int y = 0; + int x = (let(_a = 1, _b = 2)[let(_b = _a)[ _b ]])(y); + //std::cout << x << " P1B "; //clang - 42 value- one step better + BOOST_TEST(x == 1); + } + { + int y = 0; + int x = (let(_a = val(1), _b = val(2))[let(_b = _a)[ _a ]])(y); + //std::cout << x << " P2A "; //clang - 42 value - one step better + BOOST_TEST(x == 1); + } + { + int y = 0; + int x = (let(_a = val(1), _b = val(2))[let(_b = _a)[ _b ]])(y); + //std::cout << x << " P2B "; //clang - 42 value - one step better + BOOST_TEST(x == 1); + } + { + int y = 1; + int x = (let(_a = _1, _b = val(2))[let(_b = _a)[ _a ]])(y); + //std::cout << x << " P3 "; //clang - OK - one step better still + BOOST_TEST(x == 1); + } + + { + int y = 0; + int x = (let(_a = 1, _b = 2)[let(_b = _1)[ _a ]])(y); + // std::cout << x << " Q "; // clang 4201472 + BOOST_TEST(x == 1); + } + */ + + return boost::report_errors(); +} + diff --git a/test/scope/more_let_tests2.cpp b/test/scope/more_let_tests2.cpp new file mode 100644 index 0000000..fb3fff8 --- /dev/null +++ b/test/scope/more_let_tests2.cpp @@ -0,0 +1,125 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace fusion = boost::fusion; +namespace mpl = boost::mpl; + +int +main() +{ + using boost::phoenix::let; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + using boost::phoenix::local_names::_a; + using boost::phoenix::local_names::_b; + /* + { + // show that we can return a local from an outer scope + int y = 0; + int x = (let(_a = 1)[let(_b = _1)[ _a ]])(y); + + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an inner scope + int y = 1; + int x = (let(_a = 0)[let(_b = _1)[ _b ]])(y); + + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an outer scope + //int y = 0; + int x = (let(_a = 1)[let(_b = _a)[ _a ]])(); + + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an inner scope + //int y = 0; + int x = (let(_a = 1)[let(_b = _a)[ _b ]])(); + + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an outer scope + int y = 1; + int x = (let(_a = _1)[let(_b = _a)[ _a ]])(y); + + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an inner scope + int y = 1; + int x = (let(_a = _1)[let(_b = _a)[ _b ]])(y); + + BOOST_TEST(x == 1); + } + */ + //++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + // Be very careful. Some of these cases give a silly answer + // with clang 3.4 with C++03 and work for C++11. + // gcc 4.8.2 seems O.K. both ways. Oh dear. + //++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + { + int y = 0; + int x = (let(_a = 1, _b = 2)[let(_b = _a)[ _a ]])(y); + //std::cout << x << " P1A "; //clang - empty memory + BOOST_TEST(x == 1); + } + { + int y = 0; + int x = (let(_a = 1, _b = 2)[let(_b = _a)[ _b ]])(y); + //std::cout << x << " P1B "; //clang - 42 value- one step better + BOOST_TEST(x == 1); + } + { + int y = 0; + int x = (let(_a = val(1), _b = val(2))[let(_b = _a)[ _a ]])(y); + //std::cout << x << " P2A "; //clang - 42 value - one step better + BOOST_TEST(x == 1); + } + { + int y = 0; + int x = (let(_a = val(1), _b = val(2))[let(_b = _a)[ _b ]])(y); + //std::cout << x << " P2B "; //clang - 42 value - one step better + BOOST_TEST(x == 1); + } + { + int y = 1; + int x = (let(_a = _1, _b = val(2))[let(_b = _a)[ _a ]])(y); + //std::cout << x << " P3 "; //clang - OK - one step better still + BOOST_TEST(x == 1); + } + + { + int y = 0; + int x = (let(_a = 1, _b = 2)[let(_b = _1)[ _a ]])(y); + // std::cout << x << " Q "; // clang 4201472 + BOOST_TEST(x == 1); + } + + + return boost::report_errors(); +} + diff --git a/test/scope/more_let_tests2a.cpp b/test/scope/more_let_tests2a.cpp new file mode 100644 index 0000000..9a4aca7 --- /dev/null +++ b/test/scope/more_let_tests2a.cpp @@ -0,0 +1,126 @@ +/*============================================================================= + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace fusion = boost::fusion; +namespace mpl = boost::mpl; + +int +main() +{ + using boost::phoenix::let; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + using boost::phoenix::local_names::_a; + using boost::phoenix::local_names::_b; + /* + { + // show that we can return a local from an outer scope + int y = 0; + int x = (let(_a = 1)[let(_b = _1)[ _a ]])(y); + + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an inner scope + int y = 1; + int x = (let(_a = 0)[let(_b = _1)[ _b ]])(y); + + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an outer scope + //int y = 0; + int x = (let(_a = 1)[let(_b = _a)[ _a ]])(); + + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an inner scope + //int y = 0; + int x = (let(_a = 1)[let(_b = _a)[ _b ]])(); + + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an outer scope + int y = 1; + int x = (let(_a = _1)[let(_b = _a)[ _a ]])(y); + + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an inner scope + int y = 1; + int x = (let(_a = _1)[let(_b = _a)[ _b ]])(y); + + BOOST_TEST(x == 1); + } + */ + //++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + // Be very careful. Some of these cases give a silly answer + // with clang 3.4 with C++03 and work for C++11. + // gcc 4.8.2 seems O.K. both ways. Oh dear. + //++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + { + int y = 0; + int x = (let(_a = 1, _b = 2)[let(_b = _a)[ _a ]])(y); + //std::cout << x << " P1A "; //clang - empty memory + BOOST_TEST(x == 1); + } + { + int y = 0; + int x = (let(_a = 1, _b = 2)[let(_b = _a)[ _b ]])(y); + //std::cout << x << " P1B "; //clang - 42 value- one step better + BOOST_TEST(x == 1); + } + { + int y = 0; + int x = (let(_a = val(1), _b = val(2))[let(_b = _a)[ _a ]])(y); + //std::cout << x << " P2A "; //clang - 42 value - one step better + BOOST_TEST(x == 1); + } + /* { + int y = 0; + int x = (let(_a = val(1), _b = val(2))[let(_b = _a)[ _b ]])(y); + //std::cout << x << " P2B "; //clang - 42 value - one step better + BOOST_TEST(x == 1); + } + { + int y = 1; + int x = (let(_a = _1, _b = val(2))[let(_b = _a)[ _a ]])(y); + //std::cout << x << " P3 "; //clang - OK - one step better still + BOOST_TEST(x == 1); + } + + { + int y = 0; + int x = (let(_a = 1, _b = 2)[let(_b = _1)[ _a ]])(y); + // std::cout << x << " Q "; // clang 4201472 + BOOST_TEST(x == 1); + } + */ + + return boost::report_errors(); +} + diff --git a/test/scope/more_let_tests2b.cpp b/test/scope/more_let_tests2b.cpp new file mode 100644 index 0000000..b6039f8 --- /dev/null +++ b/test/scope/more_let_tests2b.cpp @@ -0,0 +1,136 @@ +/*============================================================================= + 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) +==============================================================================*/ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace fusion = boost::fusion; +namespace mpl = boost::mpl; + +int +main() +{ + using boost::phoenix::let; + using boost::phoenix::val; + using boost::phoenix::arg_names::_1; + using boost::phoenix::arg_names::_2; + using boost::phoenix::local_names::_a; + using boost::phoenix::local_names::_b; + /* + { + // show that we can return a local from an outer scope + int y = 0; + int x = (let(_a = 1)[let(_b = _1)[ _a ]])(y); + + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an inner scope + int y = 1; + int x = (let(_a = 0)[let(_b = _1)[ _b ]])(y); + + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an outer scope + //int y = 0; + int x = (let(_a = 1)[let(_b = _a)[ _a ]])(); + + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an inner scope + //int y = 0; + int x = (let(_a = 1)[let(_b = _a)[ _b ]])(); + + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an outer scope + int y = 1; + int x = (let(_a = _1)[let(_b = _a)[ _a ]])(y); + + BOOST_TEST(x == 1); + } + { + // show that we can return a local from an inner scope + int y = 1; + int x = (let(_a = _1)[let(_b = _a)[ _b ]])(y); + + BOOST_TEST(x == 1); + } + */ + //++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + // Be very careful. Some of these cases give a silly answer + // with clang 3.4 with C++03 and work for C++11. + // gcc 4.8.2 seems O.K. both ways. Oh dear. + //++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + /*{ + int y = 0; + int x = (let(_a = 1, _b = 2)[let(_b = _a)[ _a ]])(y); + //std::cout << x << " P1A "; //clang - empty memory + BOOST_TEST(x == 1); + } + { + int y = 0; + int x = (let(_a = 1, _b = 2)[let(_b = _a)[ _b ]])(y); + //std::cout << x << " P1B "; //clang - 42 value- one step better + BOOST_TEST(x == 1); + } + { + int y = 0; + int x = (let(_a = val(1), _b = val(2))[let(_b = _a)[ _a ]])(y); + //std::cout << x << " P2A "; //clang - 42 value - one step better + BOOST_TEST(x == 1); + }*/ + { + int y = 0; +#if defined(BOOST_GCC_VERSION) && (BOOST_GCC_VERSION >= 50000) && __OPTIMIZE__ + //int x = (let(_a = val(1), _b = val(2))[let(_b = _a)[ _b ]])(y); +#else + int x = (let(_a = val(1), _b = val(2))[let(_b = _a)[ _b ]])(y); + //std::cout << x << " P2B "; //clang - 42 value - one step better + BOOST_TEST(x == 1); +#endif + } + { + int y = 1; + int x = (let(_a = _1, _b = val(2))[let(_b = _a)[ _a ]])(y); + //std::cout << x << " P3 "; //clang - OK - one step better still + BOOST_TEST(x == 1); + } + + { + int y = 0; +#if defined(BOOST_GCC_VERSION) && (BOOST_GCC_VERSION >= 50000) && __OPTIMIZE__ + int z = 2; + int x = (let(_a = _1, _b = _2)[let(_b = _1)[ _a ]])(y,z); +#else + int x = (let(_a = 1, _b = 2)[let(_b = _1)[ _a ]])(y); +#endif + // std::cout << x << " Q "; // clang 4201472 + BOOST_TEST(x == 1); + } + + + return boost::report_errors(); +} +