/// easier to read and slightly more efficient.
template <class Func>
auto via(Executor*, Func&& func)
- -> Future<typename isFuture<decltype(func())>::Inner>;
+ -> Future<typename isFuture<decltype(std::declval<Func>()())>::Inner>;
/** When all the input Futures complete, the returned Future will complete.
Errors do not cause early termination; this Future will always succeed
* indicating that the failure was transitory.
*
* Cancellation is not supported.
+ *
+ * If both FF and Policy inline executes, then it is possible to hit a stack
+ * overflow due to the recursive nature of the retry implementation
*/
template <class Policy, class FF>
typename std::result_of<FF(size_t)>::type