Size: a a a

2020 June 16

CD

Constantine Drozdov in pro.cxx
Не существует корректного преобразования utils::unique_ptr в std::unique_ptr
источник

AT

Anatoly Tomilov in pro.cxx
Alex Ф-ф-фэils!🌠︙
Я на таком помню делал парсер ipv4
а как там это можно применить?
источник

CD

Constantine Drozdov in pro.cxx
Побитый Кирпич
В своей программе можешь что угодно делать, зависимости никак не страдают, только тебе видимо придется конвертировать свой тип в std
Если что, мне в ~unique_ptr надо написать reset();
источник

ПК

Побитый Кирпич... in pro.cxx
Constantine Drozdov
Не существует корректного преобразования utils::unique_ptr в std::unique_ptr
std::unique_ptr(utils::unique_ptr(...).release())

:)
источник

CD

Constantine Drozdov in pro.cxx
Побитый Кирпич
std::unique_ptr(utils::unique_ptr(...).release())

:)
И std::unique_ptr::~unique_ptr отработало ровно как меня не устраивает
источник

CD

Constantine Drozdov in pro.cxx
При этом авторы либы совершенно точно не позаботились прописыванием явных деструкторов всех содержащих unique_ptr объектов
источник

ПК

Побитый Кирпич... in pro.cxx
Constantine Drozdov
И std::unique_ptr::~unique_ptr отработало ровно как меня не устраивает
Ну дак а ты что хочешь? Либо юзаешь его, либо нет
источник

CD

Constantine Drozdov in pro.cxx
Побитый Кирпич
Ну дак а ты что хочешь? Либо юзаешь его, либо нет
С этого момента я не могу использовать std::unique_ptr на стыке с либой.
источник

ПК

Побитый Кирпич... in pro.cxx
Или ты хочешь код в std заголовке подредактировать и чтоб это у зависимостей применилось?
источник

CD

Constantine Drozdov in pro.cxx
Побитый Кирпич
Или ты хочешь код в std заголовке подредактировать и чтоб это у зависимостей применилось?
Ну а как бы я в Java сделал? Мой объект просто бы отнаследовал std::unique_ptr, override-нул деструктор и у меня все хорошо, на всех стыках с либами все хорошо
источник

ПК

Побитый Кирпич... in pro.cxx
Constantine Drozdov
Ну а как бы я в Java сделал? Мой объект просто бы отнаследовал std::unique_ptr, override-нул деструктор и у меня все хорошо, на всех стыках с либами все хорошо
Так, ты мне предъявил в контексте менеджера пакетов, что там через границы либы нельзя переходить. При чем тут джава?
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Andrey Davydov
Для этого IILE придумали, пример из fmtlib: https://github.com/fmtlib/fmt/blob/master/include/fmt/format.h#L2813
А что за IILE?
источник

DS

Dmitry Sokolov in pro.cxx
Constantine Drozdov
Если что, мне в ~unique_ptr надо написать reset();
А чем это отличается от raw ptr? И вообще какой смысл несёт reset в деструкторе?
источник

CD

Constantine Drozdov in pro.cxx
Побитый Кирпич
Так, ты мне предъявил в контексте менеджера пакетов, что там через границы либы нельзя переходить. При чем тут джава?
Я предъявил тебе, что проблема не в менеджере пакетов, а проблема в том, что автор либы использует std::unique_ptr в качестве интерфейсного параметра
источник

A

Alex in pro.cxx
Dmitry Sokolov
А чем это отличается от raw ptr? И вообще какой смысл несёт reset в деструкторе?
Я тоже хотел спросить, но не стал, у Константина сегодня много странных идей)
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
А чем это отличается от raw ptr? И вообще какой смысл несёт reset в деструкторе?
#include <memory>

struct guard {
 std::unique_ptr<guard> & guarded;
 guard(std::unique_ptr<guard> & guarded) : guarded(guarded) {}
 ~guard() { guarded = nullptr; }
};

struct test_ok {
 std::unique_ptr<guard> pointer;
 test_ok() { pointer = std::make_unique<guard>(pointer); }
 ~test_ok() { pointer.reset(); } //this will be ok
};

struct test_failed {
 std::unique_ptr<guard> pointer;
 test_failed() { pointer = std::make_unique<guard>(pointer); }
};

int main() {
 test_failed{}; //heap corruption
}
источник

AD

Andrey Davydov in pro.cxx
Alex Ф-ф-фэils!🌠︙
А что за IILE?
immediately invoked lambda expression
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Andry
нашёл ещё @pro_osdev но после того как я туда добавился и нажал что я не бот у меня больше нету доступа к группе(
Сейчас починю
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Andrey Davydov
immediately invoked lambda expression
А, вот как эта хрень, что я делаю, называется😂
источник

A

Andry in pro.cxx
Alex Ф-ф-фэils!🌠︙
Сейчас починю
уже добавил)
источник