Splitting the return value of type pair into two different senders
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- cpp
- Ambito
- backend-api-design
Direzione di ricerca
Inizia dall’issue #479 e dalla semantica di split() della proposta descritta lì. Determina se l’attuale modello di sender supporta lo spostamento dei due elementi di una coppia in sender downstream separati senza copiarli, e documenta l’approccio supportato o il design necessario mancante. Nell’issue non sono nominati file sorgente né test.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hello, I am a grad student at Georgia Tech and I have been trying to follow your work on this proposal closely. I am quite looking forward to this proposal going into the C++ standard someday. My question is as follows:
Let's say we have a sender that returns a pair of values std::pair<std::vector, std::set>
Since these objects can be quite costly to copy, I want to move them. But let's say they are computed by a single sender and I want to move these into two different senders creating a split in the dependency chain.
A
| \
B C
So, above the A sender returns the pair and I want the contents of the pair moved to senders B and C. In the proposal, one can use the split() to achieve this kind of split in the dependency DAG but I don't see how I can avoid copying the pair when I create a multishot sender so that both B and C get access to the pair. But, as you can see, this doesn't achieve what I want. I want to move the first of the pair to B and the second of the pair to C.
Is there a way to achieve this kind of functionality with the current status of the proposal?
Thanks,
Fatih
- Lingua principale
- C++
- Stelle
- 2.4k
- Fork
- 270
- Merge medio
- 2g 17h
- PR unite (30g)
- 37
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di NVIDIA/stdexec
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 66/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 74/100
Tutte le issue di NVIDIA/stdexec
Issue simili
-
ai_reviewed
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
ydb-platform/ydb#53869 · 3 commenti ·
-
bug cert blocker needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
project-chip/connectedhomeip#74373 ·
-
[request] tracy/0.14.1 Apertaupstream update
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
conan-io/conan-center-index#31035 ·
-
Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
documentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
vllm-project/vllm-ascend#17329 ·