Что дает std :: future некоторое общее состояние - PullRequest
0 голосов
/ 25 апреля 2018

A std::future имеет метод std::future::valid, который указывает, относится ли будущий объект к некоторому общему состоянию .Ни один из конструкторов не создает объект будущего, который ссылается на общее состояние (кроме конструктора перемещения, который может перемещать общее состояние из одного будущего объекта в другой). Все методы класса (get, wait, wait_for и wait_until требуют, чтобы у будущего объекта было общее состояние в качестве предварительного условия (они имеют неопределенное поведение, если valid() == false). Как тогда std::future может получить общее состояние и стать полезным?

1 Ответ

0 голосов
/ 25 апреля 2018

Обычно вы не используете std::future в изоляции;вы используете его с std::promise.std::promise конструкторы настраивают некоторое общее состояние .Затем вы можете использовать метод std::promise::get_future(), чтобы получить std::future, который ссылается на это общее состояние .

...