std::experimental::packaged_task (library fundamentals TS)

Technical specifications
Filesystem library (filesystem TS)
Library fundamentals (library fundamentals TS)
Library fundamentals 2 (library fundamentals 2 TS)
Extensions for parallelism (parallelism TS)
Concepts (concepts TS)
Extensions for concurrency (concurrency TS)
Special mathematical functions (special math TR)

This page is about the modified version of std::packaged_task with type-erased allocator support provided by the Library Fundamentals TSes. For the version of packaged_task provided by the concurrency TS supporting the std::future improvements made by that TS, see std::experimental::concurrency_v1::packaged_task.

Defined in header <experimental/future>
template< class > class packaged_task; //not defined
(1) (library fundamentals TS)
template< class R, class ...Args >
class packaged_task<R(Args...)>;
(2) (library fundamentals TS)

std::experimental::fundamentals_v1::packaged_task (and std::experimental::fundamentals_v2::packaged_task) is a modified version of std::packaged_task provided by the library fundamentals TS with support for type-erased allocators.


[edit] Member types

Member type Definition
allocator_type std::experimental::erased_type

[edit] Member functions

constructs the task object
(public member function)
retrieves a pointer to the memory resource used by this object to allocate memory
(public member function)

[edit] Non-member function

specializes the swap algorithm
(function template)

[edit] Helper classes

specializes the std::uses_allocator type trait
(class template specialization)

Members identical to std::packaged_task

Member functions

destructs the task object
(public member function of std::packaged_task)
moves the task object
(public member function of std::packaged_task)
checks if the task object has a valid function
(public member function of std::packaged_task)
swaps two task objects
(public member function of std::packaged_task)
Getting the result
returns a std::future associated with the promised result
(public member function of std::packaged_task)
executes the function
(public member function of std::packaged_task)
executes the function ensuring that the result is ready only once the current thread exits
(public member function of std::packaged_task)
resets the state abandoning any stored results of previous executions
(public member function of std::packaged_task)