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. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. | |
| выполняет функцию Оригинал: executes the function Текст был переведён автоматически используя Переводчик 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) |
ожидает значение, которое устанавливается в асинхронном режиме Оригинал: waits for a value that is set asynchronously Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |

