flycast
flycast copied to clipboard
Replace nowide with C++17 filesystem
Flycast has very many dependencies, some of which have been superseded by better or more standardised implementations.
C++17 filesystem has support for UTF-8 API functions more or less removing the need for nowide here and cutting out one dependency.
c++17 filesystem uses UTF-8 on UTF-8 platforms but uses the local code page on windows. In order to use UTF-8, you need to use special std::fs constructs and methods (u8path, u8string, ...)
To complicate things further, c++20 deprecates some of these methods!
So I think we need some convenience classes/functions to handle these conversions properly (and c++20-compatble) and avoid errors in the code.