Devo me preocupar com os avisos do G ++ dizendo 'falhou inline'?
Pergunta
Em um projeto em que estou trabalhando no escritório, quando compilamos uma compilação de lançamento (com -OS), recebemos centenas de avisos do G ++ dizendo que a inline falhou. A maioria desses avisos parece vir de Boost, no entanto, alguns vêm de nossos próprios cabeçalhos da biblioteca (binários para os quais estamos vinculando). Esses avisos geralmente podem ser ignorados com segurança ou são algo com o qual eu deveria me preocupar?
Nota: Estamos usando G ++ 4.0 no Mac OS X
Solução
G ++ está alertando o que é essencialmente, estritamente um problema de desempenho - você está solicitando inline
implementações que simplesmente não podem ser inlinadas. Se o seu uso de inline
Realmente não importa, você deve removê-lo (os compiladores são capazes de embutir funções sem essa dica, você sabe!-), mas em termos de correção do código, você pode ignorar o aviso. Se o seu uso de inline
Realmente importa, ou seja, é crucial para o seu desempenho (em vez de ser uma otimização prematura boba), o aviso está lhe dizendo para refazer seu código para que possa ser alcançado (no pior caso, mudando para macros - suspiro, mas , quando você deve, você deve!-).
Outras dicas
Deve ser salvo se você não
- Bata um bug no GCC
- antecipar funções inlinadas em seu código
- Tente fazer coisas desagradáveis
Você deve tentar minimizar os avisos.