new future impl: 1.part: promise, future, future_base, future_object
new future impl: shared_future