я записал указатель в QVariant, как я понял он имеет тип void* внутри QVariant. А значит при вызове и дальнейшей работе, мы явно кастим этот указатель:
Class* PTR;
QVariant qVariantValue = fromValue(static_cast<void*>(PTR));
Class* ptr = static_cast<Class*>(qVariantValue.value<void*>());
Вот такой вот урод получается, а теперь вопрос: А мне потом нужно писать delete ptr;?
Вроде бы это получается просто переменная, которая хранит адрес, или как?
Удаляет тот кто оунер. Ты передаешь оунершип? Удаляй. Нет? Не удаляй
Понял, звучит логично, пойду оунера искать. Мне кажется, оунерство все-таки не передается 🤔
Ужасный код, нормальное ревью он никогда не пройдет
К счастью это я пока только учусь, и ревью не предвидится. Я сам понимаю, что тут все грустно, но пока выходит только так 🤷🏼
вы бы еще сказали бы почему. И предложили бы тот который пройдет - цены бы вам не было.
Для этого нужно видеть всю картину целиком, возможно можно подойти с другой стороны к решению задачи и сделать хорошо
ну я вот писал уже, что там ужасного
Обсуждают сегодня