From 91b56c1d57644ac38904941006c1acda81d6d8e6 Mon Sep 17 00:00:00 2001 From: Thibaut Metivet Date: Mon, 26 Jun 2017 15:37:25 +0200 Subject: [PATCH 1/2] Fix missing typename when parameter-function doesn't have required parameter arguments --- include/boost/parameter/preprocessor.hpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/include/boost/parameter/preprocessor.hpp b/include/boost/parameter/preprocessor.hpp index 8ea370cb..b3e99df3 100644 --- a/include/boost/parameter/preprocessor.hpp +++ b/include/boost/parameter/preprocessor.hpp @@ -353,10 +353,9 @@ struct funptr_predicate , BOOST_PARAMETER_FUNCTION_FWD_FUNCTION_TEMPLATE_Z, BOOST_PP_TUPLE_EAT(2) \ )(z,n) \ BOOST_PARAMETER_MEMBER_FUNCTION_STATIC(BOOST_PP_TUPLE_ELEM(7,3,data)) \ - inline \ - BOOST_PP_EXPR_IF(n, typename) \ + inline typename \ BOOST_PARAMETER_FUNCTION_RESULT_NAME(BOOST_PP_TUPLE_ELEM(7,3,data))< \ - BOOST_PP_EXPR_IF(n, typename) \ + typename \ boost::parameter::aux::argument_pack< \ BOOST_PARAMETER_FUNCTION_PARAMETERS_NAME(BOOST_PP_TUPLE_ELEM(7,3,data)) \ BOOST_PP_COMMA_IF(n) \ From 3a6404043e987c2bb6c3aa66d768e1942eef9634 Mon Sep 17 00:00:00 2001 From: Thibaut Metivet Date: Mon, 26 Jun 2017 15:39:45 +0200 Subject: [PATCH 2/2] Fix ambiguous call to boost_param_impl_[fname] when multiple overloads are defined --- include/boost/parameter/preprocessor.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/include/boost/parameter/preprocessor.hpp b/include/boost/parameter/preprocessor.hpp index b3e99df3..5da72026 100644 --- a/include/boost/parameter/preprocessor.hpp +++ b/include/boost/parameter/preprocessor.hpp @@ -345,7 +345,10 @@ struct funptr_predicate // daniel: what? how is that relevant? the reason for using CAT() is to make sure // base is expanded. i'm not sure we need to here, but it's more stable to do it. # define BOOST_PARAMETER_IMPL(base) \ - BOOST_PP_CAT(boost_param_impl,BOOST_PARAMETER_MEMBER_FUNCTION_NAME(base)) + BOOST_PP_CAT( \ + boost_param_impl_ \ + , BOOST_PP_CAT(__LINE__,BOOST_PARAMETER_MEMBER_FUNCTION_NAME(base)) \ + ) # define BOOST_PARAMETER_FUNCTION_FWD_FUNCTION00(z, n, r, data, elem) \ BOOST_PP_IF( \