Nunca se deve usar a função inline estática?
Existem duas implicações de usar oinline
palavra-chave (§ 7.1.3 / 4):
Normalmente, qualquer compilador convencional substituirá o corpo da função no ponto de chamada, se necessário, de modo que a função de marcaçãoinline
meramente por#1
não é realmente necessário.
Além disso#2
, Pelo que entendi quando você declara uma função comostatic inline
função,
ostatic
palavra-chave na função força oinline
função de ter uma ligação interna (funções inline têm ligação externa) Cada instância de tal função é tratada como uma função separada (endereço de cada função é diferente) e cada instância dessas funções tem suas próprias cópias de variáveis locais estáticas e literais de string (uma função inline tem apenas uma cópia destes)
Assim, tal função age como qualquer outrastatic
função e a palavra-chaveinline
não tem mais importância, torna-se redundante.
Então, praticamente marcando uma funçãostatic
einline
ambos não têm uso algum. Ou deveria serstatic
(não é o mais preferido) ouinline
(mais preferido)
Então, está usandostatic
einline
juntos em uma funçãopraticamente sem utilidade?