[exec.simple.counting.token]

# 33 Execution control library [[exec]](./#exec)

## 33.14 Execution scope utilities [[exec.scope]](exec.scope#exec.simple.counting.token)

### 33.14.2 Counting Scopes [[exec.counting.scopes]](exec.counting.scopes#exec.simple.counting.token)

#### 33.14.2.2 Simple Counting Scope [[exec.scope.simple.counting]](exec.scope.simple.counting#exec.simple.counting.token)

#### 33.14.2.2.4 Token [exec.simple.counting.token]

[ð](#lib:execution::simple_counting_scope::token)

namespace std::execution {struct simple_counting_scope::token {template<[sender](exec.snd.concepts#concept:sender "33.9.3 Sender concepts [exec.snd.concepts]") Sender> Sender&& wrap(Sender&& snd) const noexcept; bool try_associate() const noexcept; void disassociate() const noexcept; private: simple_counting_scope* *scope*; // *exposition only*};}

[ð](#lib:wrap,execution::simple_counting_scope::token)

`template<[sender](exec.snd.concepts#concept:sender "33.9.3 Sender concepts [exec.snd.concepts]") Sender>
  Sender&& wrap(Sender&& snd) const noexcept;
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/exec.tex#L8160)

*Returns*: std​::​forward<Sender>(snd)[.](#1.sentence-1)

[ð](#lib:try_associate,execution::simple_counting_scope::token)

`bool try_associate() const noexcept;
`

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/exec.tex#L8171)

*Effects*: Equivalent to: return *scope*->*try-associate*();

[ð](#lib:disassociate,execution::simple_counting_scope::token)

`void disassociate() const noexcept;
`

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/exec.tex#L8182)

*Effects*: Equivalent to *scope*->*disassociate*()[.](#3.sentence-1)
