[ 2020-07-17; Reflector prioritization ]
Set priority to 0 and status to Tentatively Ready after six votes in favour during reflector discussions.
Previous resolution [SUPERSEDED]:
This wording is relative to N4861.
Ideally the wording below would use a Mandates: element, but due to the still open issue LWG 3193 the wording below uses instead the more general "ill-formed" vocabulary.
Modify [futures.unique.future] as indicated:
namespace std { template<class R> class future { […] }; }-?- If is_array_v<R> is true or is_function_v<R> is true, the program is ill-formed.
-4- The implementation provides the template future and two specializations, future<R&> and future<void>. These differ only in the return type and return value of the member function get, as set out in its description, below.
Modify [futures.shared.future] as indicated:
namespace std { template<class R> class shared_future { […] }; }-?- If is_array_v<R> is true or is_function_v<R> is true, the program is ill-formed.
-4- The implementation provides the template shared_future and two specializations, shared_future<R&> and shared_future<void>. These differ only in the return type and return value of the member function get, as set out in its description, below.