This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++17 status.

### 2726. `[recursive_]directory_iterator::increment(error_code&)` is underspecified

Section: 29.12.11.2 [fs.dir.itr.members], 29.12.12.2 [fs.rec.dir.itr.members] Status: C++17 Submitter: Daniel Krügler Opened: 2016-06-20 Last modified: 2017-07-30

Priority: 0

View all other issues in [fs.dir.itr.members].

View all issues with C++17 status.

Discussion:

Setting `X` as being either `directory_iterator` or `recursive_directory_iterator` there exists a member function in `X`,

>     X& increment(error_code& ec) noexcept;

whose effects are described as:

> As specified by Input iterators (24.2.3).

which is somewhat surprising, because for input iterators there is no call expression naming `increment` specified.

The intention here is to consider `increment` as a another name for the prefix increment operator of iterators, but that needs to be expressed somewhere.

[2016-06 Oulu]

Moved to P0/Ready during issues prioritization.

Friday: status to Immediate

Proposed resolution:

This wording is relative to N4594.

> [Drafting note: The suggested wording for this issue also repairs the information loss that had been caused by the third bullet of the proposed resolution of 2704]

1. Change 29.12.11.2 [fs.dir.itr.members] as indicated:

   >     directory_iterator& operator++();
   >     directory_iterator& increment(error_code& ec) noexcept;

   > > -10- Effects: As specified by for the prefix increment operation of Input iterators (23.3.5.3 [input.iterators]).

2. Change 29.12.12.2 [fs.rec.dir.itr.members] as indicated:

   >     recursive_directory_iterator& operator++();
   >     recursive_directory_iterator& increment(error_code& ec) noexcept;

   > > […]

   > > -27- Effects: As specified by for the prefix increment operation of Input iterators (23.3.5.3 [input.iterators]), except that: […]