Czy ma sens używanie słów kluczowych inline z szablonami?
Ponieważ szablony są definiowane w nagłówkach, a kompilator jest w stanie określić, czy wstawianie funkcji jest korzystne, czy ma to sens? Słyszałem, że nowoczesne kompilatory wiedzą lepiej, kiedy wbudować funkcję i ignorująinline
Wskazówka.
edit: Chciałbym zaakceptować obie odpowiedzi, ale nie jest to możliwe. Aby zamknąć problem, który akceptujęfresnelaodpowiedź, ponieważ otrzymała najwięcej głosów i ma formalną rację, ale jak wspomniałem w komentarzach, które rozważamSzczeniakiKomponent 10odpowiedzi również jako poprawne, z innego punktu widzenia.
Problem dotyczy semantyki C ++, która nie jest ścisła w przypadkuinline
słowo kluczowe i wstawianie.fresnela mówi „pisz w linii, jeśli masz na myśli”, ale to, co w rzeczywistości oznaczainline
nie jest jasne, ponieważ ewoluowało od pierwotnego znaczenia do dyrektywy, która „powstrzymuje kompilatorów narzekających na naruszenia ODR” jakoSzczeniak mówi.