Некоторые темы на C++ могут вызывать сильные страсти, и исключения не являются исключением. Мы не можем не упомянуть — для чисто информационных целей — что, когда вам нужно толькосначаларезультат от некоторого количества одновременно работающих волокон, можно было бы передать<shared_ptr<promise<>>>к участвующим волокнам, а затем заставить инициирующее волокно вызвать.<future::get()>на его<future<>>. Первый звонок<promise::set_value()>на этом совместном<promise>преуспеет; последующие<set_value()>призывы на том же<promise>примере бросят<future_error>.
Используйте эту информацию по своему усмотрению. Остерегайтесь темной стороны.
Статья when_any, a dubious alternative раздела Chapter 1. Fiber when_any может быть полезна для разработчиков на c++ и boost.