ExpertiDict

C++ · Essencial · Inglês · Técnico

inline

ˈɪn.laɪnpalavra-chave

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++17

Exemplos

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.

Veja também

Todos os termos de C++