static void manage(any_storage& d, const any_storage& s, any_ops::op_code op) { switch(op) { case equals: { const auto p(d.access<any_storage*>()); d.access<bool>() = get_reference(*p) == get_reference(s); } break; default: base::manage(d, s, op); } }
static void manage(any_storage& d, const any_storage& s, any_ops::op_code op) { switch(op) { case check_undereferenceable: d.access<bool>() = is_undereferenceable(get_reference(s)); break; case dereference: d = void_ref(*get_reference(s)); break; case increase: ++get_reference(d); break; default: base::manage(d, s, op); } }
static void manage(any_storage& d, const any_storage& s, any_ops::op_code op) { switch(op) { case decrease: --get_reference(d); break; default: base::manage(d, s, op); } }