
A couple of points that I would want to see clarified on the Boost.Futures proposal to make sure the major design decisions are vetted: The first is on callbacks. The description does not make clear what thread the callback is required to be done in. I would guess that the easiest implementation is to put it be in the thread in which the promise is fulfilled, but I would want that to be specified in the interface since it would affect how I would use it. A second question on callbacks: Would it not make sense to use the boost signals package for this? I think that provides a very rich interface for binding values to the callbacks, and that is very useful. Next, I'm wondering about the reference semantics. Is that there because it is not sensible to copy them? If that is the case then the alternative would be to prohibit copy and not require memory management under the hood. The downside there is that the user would usually have to use pointer to futures/promises in order to build containers of them. On the whole I think I come down on the side of liking the reference semantics, but I don't think it is a no brainer and would want to see some commentary on it. In general I like this package a lot and wish I could use it on my current project :-). -Steve Karmesin