`get()` retrieves the result represented by a future, waiting until it is ready if necessary. With an asynchronous task, this lets the caller do other work before collecting the result. section 4.2.1
Listing 4.6. Using std::future to get the return value of an asynchronous task
#include <future>
#include <iostream>
int find_the_answer_to_ltuae();
void do_other_stuff();
int main()
{
std::future<int> the_answer=std::async(find_the_answer_to_ltuae);
do_other_stuff();
std::cout<<"The answer is "<<the_answer.get()<<std::endl;
}
The example starts a task with `std::async`, does other work, then calls `get()` to collect the answer. section 4.2.1
If the task throws, its exception is stored in the future; `get()` rethrows it. Continuations also use `get()` to retrieve prior results and propagate failures along the chain. section 4.2.4 section 4.4.4
