id summary reporter owner description type status milestone component version severity resolution keywords cc 11734 future::then(Cont) should be able to execute the contination on undetermined thread viboes viboes "Concurrency TS defines future::then() as ""the continuation `INVOKE(DECAY_COPY(std::forward(func)), std::move(*this))` is called on an unspecified thread of execution with the call to `DECAY_COPY()` being evaluated in the thread that called then"". `boost::future::then()` has more overloads than Concurrency TS. However when not requested explicitly then Boost.Thread should conform to the proposed standard. As Concurrency TS doesn't have neither `async`, the future can be created only by a `promise` or a a `packaged_task`, so that there are neither futures with launch policy async nor deferred. In order to be as clear as possible, boost::future::then(Cont) can call the continuation on an unspecified thread of execution. If the user want other behavior, it can use then(launch_policy, Cont) or then(Executor, Cont) must wrap the continuation. However the current specification inherit from the parent future when there is no executor nor launch policy. If there is an interest and in order to provide the current behavior even with a different interface we can add an inherit policy Before {{{ f.then(c); }}} After {{{ f.then(launch::inherit, c); }}} " Feature Requests closed Boost 1.60.0 thread Boost 1.57.0 Problem fixed