Creating a flatten() method to get the inner Future<T> value out of a Future<Future<T>>.
Summary: Method will only be applicable for types of the form Future<Future<T>>, calling flatten() on a Future<T> where <T> != Future<R> for any <R> will result with a compile time error.
Test Plan: Added tests in FutureTest.cpp.
Reviewed By: hans@fb.com
Subscribers: ldbrandy, trunkagent, folly-diffs@, jsedgwick, yfeldblum, icanadi
FB internal diff:
D1843581
Tasks:
6166903
Signature: t1:
1843581:
1424399517:
7146924db3c238b77dd309f1d5916e44a7e81968