44template <
typename Copyable> bp::object
generic__deepcopy__(
const bp::object ©able, bp::dict &memo) {
45 bp::object copyMod = bp::import(
"copy");
46 bp::object deepcopy = copyMod.attr(
"deepcopy");
48 Copyable *newCopyable(
new Copyable(bp::extract<const Copyable &>(copyable)));
52 auto copyableId = (std::ptrdiff_t)(copyable.ptr());
53 memo[copyableId] = result;
55 bp::extract<bp::dict>(result.attr(
"__dict__"))().update(
56 deepcopy(bp::extract<bp::dict>(copyable.attr(
"__dict__"))(), memo));