Am o construcție de genul ăsta:
[...]
std::unique_ptr<zip_t, decltype(&zip_close)> zip(zip_open_from_source(source, ZIP_RDONLY, &error), &zip_close);
[...]
std::unique_ptr<zip_file_t, decltype(&zip_fclose)> zfile(zip_fopen(zip.get(), fname.text(), ZIP_FL_UNCHANGED), &zip_fclose);
[...]
ChatGPT zice că există o chestie care se cheamă “reverse destruction order”, dar e tâmpit, îmi zice că primul destructor apelat va fi cel cu zip_close()
, ceea ce este fix pe dos față de ce înteleg eu prin “reverse”.
Are cineva idee dacă este garantat de C++ că primul destructor apelat va fi zip_fclose()
, abia după aia zip_close()
? Să nu-mi crape naibii ceva aleator prin program dacă se închid handlerele pe dos.