Futures and async functions provide a powerful mechanism for writing parallel and understandable code. Async functions are flexible and support different execution policies. Promises are another mechanism that enables developers to overcome the complexities of asynchronous programming. More information can be found in the reference pages for std::future at [https://en.cppreference.com/w/cpp/thread/future], std::promise at [https://en.cppreference.com/w/cpp/thread/promise], and std::async at [https://en.cppreference.com/w/cpp/thread/async].