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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top