Compare commits

..

2 Commits

Author SHA1 Message Date
Eddy L O Jansson
dd4704ffda
Merge fb3eb7298defe0d8cf14356f8f7ee661714d83bf into d9b051210ba756d28086c9b75e983e84ae11e730 2024-10-22 17:40:41 +02:00
Eddy Jansson
fb3eb7298d Use functor deleter for invoking fclose.
This fixes warnings from GCC-14 about ignored attributes
when using std::unique_ptr<FILE>
2024-10-22 17:21:21 +02:00

View File

@ -119,19 +119,19 @@ using byte_string_view = std::basic_string_view<uint8_t>;
* \{
*/
/** Local helper deleter function. */
static void fclose_deleter(FILE* f)
{
fclose(f);
}
/**
* Smart auto-closing FILE* handle.
*
* It implictly converts from an already opened FILE*.
*/
struct file : std::unique_ptr<FILE, decltype(&fclose_deleter)> {
file(FILE* f = nullptr) : std::unique_ptr<FILE, decltype(&fclose_deleter)>(f, &fclose_deleter) {}
struct fclose_deleter {
void operator()(FILE *f) const noexcept {
fclose(f);
}
};
struct file : std::unique_ptr<FILE, struct fclose_deleter> {
file(FILE* f = nullptr) : std::unique_ptr<FILE, struct fclose_deleter>(f) {}
};
/**