fix std::future<> issue for clang 3.2

clang 3.2 doesn't support to default construct a future<>; use a unique_ptr<future<>> instead to workaround this issue