Funções embutidas em C ++: declarar como tal, definir como tal ou ambos? Por quê?
O seguinte segmento de código é compilado sem problemas, mesmo quefoo
é definido em linha, mas não declarado como tal, ebar
é declarado em linha, mas não definido como tal.
int foo();
inline int foo() { return 3; }
inline int bar();
int bar() { return 4; }
inline int foobar();
inline int foobar() { return 5; }
int main(){
// ...
}
Minha primeira pergunta: o compilador lêfoo
como inline ou não? Sobrebar
? Isso é especificado pelo padrão C ++?
Minha segunda pergunta: Qual dessas é a melhor prática para declarar e definir funções embutidas? É issofoo
? bar
? oufoobar
? Por quê?
inb4 Li alguns outros posts relacionados a isso, mas nenhum deles responde diretamente à minha pergunta.
este resposta parece sugerir quefoo
está em linha, mas não diz nada sobrebar
. Também não explicaporque foo
é preferido sobre os outros.este A resposta fala sobre quando devo usar as funções embutidas. Essa não é minha preocupação: eu já decidi usar funções embutidas. Minha pergunta (questão 2, para ser mais preciso) é se devo declarar como tal, defini-lo como tal ou ambos, e por que uma das convenções tem um estilo melhor que o resto.este A pergunta parece estar mais próxima da minha preocupação, mas ninguém a respondeu.