Created on 2014-01-30.00:00:00 last changed 90 months ago
Proposed resolution:
Change 13 Class directory_iterator [class.directory_iterator]:
To 13.1 directory_iterator members [directory_iterator.members] add:directory_iterator(const directory_iterator& rhs)= default; directory_iterator(directory_iterator&& rhs) noexcept= default; ... directory_iterator& operator=(const directory_iterator& rhs)= default; directory_iterator& operator=(directory_iterator&& rhs) noexcept= default;
directory_iterator(const directory_iterator& rhs); directory_iterator(directory_iterator&& rhs) noexcept;Effects: Constructs an object of class
directory_iterator
.Postconditions:
*this
has the original value ofrhs
.directory_iterator& operator=(const directory_iterator& rhs); directory_iterator& operator=(directory_iterator&& rhs) noexcept;Effects: If
*this
andrhs
are the same object, the member has no effect.Postconditions:
Returns:*this
has the original value ofrhs
.*this
.
Change 14 Class recursive_directory_iterator [class.rec.dir.itr]:
To 14.1 recursive_directory_iterator members [rec.dir.itr.members] add:recursive_directory_iterator(const recursive_directory_iterator& rhs)= default; recursive_directory_iterator(recursive_directory_iterator&& rhs) noexcept= default; ... recursive_directory_iterator& operator=(const recursive_directory_iterator& rhs)= default; recursive_directory_iterator& operator=(recursive_directory_iterator&& rhs) noexcept= default;
recursive_directory_iterator(const recursive_directory_iterator& rhs);Effects: Constructs an object of class
recursive_directory_iterator
.Postconditions:
this->options() == rhs.options() && this->depth() == rhs.depth() && this->recursion_pending() == rhs.recursion_pending()
.recursive_directory_iterator(recursive_directory_iterator&& rhs) noexcept;Effects: Constructs an object of class
recursive_directory_iterator
.Postconditions:
this->options()
,this->depth()
, andthis->recursion_pending()
return the values thatrhs.options()
,rhs.depth()
, andrhs.recursion_pending()
, respectively, had before the function call.recursive_directory_iterator& operator=(const recursive_directory_iterator& rhs);Effects: If
*this
andrhs
are the same object, the member has no effect.Postconditions:
Returns:this->options() == rhs.options() && this->depth() == rhs.depth() && this->recursion_pending() == rhs.recursion_pending()
.*this
.recursive_directory_iterator& operator=(recursive_directory_iterator&& rhs) noexcept;Effects: If
*this
andrhs
are the same object, the member has no effect.Postconditions:
Returns:this->options()
,this->depth()
, andthis->recursion_pending()
return the values thatrhs.options()
,rhs.depth()
, andrhs.recursion_pending()
, respectively, had before the function call.*this
.
[ 18 Jun 2014 "= default" removed per LWG discussion ]
[ 21 May 2014 Beman Dawes provided proposed resolution wording. ]
[ Daniel Krügler 2014-02-28 ]
directory_iterator begin(directory_iterator iter) noexcept; directory_iterator end(const directory_iterator&) noexcept;are noexcept, but we have no guarantee that at least the move-constructor is noexcept:
directory_iterator(const directory_iterator&) = default; directory_iterator(directory_iterator&&) = default;This means that either the above noexcept specifications are not warranted or that at least the move-constructor of directory_iterator is required to be noexcept. The same applies to recursive_directory_iterator.
Addresses: filesys.ts
class directory_iterator move construct/assign should be noexcept.
class recursive_directory_iterator move construct/assign should be noexcept.
History | |||
---|---|---|---|
Date | User | Action | Args |
2017-07-30 20:10:41 | admin | set | status: wp -> open |
2016-01-28 01:00:35 | admin | set | messages: + msg7840 |
2016-01-28 01:00:35 | admin | set | messages: + msg7839 |
2016-01-28 01:00:35 | admin | set | messages: + msg7838 |
2016-01-28 01:00:35 | admin | set | messages: + msg7837 |
2016-01-28 01:00:35 | admin | set | messages: + msg7836 |
2014-01-30 00:00:00 | admin | create |