[exec.simple.counting.ctor]

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

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

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

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

#### 33.14.2.2.2 Constructor and Destructor [exec.simple.counting.ctor]

[ð](#lib:execution::simple_counting_scope,constructor)

`simple_counting_scope() noexcept;
`

[1](#1)

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

*Postconditions*: *count* is 0 and *state* is *unused*[.](#1.sentence-1)

[ð](#lib:execution::simple_counting_scope,destructor)

`~simple_counting_scope();
`

[2](#2)

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

*Effects*: If *state* is not one of*joined*, *unused*, or *unused-and-closed*,
invokes terminate ([[except.terminate]](except.terminate "14.6.2 The std​::​terminate function"))[.](#2.sentence-1)

Otherwise, has no effects[.](#2.sentence-2)
