Uses:
- strerror_s() on Windows;
- the GNU strerror_r() on non-Windows systems where _GNU_SOURCE is
defined (which is currently the case when the GNU libstdc++ is used,
even if one doesn't explicitely define _GNU_SOURCE, cf.
<https://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.predefined>);
- the XSI-compliant strerror_r() on other systems, as long as
_POSIX_C_SOURCE >= 200112L (otherwise, the compilation will abort
due to a #error preprocessor instruction).