31 Thread support library [thread]

31.2 Requirements [thread.req]

31.2.6 decay_­copy [thread.decaycopy]

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:
template<class T> constexpr decay_t<T> decay_copy(T&& v)
    noexcept(is_nothrow_convertible_v<T, decay_t<T>>)
  { return std::forward<T>(v); }