Как получить аргумент для promise::set_exception(x)?

Я нашел в нескольких местах о том, как promise должны использоваться ссылки на copy_exception, но я не могу найти это в текущем FDIS. Есть ли альтернативный способ использования set_exception() после этих блогов?

Например, здесь

void asyncFun(promise intPromise)
{
    int result;
    try {
        // calculate the result
        intPromise.set_value(result);
    } catch (MyException e) {
        intPromise.set_exception(std::copy_exception(e));  // <- copy
    }
}

я нашел std::current_exception() здесь.

catch(...)
{
    p.set_exception(std::current_exception());
}

Поэтому мои вопросы:

  • Должен ли я всегда использовать current_exception(), даже когда я не ловлю "... "?
  • Или есть другое название для copy_exception?

11
задан curiousguy 23 December 2011 в 05:34
поделиться