Пространства имён
Варианты
Действия

std::packaged_task

Материал из cppreference.com
< cpp‎ | thread

 
 
Библиотека поддержки конкуренции
Ветви
(C++11)
(C++20)
(C++20)
Пространство имён this_thread
(C++11)
(C++11)
(C++11)
Атомарные типы
(C++11)
(C++20)
Инициализация атомарных типов
(C++11)(устарело в C++20)
(C++11)(устарело в C++20)
(C++11)(устарело в C++20)
Функции освобождения для атомарных операций
Функции освобождения для атомарных флагов
Упорядочивание памяти
Взаимное исключение
(C++11)
Общее управление блокировкой
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
Условные переменные
(C++11)
Семафоры
Защёлки и барьеры
(C++20)
(C++20)
Фьючерсы
(C++11)
(C++11)
packaged_task
(C++11)
(C++11)
(C++11)
 
std::packaged_task
Функции-члены
Получение результата
Оригинал:
Getting the result
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Выполнение
Оригинал:
Execution
Текст был переведён автоматически используя Переводчик 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)
ожидает значение, которое устанавливается асинхронно
(шаблон класса) [править]