Ponieważ szablony są zdefiniowane w nagłówkach, a kompilator jest w stanie określić, czy wstawianie funkcji jest korzystne, czy ma to jakiś sens? Słyszałem, że współczesne kompilatory wiedzą lepiej, kiedy wstawić funkcję i ignorują inline
wskazówkę.
edycja: chciałbym zaakceptować obie odpowiedzi, ale nie jest to możliwe. Aby zamknąć sprawę, przyjmuję odpowiedź phresnela , ponieważ otrzymał on najwięcej głosów i formalnie ma on rację, ale jak wspomniałem w komentarzach, uważam, że odpowiedzi Szczenięcia i Komponentu 10 również są poprawne, z innego punktu widzenia .
Problem tkwi w semantyce C ++, która nie jest ścisła w przypadku inline
słów kluczowych i inliningu. phresnel mówi „pisz w tekście , jeśli masz to na myśli”, ale to, co właściwie oznacza, inline
nie jest jasne, ponieważ ewoluowało od pierwotnego znaczenia do dyrektywy, która „powstrzymuje kompilatory narzekanie na naruszenia ODR”, jak mówi Puppy .