iterative-solver 0.0
molpro::linalg::array::util::Task< Result > Class Template Reference

#include <util.h>

Public Member Functions

 Task (std::future< Result > &&task)
 
 Task (Task &&other)=default
 
 ~Task ()
 
bool test ()
 Returns true if the task has completed. More...
 
Result wait ()
 wait for the task to complete and return its result More...
 

Static Public Member Functions

template<class Func , typename... Args>
static Task create (Func &&f, Args &&...args)
 

Protected Attributes

std::future< Result > m_task
 

Constructor & Destructor Documentation

◆ Task() [1/2]

template<typename Result = void>
molpro::linalg::array::util::Task< Result >::Task ( std::future< Result > &&  task)
inline

◆ Task() [2/2]

template<typename Result = void>
molpro::linalg::array::util::Task< Result >::Task ( Task< Result > &&  other)
default

◆ ~Task()

template<typename Result = void>
molpro::linalg::array::util::Task< Result >::~Task ( )
inline

Member Function Documentation

◆ create()

template<typename Result = void>
template<class Func , typename... Args>
static Task molpro::linalg::array::util::Task< Result >::create ( Func &&  f,
Args &&...  args 
)
inlinestatic

◆ test()

template<typename Result = void>
bool molpro::linalg::array::util::Task< Result >::test ( )
inline

Returns true if the task has completed.

◆ wait()

template<typename Result = void>
Result molpro::linalg::array::util::Task< Result >::wait ( )
inline

wait for the task to complete and return its result

Member Data Documentation

◆ m_task

template<typename Result = void>
std::future<Result> molpro::linalg::array::util::Task< Result >::m_task
protected