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

Odpowiedz Nowy wątek
2011-07-23 19:46
Anonimowy435346457
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

Pozostało 580 znaków

2011-07-23 20:15
0

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

Pozostało 580 znaków

2011-07-23 21:09
Anonimowy435346457
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?

Pozostało 580 znaków

2011-07-23 21:41
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.

metody const obiecują, że nie będą zmieniać obiektu na rzecz, którego są wywoływane, a nie argumentów(od tego są stałe argumenty) - byku_guzio 2011-07-23 22:04
Racja, przepraszam za błąd. - Filar 2011-07-24 12:37

Pozostało 580 znaków

2011-07-24 00:03
0

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

Pozostało 580 znaków

2011-07-24 00:22
0

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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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