Ho una classe cnVector
che rappresenta un punto nello spazio tridimensionale. I suoi operatori + - */sono utilizzati intensivamente.
La loro applicazione è molto breve:Dovrei usare `inline` su funzioni molto usate?
cnVector cnVector::operator + (const cnVector& v) const {
return cnVector(
x + v.x,
y + v.y,
z + v.z);
}
La mia domanda è, perché questa funzione è molto breve, dovrei inline che anche se il suo uso intensivo? o genererebbe troppo codice quando lo usa quello molto?
Il contrassegno I funziona in modo semplice come inline. Non importa molto però, se si dice al compilatore di incorporare qualsiasi aspetto. "Inline any suitable" su MSVC. Non so su GCC. –
Il passaggio di GCC ['-finline-functions'] (http://gcc.gnu.org/onlinedocs/gcc/Inline.html) fornirà istruzioni per le funzioni inline automaticamente che si ritiene debbano essere sottolineate. –
My GCC (4.4.5) applica '-finline-small-functions' come ottimizzazione di base (ad es.' -O'/'-O1' e successive). –