2999. §[thread.decaycopy] issue

Section: 33.2.6 [thread.decaycopy] Status: New Submitter: Marshall Clow Opened: 2017-07-11 Last modified: 2017-11-01

Priority: 3

View all issues with New status.

Discussion:

[thread.decaycopy] says:

In several places in this Clause the operation DECAY_COPY(x) is used. All such uses mean call the function decay_copy(x) and use the result, where decay_copy is defined as follows:

but decay_copy is not defined in any synopsis.

The Ranges TS has a similar use of DECAY_COPY, except that theirs is also constexpr and noexcept.

We should mark the function decay_copy as "exposition only" and constexpr and noexcept.

[2017-07-16, Daniel comments]

Currently there exists no proper way to mark decay_copy as conditionally noexcept as explained in N3255 section "Adding to the Standard". This is also slighly related to the request to add an is_nothrow_convertible trait, as requested by LWG 2040.

[ 2017-11-01 P3 as result of c++std-lib online vote. ]

Proposed resolution: