|  | 
|  | thread_pool (const unsigned int &number_of_threads=std::thread::hardware_concurrency()) | 
|  | 
|  | ~thread_pool () | 
|  | 
|  | thread_pool (const thread_pool &)=delete | 
|  | thread pool is non-copyable 
 | 
|  | 
| thread_pool & | operator= (const thread_pool &)=delete | 
|  | 
| template<typename Function , typename... Args, typename ReturnType  = std::invoke_result_t<Function &&, Args &&...>> requires std::invocable<Function, Args...>
 | 
| std::future< ReturnType > | enqueue (Function f, Args... args) | 
|  | Enqueue a task into the thread pool that returns a result. 
 | 
|  | 
| template<typename Function , typename... Args> requires std::invocable<Function, Args...> && std::is_same_v<void, std::invoke_result_t<Function &&, Args &&...>>
 | 
| void | enqueue_detach (Function &&func, Args &&...args) | 
|  | Enqueue a task to be executed in the thread pool that returns void. 
 | 
|  | 
| auto | size () const | 
|  | 
template<typename FunctionType = details::default_function_type, typename ThreadType = std::jthread>
requires std::invocable<FunctionType> && std::is_same_v<void, std::invoke_result_t<FunctionType>>
class dp::thread_pool< FunctionType, ThreadType >
- Examples
- mandelbrot/source/main.cpp.
template<typename FunctionType  = details::default_function_type, typename ThreadType  = std::jthread> 
template<typename Function , typename... Args, typename ReturnType  = std::invoke_result_t<Function &&, Args &&...>> 
requires std::invocable<Function, Args...>
  
  | 
        
          | std::future< ReturnType > dp::thread_pool< FunctionType, ThreadType >::enqueue | ( | Function | f, |  
          |  |  | Args... | args |  
          |  | ) |  |  |  | inline | 
 
Enqueue a task into the thread pool that returns a result. 
Note that task execution begins once the task is enqueued. 
- Template Parameters
- 
  
    | Function | An invokable type. |  | Args | Argument parameter pack |  | ReturnType | The return type of the Function |  
 
- Parameters
- 
  
    | f | The callable function |  | args | The parameters that will be passed (copied) to the function. |  
 
- Returns
- A std::future<ReturnType> that can be used to retrieve the returned value. 
- Examples
- mandelbrot/source/main.cpp.
 
 
template<typename FunctionType  = details::default_function_type, typename ThreadType  = std::jthread> 
template<typename Function , typename... Args> 
requires std::invocable<Function, Args...> && std::is_same_v<void, std::invoke_result_t<Function &&, Args &&...>>
  
  | 
        
          | void dp::thread_pool< FunctionType, ThreadType >::enqueue_detach | ( | Function && | func, |  
          |  |  | Args &&... | args |  
          |  | ) |  |  |  | inline | 
 
Enqueue a task to be executed in the thread pool that returns void. 
- Template Parameters
- 
  
    | Function | An invokable type. |  | Args | Argument parameter pack for Function |  
 
- Parameters
- 
  
    | func | The callable to be executed |  | args | Arguments that will be passed to the function. |