29 lines
1.4 KiB
Markdown
29 lines
1.4 KiB
Markdown
[thread.req.paramname]
|
||
|
||
# 32 Concurrency support library [[thread]](./#thread)
|
||
|
||
## 32.2 Requirements [[thread.req]](thread.req#paramname)
|
||
|
||
### 32.2.1 Template parameter names [thread.req.paramname]
|
||
|
||
[1](#1)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/threads.tex#L31)
|
||
|
||
Throughout this Clause, the names of template parameters are used to express type
|
||
requirements[.](#1.sentence-1)
|
||
|
||
Predicate is a function object type ([[function.objects]](function.objects "22.10 Function objects"))[.](#1.sentence-2)
|
||
|
||
Let pred denote an lvalue of type Predicate[.](#1.sentence-3)
|
||
|
||
Then the expression pred() shall be well-formed and
|
||
the type decltype(pred()) shall model[*boolean-testable*](concept.booleantestable#concept:boolean-testable "18.5.2 Boolean testability [concept.booleantestable]") ([[concept.booleantestable]](concept.booleantestable "18.5.2 Boolean testability"))[.](#1.sentence-4)
|
||
|
||
The return value of pred(), converted to bool,
|
||
yields true if the corresponding test condition is satisfied, andfalse otherwise[.](#1.sentence-5)
|
||
|
||
If a template parameter is named Clock,
|
||
the corresponding template argument shall be a type C that meets the [*Cpp17Clock*](time.clock.req#:Cpp17Clock "30.3 Cpp17Clock requirements [time.clock.req]") requirements ([[time.clock.req]](time.clock.req "30.3 Cpp17Clock requirements"));
|
||
the program is ill-formed if is_clock_v<C> is false[.](#1.sentence-6)
|