make_pair
Una funzione di supporto del modello che è possibile utilizzare per costruire oggetti con tipo pair, in cui i tipi di componente sono basati sui tipi di dati passati come parametri.
template<class Type1, class Type2>
pair<Type1, Type2> make_pair(
Type1& _Val1,
Type2& -Val2
);
template<class Type1, class Type2>
pair<Type1, Type2> make_pair(
Type1& _Val1,
Type2&& -Val2
);
template<class Type1, class Type2>
pair<Type1, Type2> make_pair(
Type1&& _Val1,
Type2& -Val2
);
template<class Type1, class Type2>
pair<Type1, Type2> make_pair(
Type1&& _Val1,
Type2&& -Val2
);
Parametri
_Val1
Valore che consente di inizializzare il primo elemento pair._Val2
Valore che consente di inizializzare il secondo elemento pair.
Valore restituito
L'oggetto della coppia che viene costruito: pair<Type1, Type2> (_Val1*, _Val2*).
Note
Oggetto di conversione dimake_pair di tipo reference_wrapper Class ai tipi di riferimento e convertiti in cui scomporre matrici e le funzioni puntatori.
Nell'oggetto restituito pair, Type1 è determinato come segue:
Se il tipo di input Type1 è reference_wrapper<X>, il tipo restituito Type1 è X&.
In caso contrario, il tipo restituito Type1 è decay<Type1>::type.Se decay Class non è supportato, il tipo restituito Type1 corrisponde al tipo di input Type1.
Il tipo restituito Type2 è analogamente determinato dal tipo di input Type2.
Un vantaggio make_pair fatto che i tipi di oggetti che vengono archiviati sono determinati automaticamente dal compilatore e non devono essere specificati in modo esplicito.Non utilizzare gli argomenti di template espliciti come make_pair<int, int>(1, 2) quando si utilizza make_pair perché inutilmente dettagliato e aggiunge i problemi complessi di riferimento rvalue che potrebbero provocare un errore di compilazione.
La funzione di supporto make_pair consente di passare due valori a una funzione che richiede una coppia come parametro di input.
Esempio
Per un esempio su come utilizzare la funzione di supporto make_pair per dichiarare e inizializzare una coppia, vedere pair Structure.
Requisiti
intestazione: <utility>
Spazio dei nomi: deviazione standard