diff --git a/include/boost/python/args_fwd.hpp b/include/boost/python/args_fwd.hpp index 39239461b..a9c13147d 100644 --- a/include/boost/python/args_fwd.hpp +++ b/include/boost/python/args_fwd.hpp @@ -44,6 +44,11 @@ namespace detail { typedef char too_many_keywords[keywords > function_args ? -1 : 1]; }; + template + struct less_keywords_than_function_arguments + { + typedef char too_few_keywords[(keywords!=0 && keywords < function_args) ? -1 : 1]; + }; } } diff --git a/include/boost/python/make_function.hpp b/include/boost/python/make_function.hpp index 7dd7c316b..63b27ed4f 100644 --- a/include/boost/python/make_function.hpp +++ b/include/boost/python/make_function.hpp @@ -56,7 +56,13 @@ namespace detail typedef typename detail::error::more_keywords_than_function_arguments< NumKeywords::value, arity >::too_many_keywords assertion BOOST_ATTRIBUTE_UNUSED; - + +#ifdef BOOST_PYTHON_NUM_KEYWORDS_EQUALS_ARITY + typedef typename detail::error::less_keywords_than_function_arguments< + NumKeywords::value, arity + >::too_few_keywords assertion2 BOOST_ATTRIBUTE_UNUSED; +#endif + return objects::function_object( detail::caller(f, p) , kw);