Czy nigdy nie należy używać statycznej funkcji inline?
Istnieją dwa implikacje korzystania zinline
słowo kluczowe (§ 7.1.3 / 4):
Zazwyczaj każdy kompilator głównego nurtu w razie potrzeby zastąpi ciało funkcji w punkcie wywołania, więc funkcja znakowaniainline
tylko dla#1
nie jest naprawdę potrzebny.
Dalej w.r.t#2
, Jak rozumiem, kiedy deklarujesz funkcję jakostatic inline
funkcjonować,
Thestatic
słowo kluczowe funkcji wymuszainline
funkcja posiadania wewnętrznego powiązania (funkcje inline mają połączenie zewnętrzne) Każde wystąpienie takiej funkcji jest traktowane jako osobna funkcja (adres każdej funkcji jest inny) i każda instancja tych funkcji ma swoje własne kopie statycznych zmiennych lokalnych i literałów ciągów (funkcja inline ma tylko jedną kopię)
Tak więc taka funkcja działa jak każda innastatic
funkcja i słowo kluczoweinline
nie ma już znaczenia, staje się zbędny.
Tak, praktycznie oznaczanie funkcjistatic
iinline
oba nie mają żadnego zastosowania. Albo tak powinno byćstatic
(nie najbardziej preferowane) lubinline
(najbardziej preferowany),
Więc używastatic
iinline
razem na funkcjipraktycznie nieprzydatny?