[task.overview] # 33 Execution control library [[exec]](./#exec) ## 33.13 Coroutine utilities [[exec.coro.util]](exec.coro.util#task.overview) ### 33.13.6 execution​::​task [[exec.task]](exec.task#task.overview) #### 33.13.6.1 task overview [task.overview] [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/exec.tex#L7171) The task class template represents a sender that can be used as the return type of coroutines[.](#1.sentence-1) The first template parameter T defines the type of the value completion datum ([[exec.async.ops]](exec.async.ops "33.3 Asynchronous operations")) if T is not void[.](#1.sentence-2) Otherwise, there are no value completion datums[.](#1.sentence-3) Inside coroutines returning task the operand ofco_return (if any) becomes the argument of set_value[.](#1.sentence-4) The second template parameter Environment is used to customize the behavior of task[.](#1.sentence-5)