Opened 16 years ago
Closed 16 years ago
#770 closed Bugs (Invalid)
static assert for boost::python::make_constructor
| Reported by: | jfalk | Owned by: | david_abrahams |
|---|---|---|---|
| Milestone: | Component: | python USE GITHUB | |
| Version: | Boost 1.34.0 | Severity: | |
| Keywords: | Cc: |
Description
You get a static assertion when using
boost::python::make_constructor together
with the call policy
return_value_policy<manage_new_object>()
Test case:
=====================================================
#include <boost/python.hpp>
namespace Test {
using namespace boost::python;
class Foo {
};
Foo *fooCreator() { return new Foo(); }
BOOST_PYTHON_MODULE(Test)
{
class_<Foo>("Foo")
.def("__init__", make_constructor(fooCreator,
return_value_policy<manage_new_object>()));
}
} /* namespace Test */
Failure:
=====================================================
/usr/include/boost/python/make_constructor.hpp: In
instantiation of
`boost::python::detail::constructor_policy<boost::python::return_value_policy<boost::python::manage_new_object,
boost::python::default_call_policies> >':
/usr/include/boost/python/make_constructor.hpp:150:
instantiated from `boost::python::api::object
boost::python::detail::make_constructor_aux(F, const
CallPolicies&, const Sig&) [with F = Test::Foo*(*)(),
CallPolicies =
boost::python::return_value_policy<boost::python::manage_new_object,
boost::python::default_call_policies>, Sig =
boost::mpl::vector1<Test::Foo*>]'
/usr/include/boost/python/make_constructor.hpp:236:
instantiated from `boost::python::api::object
boost::python::make_constructor(F, const CallPolicies&)
[with F = Test::Foo*(*)(), CallPolicies =
boost::python::return_value_policy<boost::python::manage_new_object,
boost::python::default_call_policies>]'
boost-python-test.cpp:14: instantiated from here
/usr/include/boost/python/make_constructor.hpp:106:
error: incomplete type `
boost::STATIC_ASSERTION_FAILURE<false>' does not
have member `value'
Expected Result:
=====================================================
Should compile
Note:
See TracTickets
for help on using tickets.
