diff --git a/include/ghc/filesystem.hpp b/include/ghc/filesystem.hpp index 216bb87..698986e 100644 --- a/include/ghc/filesystem.hpp +++ b/include/ghc/filesystem.hpp @@ -927,7 +927,7 @@ class basic_filebuf : public std::basic_filebuf const basic_filebuf& operator=(const basic_filebuf&) = delete; basic_filebuf* open(const path& p, std::ios_base::openmode mode) { -#if defined(GHC_OS_WINDOWS) && defined(_MSC_VER) +#if defined(GHC_OS_WINDOWS) && && !defined(__GNUC__) return std::basic_filebuf::open(p.wstring().c_str(), mode) ? this : 0; #else return std::basic_filebuf::open(p.c_str(), mode) ? this : 0; @@ -940,7 +940,7 @@ class basic_ifstream : public std::basic_ifstream { public: basic_ifstream() {} -#if defined(GHC_OS_WINDOWS) && defined(_MSC_VER) +#if defined(GHC_OS_WINDOWS) && && !defined(__GNUC__) explicit basic_ifstream(const path& p, std::ios_base::openmode mode = std::ios_base::in) : std::basic_ifstream(p.wstring().c_str(), mode) { @@ -963,7 +963,7 @@ class basic_ofstream : public std::basic_ofstream { public: basic_ofstream() {} -#if defined(GHC_OS_WINDOWS) && defined(_MSC_VER) +#if defined(GHC_OS_WINDOWS) && !defined(__GNUC__) explicit basic_ofstream(const path& p, std::ios_base::openmode mode = std::ios_base::out) : std::basic_ofstream(p.wstring().c_str(), mode) { @@ -986,7 +986,7 @@ class basic_fstream : public std::basic_fstream { public: basic_fstream() {} -#if defined(GHC_OS_WINDOWS) && defined(_MSC_VER) +#if defined(GHC_OS_WINDOWS) && !defined(__GNUC__) explicit basic_fstream(const path& p, std::ios_base::openmode mode = std::ios_base::in | std::ios_base::out) : std::basic_fstream(p.wstring().c_str(), mode) {