O que é uma função inline?
Uma função inline é um tipo de função que tem um comportamento levemente diferente das funções comuns que temos em C++. Basicamente, suas chamadas são substituídas pela lógica da função em si, em tempo de compilação.
O quê? hein?
Bom, de uma forma bem simplista, o que acontece é o seguinte:
Este pedaço de codigo, quando for compilado, acaba virando isso:
Beleza, mas e o quico?
Esta técnica traz benefícios e malefícios. Na maioria dos casos (muita calma nessa hora! isso nem sempre é assim...) o código compilado torna-se:
- Mais rápido
Isto porque nós vamos economizar as chamadas de funções, ou seja, lá no assembly, não vai existir um desvio de fluxo (um jump) a cada chamada de função.
- Maior
Como a implementação da função é "colada" em cada chamada, o tamanho do executável final tende a crescer.
Implementação
Existem duas formas de tornar uma função inline:
- explicitamente: usando a palavra reservada inline:
- implicitamente: Quando uma função é implementada na própria declaração da classe, ela vira inline.
Esse é um artifício legal da linguagem, e deve ser usado - mas com responsabilidade :-)
sexta-feira, 3 de outubro de 2008
Assinar:
Postagens (Atom)