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

### 3107. `istreambuf_iterator` has public exposition-only member

Section: 23.6.4 [istreambuf.iterator] Status: New Submitter: Billy O'Neal III Opened: 2018-04-26 Last modified: 2020-09-06

Priority: 4

View other active issues in [istreambuf.iterator].

View all other issues in [istreambuf.iterator].

View all issues with New status.

Discussion:

LWG has said recently that we don't want public exposition-only things, as that may encourage users to try to use those names (and some implementers to actually use those names).

[2018-06-18 after reflector discussion]

Priority set to 4

Proposed resolution:

This wording is relative to N4741.

1. Edit 23.6.4 [istreambuf.iterator] as indicated:

   >     namespace std {
   >       template<class charT, class traits = char_traits<charT>>
   >       class istreambuf_iterator {
   >       public:
   >         […]
   >         using istream_type = basic_istream<charT,traits>;

   >         class proxy; // exposition only

   >         constexpr istreambuf_iterator() noexcept;
   >         […]
   >       private:
   >         class proxy; // exposition only
   >         streambuf_type* sbuf_; // exposition only
   >       };
   >       […]
   >     }