[hardware.interference] Bad examples of using alignas
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Documentazione
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- cpp
- Ambito
- documentation
Direzione di ricerca
Inizia con i due esempi di interferenza hardware citati nell'issue e rivedi la formulazione circostante della bozza dello standard relativa a alignas e ai requisiti di allineamento. Determina se gli esempi richiedono la gestione di allineamenti validi e se alignas(sizeof(together)) è giustificato. Il lavoro è completato quando gli esempi e la loro spiegazione non implicano più assunzioni di allineamento non supportate e la motivazione del secondo esempio è chiara.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Example 1 is the following:
struct keep_apart {
alignas(hardware_destructive_interference_size) atomic<int> cat;
alignas(hardware_destructive_interference_size) atomic<int> dog;
};
There is nothing specifying that these must be valid alignments, or that they must even be nonnegative integer powers of two. Would it make sense to use something like bit_ceil here, plus a check to handle the case where that result is not representable? That would fix the latter issue, not sure if it is possible to check if something is a valid alignment.
Example 2 is the following:
struct together {
atomic<int> dog;
int puppy;
};
struct kennel {
// Other data members...
alignas(sizeof(together)) together pack;
// Other data members...
};
static_assert(sizeof(together) <= hardware_constructive_interference_size);
Why is alignas(sizeof(together)) being done? The two issues mentioned above are also present here.
- Lingua principale
- TeX
- Stelle
- 221
- Fork
- 813
- Merge medio
- 17h 45m
- PR unite (30g)
- 34
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 cplusplus/draft
-
P2-Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
P2-Bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
-
[dcl.array] Grammar typo Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Tutte le issue di cplusplus/draft
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 95/100
Git-it-App/git-it-electron#1047 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
neondatabase/website#5944 ·
-
📕documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
db-ux-design-system/core-web#8239 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
libsdl-org/sdlwiki#1008 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100