Avoid useless vector coping by move semantic and using referenceness qualifier
Nessuno ha ancora preso questa issue.
- Lingua principale
- C++
- Stelle
- 492
- Fork
- 130
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
For example:
const std::vector<uint8_t> &BlaBla::toBuffer() const {
return data_;
}
If we use it to make BlaBla and get std::vector<uint8_t> from that and that all.
std::vector<uint8_t> vec = BlaBla().toBuffer(); // <= copy here
Will be better to use ref-qualifier to move data from sigle-used temp object:
const std::vector<uint8_t> &BlaBla::toBuffer() const & { // <= method for case of usual object
return data_;
}
std::vector<uint8_t> BlaBla::toBuffer() const && { // <= method for case of temp object
return std::move(data_);
}
std::vector<uint8_t> &BlaBla::asBuffer() { // <= method to access internal vector
return data_;
}
const std::vector<uint8_t> &BlaBla::asBuffer() const { // <= method to RO-access internal vector
return data_;
}
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.
Direzione di ricerca
Inizia cercando BlaBla::toBuffer e il membro data_ nella codebase, quindi esamina come i chiamanti ottengono i buffer da oggetti temporanei e non temporanei. Usa come comportamento di riferimento gli esempi di toBuffer con ref-qualified e di asBuffer dell’issue, e verifica che l’uso temporaneo eviti una copia non necessaria, mantenendo al contempo disponibile l’accesso ordinario.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cpp
- Ambito
- backend-api-design
- Tipo di issue
- Refactoring
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 25/100