Optimize __directory_iterator_proxy for the common case

Backport from mainline
2016-05-10  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
	Overload operator* to move from rvalues.

From-SVN: r236716
This commit is contained in:
Jonathan Wakely 2016-05-25 16:43:06 +01:00 committed by Jonathan Wakely
parent d67dba4a96
commit 515e1860d3
2 changed files with 11 additions and 1 deletions

View File

@ -1,3 +1,11 @@
2016-05-25 Jonathan Wakely <jwakely@redhat.com>
Backport from mainline
2016-05-10 Jonathan Wakely <jwakely@redhat.com>
* include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
Overload operator* to move from rvalues.
2016-05-25 Jonathan Wakely <jwakely@redhat.com>
Backport from mainline

View File

@ -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;