diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 459ef0a10b6e..af30e41dbae3 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2016-05-25 Jonathan Wakely + + Backport from mainline + 2016-05-10 Jonathan Wakely + + * include/experimental/bits/fs_dir.h (__directory_iterator_proxy): + Overload operator* to move from rvalues. + 2016-05-25 Jonathan Wakely Backport from mainline diff --git a/libstdc++-v3/include/experimental/fs_dir.h b/libstdc++-v3/include/experimental/fs_dir.h index f25447310672..39b5aa2f9dc1 100644 --- a/libstdc++-v3/include/experimental/fs_dir.h +++ b/libstdc++-v3/include/experimental/fs_dir.h @@ -158,7 +158,9 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 struct __directory_iterator_proxy { - const directory_entry& operator*() const noexcept { return _M_entry; } + const directory_entry& operator*() const& noexcept { return _M_entry; } + + directory_entry operator*() && noexcept { return std::move(_M_entry); } private: friend class directory_iterator;