diff --git a/ChangeLog b/ChangeLog index 5c7f5a1..c318dfa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -43,6 +43,17 @@ Added test bug5875 - test withdrawn for further checking. CHANGELOG - DEVELOP + +- V3.1.0 +- Bump version number to 3.1.0 in version.hpp and branch for release. +- Add more cases to cmath test to test failures on some compilers. +- #7165 and #7166 Change tests to phoenix/core.hpp to reduce compiler load +- Testing fix for failures of tests as follows + bind_member_function_tests, bind_mf2_test, bind_test + with compilers including gcc 4.9.0 and clang 3.5 + This involves use of boost::lazy_disable_if to resolve + the choice of overloaded bind functions in + bind/bind_member_variable.hpp - #9742 New tests for_each and for_test to attempt to resolve this. - V3.0.6 diff --git a/include/boost/phoenix/bind/bind_member_variable.hpp b/include/boost/phoenix/bind/bind_member_variable.hpp index 56515de..de03d43 100644 --- a/include/boost/phoenix/bind/bind_member_variable.hpp +++ b/include/boost/phoenix/bind/bind_member_variable.hpp @@ -1,13 +1,15 @@ /*============================================================================= Copyright (c) 2001-2007 Joel de Guzman + Copyright (c) 2014 John Fletcher - Distributed under the Boost Software License, Version 1.0. (See accompanying + Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #ifndef PHOENIX_BIND_BIND_MEMBER_VARIABLE_HPP #define PHOENIX_BIND_BIND_MEMBER_VARIABLE_HPP +#include #include #include #include @@ -16,11 +18,12 @@ namespace boost { namespace phoenix { template inline - typename - detail::expression::function_eval< + typename boost::lazy_disable_if< + boost::is_member_function_pointer, + typename detail::expression::function_eval< detail::member_variable - , ClassA - >::type const + , ClassA >//::type + >::type const bind(RT ClassT::*mp, ClassA const& obj) { typedef detail::member_variable mp_type; @@ -31,10 +34,11 @@ namespace boost { namespace phoenix template inline - typename - detail::expression::function_eval< + typename boost::lazy_disable_if< + boost::is_member_function_pointer, + typename detail::expression::function_eval< detail::member_variable - , ClassT + , ClassT >//::type >::type const bind(RT ClassT::*mp, ClassT& obj) { diff --git a/include/boost/phoenix/operator/arithmetic.hpp b/include/boost/phoenix/operator/arithmetic.hpp index 03d2dcc..fda6277 100644 --- a/include/boost/phoenix/operator/arithmetic.hpp +++ b/include/boost/phoenix/operator/arithmetic.hpp @@ -42,6 +42,7 @@ namespace boost { namespace phoenix using proto::exprns_::operator-=; using proto::exprns_::operator*=; using proto::exprns_::operator/=; + using proto::exprns_::operator%=; using proto::exprns_::operator+; using proto::exprns_::operator-; using proto::exprns_::operator*; diff --git a/include/boost/phoenix/version.hpp b/include/boost/phoenix/version.hpp index 41166f5..8f9d93f 100644 --- a/include/boost/phoenix/version.hpp +++ b/include/boost/phoenix/version.hpp @@ -14,7 +14,7 @@ // This is the version of the library // /////////////////////////////////////////////////////////////////////////////// -#define BOOST_PHOENIX_VERSION 0x3006 // 3.0.6 +#define BOOST_PHOENIX_VERSION 0x3100 // 3.1.0 // 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,0,6) +#define BOOST_PHOENIX_VERSION_NUMBER = BOOST_VERSION_NUMBER(3,1,0) #endif #endif diff --git a/meta/libraries.json b/meta/libraries.json new file mode 100644 index 0000000..32685ed --- /dev/null +++ b/meta/libraries.json @@ -0,0 +1,17 @@ +{ + "key": "phoenix", + "name": "Phoenix", + "authors": [ + "Joel de Guzman", + "Dan Marsden", + "Thomas Heller" + ], + "description": "Define small unnamed function objects at the actual call site, and more.", + "category": [ + "Function-objects" + ], + "maintainers": [ + "Joel de Guzman ", + "Thomas Heller " + ] +} diff --git a/test/algorithm/querying.cpp b/test/algorithm/querying.cpp index 43f588c..5d1072d 100644 --- a/test/algorithm/querying.cpp +++ b/test/algorithm/querying.cpp @@ -19,7 +19,7 @@ #include BOOST_HASH_MAP_HEADER #define BOOST_PHOENIX_HAS_HASH #define BOOST_PHOENIX_HASH_NAMESPACE BOOST_STD_EXTENSION_NAMESPACE -#elif defined(BOOST_DINKUMWARE_STDLIB) +#elif defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB < 610) #include #include #define BOOST_PHOENIX_HAS_HASH diff --git a/test/regression/bug7165.cpp b/test/regression/bug7165.cpp index cd131ae..c4f7442 100644 --- a/test/regression/bug7165.cpp +++ b/test/regression/bug7165.cpp @@ -8,7 +8,7 @@ ==============================================================================*/ #define BOOST_PHOENIX_LIMIT 20 -#include +#include int main() { diff --git a/test/regression/bug7166.cpp b/test/regression/bug7166.cpp index e0a73a3..1b3bc76 100644 --- a/test/regression/bug7166.cpp +++ b/test/regression/bug7166.cpp @@ -9,7 +9,7 @@ #define BOOST_PROTO_MAX_ARITY 10 #define BOOST_PHOENIX_LIMIT 20 -#include +#include int main() { diff --git a/test/stdlib/cmath.cpp b/test/stdlib/cmath.cpp index 6be29cd..aa1e798 100644 --- a/test/stdlib/cmath.cpp +++ b/test/stdlib/cmath.cpp @@ -18,9 +18,12 @@ int main() using namespace boost::phoenix::arg_names; boost::function f = fabs(_1 - _2) < eps; - double x = boost::phoenix::pow(_1,_2)(2.,0.); + double x = boost::phoenix::pow(_1,_2)(2.,2.); + double y = boost::phoenix::atan2(_1,_2)(1.,1.); + double z = boost::phoenix::tan(_1)(y); BOOST_TEST(f(0.0, 0 * eps)); BOOST_TEST(!f(0.0, eps)); - BOOST_TEST(fabs(x-1.) < eps ); + BOOST_TEST(fabs(x-4.) < eps ); + BOOST_TEST(fabs(z-1.) < eps ); }