Files
2025-10-25 03:02:53 +03:00

29 lines
1.4 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[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.10Function 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.2Boolean testability[concept.booleantestable]") ([[concept.booleantestable]](concept.booleantestable "18.5.2Boolean 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.3Cpp17Clock requirements[time.clock.req]") requirements ([[time.clock.req]](time.clock.req "30.3Cpp17Clock requirements"));
the program is ill-formed if is_clock_v<C> is false[.](#1.sentence-6)