Descrição
Ele constrói um objeto do tipo de tupla apropriado para conter os elementos especificados em args.
Declaração
A seguir está a declaração para std :: make_tuple.
C ++ 98
template<class... Types>
tuple<VTypes...> make_tuple (Types&&... args);
C ++ 11
template<class... Types>
tuple<VTypes...> make_tuple (Types&&... args);
Parâmetros
args - Contém lista de elementos que a tupla construída deve conter.
Valor de retorno
Ele retorna um objeto de tupla do tipo apropriado para conter args.
Exceções
No-throw guarantee - esta função de membro nunca lança exceções.
Corridas de dados
Se qualquer tipo em Tipos for uma referência rvalue de um tipo que oferece suporte à semântica de movimentação, seu argumento correspondente será modificado.
Exemplo
No exemplo abaixo para std :: make_tuple.
#include <iostream>
#include <tuple>
#include <functional>
int main() {
auto first = std::make_tuple (10,'a');
const int a = 0; int b[3];
auto second = std::make_tuple (a,b);
auto third = std::make_tuple (std::ref(a),"abc");
std::cout << "third contains: " << std::get<0>(third);
std::cout << " and " << std::get<1>(third);
std::cout << std::endl;
return 0;
}
A saída deve ser assim -
third contains: 0 and abc