Posso seletivamente (forçar) incorporar uma funçã

No livroClean Code (e alguns outros que eu já vi e leio), é recomendável manter as funções pequenas e dividi-las se elas se tornarem grandes. Também sugere que as funções devem fazer uma coisa e apenas uma coisa.

Em Otimizando o software em C ++ Agner Fog afirma que ele não gosta da regra de quebrar uma função apenas porque ela ultrapassa um certo limite de um número de linhas. Ele afirma que isso resulta em saltos desnecessários que degradam o desempenh

Primeiro, entendo que não importa se o código em que estou trabalhando não está em um loop apertado e que as funções são pesadas, de modo que o tempo que leva para chamá-las é diminuído pelo tempo que o código na função leva executar. Mas vamos supor que estou trabalhando com funções que são, na maioria das vezes, usadas por outros objetos / funções e estão executando tarefas relativamente triviais. Essas funções seguem as sugestões listadas no primeiro parágrafo (ou seja, executam uma única função e são pequenas / compreensíveis). Então começo a programar uma função crítica de desempenho que utiliza essas outras funções em um loop restrito e é essencialmente uma função de quadro. Por fim, suponha que o alinhamento deles tenha um benefício para a função crítica de desempenho, mas nenhum benefício para qualquer outra função (sim, eu criei um perfil disso, embora com muitas cópias e colagens que desejo evitar).

Imediatamente, pode-se dizer que marca a funçãoinline e deixe o compilador escolher. Mas e se eu não quiser que todas essas funções estejam em um .inl arquivo ou exposto no cabeçalho? Na minha situação atual, as funções críticas de desempenho e as outras funções usadas estão todas no mesmo arquivo de orige

Para resumir, posso seletivamente (forçar) incorporar uma função (s) para uma única função, de modo que o código final se comporte como se fosse uma grande função em vez de várias chamadas para outras funçõe

questionAnswers(6)

yourAnswerToTheQuestion