4 ms·
https://godbolt.org/z/363oqqKfv https://godbolt.org/z/363oqqKfv struct File_handle { static auto Create(std::string const & pp, const char *r) -> std::
by ignition 1y ago
https://godbolt.org/z/363oqqKfv https://godbolt.org/z/363oqqKfv
struct File_handle {
static auto Create(std::string const & pp, const char *r) -> std::expected<File_handle, std::error_code> {
auto p = fopen(pp.c_str(), r);
if (!p) return std::unexpected(error_code_from_errno(errno));
return File_handle{p};
}
~File_handle() { fclose(p); }
private:
File_handle(FILE * f) : p{f} {}
FILE *p;
};