This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
This implements part of LWG 2676. I haven't added the new members taking wide character strings, because they're only needed on Windows, where the Filesystem library doesn't work yet. I'll send a follow-up patch about those overloads. I've implemented these new functions as templates, which means they work with both std::filesystem::path and std::experimental::filesystem::path. There's another benefit, which is that we don't need to include <filesystem> in <fstream>, and we don't need to export new symbols from libstdc++.so for these functions (we have explicit instantation definitions in the library). This isn't entirely conforming, because a type that is convertible to filesystem::path will not match these new function templates. We can revisit it once the <filesystem> symbols are added to libstdc++.so but this should be OK for now. * include/std/fstream (basic_filebuf::_If_path): New SFINAE helper. (basic_filebuf::open<Path>(const Path&, const ios_base::openmode&)) (basic_ifstream<Path>(const Path&, const ios_base::openmode&)) (basic_ifstream::open<Path>(const Path&, const ios_base::openmode&)) (basic_ofstream<Path>(const Path&, const ios_base::openmode&)) (basic_ofstream::open<Path>(const Path&, const ios_base::openmode&)) (basic_fstream<Path>(const Path&, const ios_base::openmode&)) (basic_fstream::open<Path>(const Path&, const ios_base::openmode&)): New constructors and member functions. * testsuite/27_io/basic_filebuf/open/char/path.cc: New test. * testsuite/27_io/basic_fstream/cons/char/path.cc: New test. * testsuite/27_io/basic_fstream/open/char/path.cc: New test. * testsuite/27_io/basic_ifstream/cons/char/path.cc: New test. * testsuite/27_io/basic_ifstream/open/char/path.cc: New test. * testsuite/27_io/basic_ofstream/cons/char/path.cc: New test. * testsuite/27_io/basic_ofstream/open/char/path.cc: New test. Tested powerpc64le-linux, committed to trunk.
Attachment:
patch.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |