Init
This commit is contained in:
39
cppdraft/exec/snd/transform.md
Normal file
39
cppdraft/exec/snd/transform.md
Normal file
@@ -0,0 +1,39 @@
|
||||
[exec.snd.transform]
|
||||
|
||||
# 33 Execution control library [[exec]](./#exec)
|
||||
|
||||
## 33.9 Senders [[exec.snd]](exec.snd#transform)
|
||||
|
||||
### 33.9.6 execution::transform_sender [exec.snd.transform]
|
||||
|
||||
[ð](#lib:transform_sender)
|
||||
|
||||
`namespace std::execution {
|
||||
template<class Domain, [sender](exec.snd.concepts#concept:sender "33.9.3 Sender concepts [exec.snd.concepts]") Sndr, [queryable](exec.queryable.concept#concept:queryable "33.2.2 queryable concept [exec.queryable.concept]")... Env>
|
||||
requires (sizeof...(Env) <= 1)
|
||||
constexpr [sender](exec.snd.concepts#concept:sender "33.9.3 Sender concepts [exec.snd.concepts]") decltype(auto) transform_sender(Domain dom, Sndr&& sndr, const Env&... env)
|
||||
noexcept(see below);
|
||||
}
|
||||
`
|
||||
|
||||
[1](#1)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/exec.tex#L2534)
|
||||
|
||||
Let *transformed-sndr* be the expressiondom.transform_sender(std::forward<Sndr>(sndr), env...) if that expression is well-formed; otherwise,default_domain().transform_sender(std::forward<Sndr>(sndr), env...)
|
||||
|
||||
Let *final-sndr* be the expression *transformed-sndr* if *transformed-sndr* and *sndr* have the same type ignoring cv-qualifiers;
|
||||
otherwise, it is
|
||||
the expression transform_sender(dom, *transformed-sndr*, env...)[.](#1.sentence-2)
|
||||
|
||||
[2](#2)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/exec.tex#L2549)
|
||||
|
||||
*Returns*: *final-sndr*[.](#2.sentence-1)
|
||||
|
||||
[3](#3)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/exec.tex#L2553)
|
||||
|
||||
*Remarks*: The exception specification is equivalent tonoexcept(*final-sndr*)[.](#3.sentence-1)
|
||||
Reference in New Issue
Block a user