Quando usar funções embutidas
Funções embutidas são melhor utilizadas para pequenas funções como, por exemplo, acesso a membros de dados privados.O principal objetivo dessas funções "acessador" de uma ou duas linhas é retornar informações de estado sobre objetos; curtas funções são sensíveis a sobrecarga de chamadas de função.Funções mais gastar proporcionalmente menos tempo na seqüência de retorno de chamada/e beneficiar-se menos de inlining.
Exemplo
O Point classe, introduzida no Resultados da chamada de função pode ser otimizado da seguinte maneira:
// when_to_use_inline_functions.cpp
class Point
{
public:
// Define "accessor" functions as
// reference types.
unsigned& x();
unsigned& y();
private:
unsigned _x;
unsigned _y;
};
inline unsigned& Point::x()
{
return _x;
}
inline unsigned& Point::y()
{
return _y;
}
int main()
{
}
Supondo que a manipulação de coordenada é uma operação relativamente comum em um cliente de tal uma classe, especificando as duas funções de assessor (x e y no exemplo anterior) como in-line normalmente economiza a sobrecarga em:
Chamadas de função (incluindo a passagem de parâmetro e colocar o endereço do objeto na pilha)
Preservação do quadro de pilha do chamador
O programa de instalação do novo quadro de pilha
Valor de retorno comunicação
Restauração antigo do quadro de pilha
Return