Calling the operating system's API makes a lot more sense.
Exceptions are definitely thrown for non-existent files.
Formatting the source code makes it more readable.
Remove the direct use of the c++ 2011 type trait, All switched to c++2020 concepts and type constraints.
Update README.md