diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2018-12-18 16:57:36 +0000 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2018-12-18 16:57:36 +0000 |
commit | 4894e316a8feaf1d38e64e867358107445b7dc31 (patch) | |
tree | b5332b05f10eef7826f43eb8ad3a8892c7042c41 | |
parent | fb601354e11d8c0db41cd119d51fe1acd4afa648 (diff) | |
download | gcc-4894e316a8feaf1d38e64e867358107445b7dc31.zip gcc-4894e316a8feaf1d38e64e867358107445b7dc31.tar.gz gcc-4894e316a8feaf1d38e64e867358107445b7dc31.tar.bz2 |
LWG 3171: restore stream insertion for filesystem::directory_entry
* include/bits/fs_dir.h (operator<<): Overload for directory_entry,
as per LWG 3171.
* testsuite/27_io/filesystem/directory_entry/lwg3171.cc: New test.
From-SVN: r267238
-rw-r--r-- | libstdc++-v3/ChangeLog | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/fs_dir.h | 8 |
2 files changed, 12 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 5378bc3..d9747e8 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,9 @@ 2018-12-18 Jonathan Wakely <jwakely@redhat.com> + * include/bits/fs_dir.h (operator<<): Overload for directory_entry, + as per LWG 3171. + * testsuite/27_io/filesystem/directory_entry/lwg3171.cc: New test. + * src/filesystem/std-dir.cc (filesystem::_Dir::advance): Move new path instead of copying. diff --git a/libstdc++-v3/include/bits/fs_dir.h b/libstdc++-v3/include/bits/fs_dir.h index 2f81a17..90bdf73 100644 --- a/libstdc++-v3/include/bits/fs_dir.h +++ b/libstdc++-v3/include/bits/fs_dir.h @@ -300,6 +300,14 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 friend class directory_iterator; friend class recursive_directory_iterator; + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 3171. LWG 2989 breaks directory_entry stream insertion + template<typename _CharT, typename _Traits> + friend basic_ostream<_CharT, _Traits>& + operator<<(basic_ostream<_CharT, _Traits>& __os, + const directory_entry& __d) + { return __os << __d.path(); } + directory_entry(const filesystem::path& __p, file_type __t) : _M_path(__p), _M_type(__t) { } |