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

### 2494. [fund.ts.v2] `ostream_joiner` needs `noexcept`

Section: 10.2 [fund.ts.v2::iterator.ostream.joiner] Status: TS Submitter: Nate Wilson Opened: 2015-05-03 Last modified: 2017-07-30

Priority: 0

View all issues with TS status.

Discussion:

Addresses: fund.ts.v2

In Library Fundamentals 2 N4481, [iterator.ostream.joiner], all operations are no-ops other than the assignment operator.

So, they should be marked as `noexcept`.

[2015-05, Lenexa]

Move to Immediate.

Proposed resolution:

This wording is relative to N4481 in regard to fundamental-ts-2 changes.

1. Change class template `ostream_joiner` synopsis, [iterator.ostream.joiner] p2, as indicated:

   >     namespace std {
   >     namespace experimental {
   >     inline namespace fundamentals_v2 {

   >     template <class DelimT, class charT = char, class traits = char_traits<charT> >
   >       class ostream_joiner {
   >       public:
   >         […]
   >         ostream_joiner<DelimT, charT,traits>& operator*() noexcept;
   >         ostream_joiner<DelimT, charT,traits>& operator++() noexcept;
   >         ostream_joiner<DelimT, charT,traits>& operator++(int) noexcept;
   >         […]
   >       };

   >     } // inline namespace fundamentals_v2
   >     } // namespace experimental
   >     } // namespace std

2. Change [iterator.ostream.joiner.ops] p3+5, as indicated:

   >     ostream_joiner<DelimT, charT, traits>& operator*() noexcept;

   > […]

   >     ostream_joiner<DelimT, charT, traits>& operator++() noexcept;
   >     ostream_joiner<DelimT, charT, traits>& operator++(int) noexcept;