Suggestion for CP.201: Avoid volatile compound operations
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- cpp
- Ambito
- documentation, tooling
Direzione di ricerca
Non viene indicato alcun file né alcun punto di ingresso dei test. Inizia individuando la linea guida CP.201 e i meccanismi di applicazione del progetto, quindi determina come vengono identificate le operazioni composte sulle variabili volatile; il lavoro è completato quando la regola e il suo comportamento di applicazione coprono i casi indicati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
CP.201 Limit use of volatile variables to loads and stores
Reason
- Compilers don't agree on whether compound operations should be split up, which makes our code less portable. This distinction is very important when working with
volatilememory. - Compound operations other than compound assignment are deprecated for
volatile.
Example
volatile uint32_t counter;
void update()
{
counter++; // bad, is this in-place increment, or a separate read, add, and write?
// the difference matters for volatile access!
auto x = counter; // good, this is always a read, modify, and write
counter = x + 1;
}
Alternative
Create convenience functions for compound volatile operations, and implement them using explicit loads and stores.
Enforcement
Flag compound operations on volatile variables.
- Lingua principale
- CSS
- Stelle
- 45.3k
- Fork
- 5.6k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
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 isocpp/CppCoreGuidelines
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 75/100
isocpp/CppCoreGuidelines#2338 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
isocpp/CppCoreGuidelines#2205 · 8 commenti ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 64/100
isocpp/CppCoreGuidelines#1649 · 3 commenti ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 42/100
isocpp/CppCoreGuidelines#2336 · 4 commenti ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
isocpp/CppCoreGuidelines#2335 · 2 commenti ·
Tutte le issue di isocpp/CppCoreGuidelines
Issue simili
-
area:kubernetes source:reader type:content-error
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
stephrobert/blog-roadmap#24 ·
-
Link Checker ReportApertaautomated issue report
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
PedestrianDynamics/pyFDS-Evac#342 ·
I maintainer di solito rispondono entro 1 giorno
-
Docs Timedelta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
pandas-dev/pandas#69919 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
supabase/agent-skills#614 ·