из Cast возрващать, и сказать, что Object owns value? А на крайний случай что-то типа Release() добавить?
А reference не поможет. Мы просто получим висящую ссылку. Проблема в том, что тут смешанная семантика. Есть объекты со счётчиком ссылок без владения, есть объекты с владением Var<const char*> v(vm, 1); // ссылка на первый элемент из стек VM, который является строкой Var<std::string> v (vm, 1); // копируем первый элемент из стека VM в локальную переменную. никаких ссылок не остаётся на VM. получаем полное владение
Обсуждают сегодня