static Result_Type cast(const Boxed_Value &ob, const Type_Conversions *) { if (ob.is_ref()) { return &(ob.get().cast<std::reference_wrapper<Result> >()).get(); } else { return (ob.get().cast<std::shared_ptr<Result> >()).get(); } }