std::packaged_task
Материал из cppreference.com
![]() |
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструк��ий перейдите по ссылке.) |
Определено в заголовочном файле <future>
|
||
template< class > class packaged_task; //not defined |
(1) | (начиная с C++11) |
template< class R, class Args... > class packaged_task<R(Args...)>; |
(2) | (начиная с C++11) |
std::packaged_task
шаблон класса обертывания любой вызываемый цели (функции, лямбда-выражения, связывают выражение или другой функции объекта), так что он может быть вызван асинхронно, и его значение возврата или исключение хранятся в общей государства, которые могут быть доступны через std::future Объекты.Оригинал:
The class template
std::packaged_task
wraps any callable target (function, lambda expression, bind expression, or another function object) so that it can be invoked asynchronously, and its return value or exception thrown is stored in the shared state, which can be accessed through std::future objects.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Так же, как std::function,
std::packaged_task
является полиморфным, распределитель-Aware контейнера: хранить вызываемые цели может быть выделено на куче или с предоставлена распределитель.Оригинал:
Just like std::function,
std::packaged_task
is a polymorphic, allocator-aware container: the stored callable target may be allocated on heap or with a provided allocator.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
[править] Функции-члены
строит объект задачи Оригинал: constructs the task object Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент) | |
разрушает объект задачи Оригинал: destructs the task object Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент) | |
перемещает объект задачи Оригинал: moves the task object Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент) | |
проверяет, является ли объект задачи имеет действительную функцию Оригинал: checks if the task object has a valid function Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент) | |
свопы двух объектов задачу Оригинал: swaps two task objects Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент) | |
Оригинал: Getting the result Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. | |
возвращает std::future связанные с обещанный результат Оригинал: returns a std::future associated with the promised result Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент) | |
Оригинал: Execution Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. | |
выполняет функцию (public функция-элемент) | |
выполняет функцию обеспечения того, чтобы результат готов только один раз текущий поток существует Оригинал: executes the function ensuring that the result is ready only once the current thread exits Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент) | |
Сбрасывает состояние отказа от любых хранятся результаты предыдущих казней Оригинал: resets the state abandoning any stored results of previous executions Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент) |
[править] Функции, не являющиеся членами
Специализируется std::swap алгоритм Оригинал: specializes the std::swap algorithm Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) |
[править] Вспомогательные классы
Специализируется черта std::uses_allocator типа Оригинал: specializes the std::uses_allocator type trait Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (специализация шаблона класса) |
[править] Пример
Запустить этот код
#include <iostream> #include <future> #include <thread> int main() { std::packaged_task<int()> task([](){return 7;}); // wrap the function std::future<int> result = task.get_future(); // get a future std::thread(std::move(task)).detach(); // launch on a thread std::cout << "Waiting..."; result.wait(); std::cout << "Done!\nResult is " << result.get() << '\n'; }
Вывод:
Waiting...Done! Result is 7
[править] См. также
(C++11) |
ожидает значение, которое устанавливается асинхронно (шаблон класса) |