[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)