В чем разница между future и shared_future? 
В каких случаях мы должны использовать shared_future вместо future?
Я пытался найти хорошую документацию, которая будет противопоставлять эти две функции С++ 11, и я не мог найти ответ (как минимум, легко читаемый) в Интернете.
Это мое текущее понимание различий
-  futureобъект может быть запрошен только один раз дляget().
-  shared_futureможет запрашиваться любое количество раз.
прецедент:
Если несколько потоков зависят от результата асинхронной задачи, мы должны использовать shared_future.
Если будущий объект нужно запрашивать несколько раз в одном и том же потоке, мы должны использовать вместо него shared_future.
Приветствуется любая дополнительная информация, gotchas или общие рекомендации...
