MEC++: Ottimizzazione del valore di ritorno

Appunti tratti dalla rilettura di More Effective C++ di Scott Meyers. Quarto blocco: Efficienza.

(20) Facilitare l'ottimizzazione del valore di ritorno.

Spesso il compilatore può ottimizzare il codice in modo da eliminare l'aggravio del costo di tornare un oggetto by-value. Per aiutare il compilatore in questa ottimizzazione si può scrivere il codice in questo modo:

const Rational operator*(const Rational& lhs,
const Rational& rhs)
{
return Rational(lhs.numerator() * rhs.numerator(),
lhs.denominator() * rhs.denominator());
}

Si torna il costruttore di un oggetto. In genere il compilatore é capace di risolvere questa indicazione evitando la creazione di un oggetto temporaneo.

Meglio ancora se la funzione é dichiarata come inline.

Nessun commento:

Posta un commento