ExpertiDict

C++ · Intermediário · Inglês · Técnico

variadic template

ˌvɛɹ.iˈæd.ɪk ˈtɛm.pleɪtsubstantivo

Template que aceita um número variável de argumentos de tipo, declarado com um pacote de parâmetros (typename... Ts). O pacote é expandido com reticências nos pontos de uso.

Onde usar

Base de funções como std::make_unique, emplace_back e std::tuple, que repassam qualquer número de argumentos. Aparece em wrappers e em fábricas genéricas.

Em código

template <typename... Ts>
void log(const Ts&... args) {
  ((std::cout << args << ' '), ...);
}
log(1, "a", 2.5);  // 1 a 2.5

Exemplos

A variadic template lets the wrapper forward any arguments.

Um variadic template deixa o wrapper repassar quaisquer argumentos.

Expand the pack with three dots after the pattern.

Expanda o pacote com três pontos depois do padrão.

Cuidado

O pacote não é um contêiner em tempo de execução; para percorrê-lo usa-se expansão, fold expression ou recursão.

Sinônimos

template com pacote de parâmetros

Veja também

Todos os termos de C++