(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