
Steven Watanabe wrote:
AMDG
Neal Becker wrote:
My boost_random python wrapper broke, because it seems the signature of
seed(result_type)
is changed to
seed (result_type const&)
Here's my code (note workaround):
class_<rng_t> ("rng", "Mersenne Twister", bp::init<rng_t::result_type>( (bp::arg ("seed")=4357),
"__init__(seed=4357)\n" "Construct with optional seed\n\n" ":Parameters:\n" " `seed` : int\n" " initial seed\n" )) .def_pickle(mt_pickle_suite()) .def ("getstate", &mt_pickle_suite::getstate) .def ("setstate", &mt_pickle_suite::setstate) #if BOOST_VERSION >= 104000 .def ("seed", (void (rng_t::*)(rng_t::result_type const&)) (&rng_t::seed), #else .def ("seed", (void (rng_t::*)(rng_t::result_type))(&rng_t::seed), #endif "seed(x)\n" "Reset generator using seed value x\n\n" ":Parameters:\n" " `x` : int\n" " initial seed\n" )
Hmm. Given that there was already a #if that would make the signature const result_type&, I didn't think it could do any harm to change the exact signature.
As you can see, it broke the compile of the above example. Only a usage that is sensitive to the exact signature would break - but since my code did break I think it would be good to mention in release notes.