MS Visual C++ 2008 - Optymalizacje, a słowa inline, const

0

Witam

Czy oznaczanie metod klas jako inline lub const ma jakieś znaczenie dla optymalizacji ?

Jeżeli wybiorę w opcjach optymalizacyjnych kompilatora MS Visual C++ 2008 "Favor fast code", to kompilator będzie zamieniał metody na liniowe tylko te oznaczone słowem "inline" czy sam zadecyduje, które metody opłaca się przekształcić?

Pozdrawiam

0

Będzie starał się wygenerować jak najszybszy kod, więc sam zadecyduje, które metody warto przekształcić.

0

Ok, więc używanie inline jest nie potrzebne

A co ze słowem const do tworzenia stałej metody? Jakie korzyści daje "niskopoziomowo" ?
Czy to służy do tego, aby tylko przez przypadek nie zmienić pól klasy, a używanie przy opcji "Favor fast code" i tak nic nie zmieni?

0

Metody const "obiecują", że nie będą zmieniały obiektu przesłanego jako argument. Wątpię, aby miało to jakieś znaczenie w optymalizacji. Ewentualnie może program skompiluje się szybciej gdy nie ma const, bo kompilator nie będzie musiał sprawdzić, czy zmieniasz obiekt wewnątrz funkcji, ale na pewno nie będzie to spora ilość zaoszczędzonego czasu.

0

Według "Thinking in C++" Bruce'a Eckela, wszystkie metody klas są automatycznie ustalane jako inline. Znajdę odpowiedni cytat to go zamieszczę :)

0

@robin3d wszystkie metody klas których ciała są zdeklarowane wewnątrz definicji klasy, w innym wypadku nie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1