14 Oct
2015
14 Oct
'15
2:57 p.m.
Lawrence Crowl wrote:
Third, extending the use of std::future beyond its design goals caused problems. You would expect this of any system used beyond its goals. In particular, using std::futures for anything other than std::async was a step too far.
This is absolutely backwards. Future was always intended to be used as a generic future value. Hence the name, and the existence of 'promise'. Extending it beyond these design goals in order to imbue it with a lifetime management function caused the problems.