C++ · Essencial · Inglês · Técnico
inline
Especificador que permite definir uma função ou variável em vários arquivos sem violar a regra de uma definição. Hoje é menos dica de otimização e mais regra de ligação.
Onde usar
Necessário ao definir funções em headers, para não gerar símbolos duplicados no linker. O compilador decide sozinho o que expandir em linha, com ou sem a palavra.
Em código
// util.h
inline int dobro(int x) {
return 2 * x;
}
inline constexpr int kMax = 10; // C++17Exemplos
Mark the function inline, it's defined in the header.
Marque a função como inline, ela é definida no header.
The linker complained about multiple definitions because inline was missing.
O linker reclamou de definições múltiplas porque faltava o inline.
Cuidado
Não é ordem para o compilador expandir a função; é só a permissão para várias definições idênticas.