cuda::experimental::stf::task_dep_vector#

template<typename ...Data>
class task_dep_vector : public std::vector<task_dep_untyped>#

Typed dependencies - carries dependency objects along with their types.

If types are not needed, this type can be converted implicitly to task_dep_vector_untyped.

Template Parameters:

Data – Types of the objects the task depends on

Public Types

template<size_t i>
using type_at = ::std::tuple_element_t<i, ::std::tuple<Data...>>#

Get the type depended upon at position i.

For example, typename task_dep_vector<int, double>::type_at<1> is double.

Template Parameters:

i

Public Functions

template<typename T>
inline task_dep_vector(task_dep<T> d)#

Constructor (applies only for task_dep_vector<T>)

Template Parameters:

T – Data type

Parameters:

d – typed task dependency object

inline task_dep_vector(task_dep<Data>... deps)#

Create given a number of task_dep instantiations.

Parameters:

deps – typed dependency objects

template<size_t i>
inline task_dep<type_at<i>> &at()#

Get the task_dep instantiation at position i.

For example, typename task_dep_vector<int, double>::type_at<1> is an object type task_dep<double>.

Template Parameters:

i

inline ::std::tuple<Data...> instance(task &t)#

Extracts physical data from this object to an ::std::tuple<Data...> object.

The physical data extracted is usable only after the dependencies have been satisfied.

Returns:

::std::tuple<Data…>

Public Members

task_dep_untyped elements#

STL member.

Friends

friend class task_dep_vector