Date
2015-11-05.00:00:00
Message id
7627

Content

future::share() is not noexcept, it has a narrow contact requiring valid() as per the blanket wording in [futures.unique_future] p3. Its effects, however, are return shared_future<R>(std::move(*this)), which is noexcept as it has a wide contract. If the source future isn't valid then the target shared_future simply won't be valid either. There appears to be no technical reason preventing future::share() from having a wide contract, and thus being noexcept.