Partager via


make_pair

Fonction de modèle que vous pouvez utiliser pour construire des objets de type pair, dont les types de composants sont sélectionnés automatiquement en fonction des types de données qui sont transmis comme paramètres.

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);

Paramètres

  • Val1
    Valeur qui initialise le premier élément de pair.

  • Val2
    Valeur qui initialise le second élément de pair.

Valeur de retour

Objet paire construit : pair<Type1, Type2>(Val1, Val2).

Notes

make_pair convertit un objet de type reference_wrapper, classe en types référence et convertit des fonctions et des tableaux en décomposition en pointeurs.

Dans l'objet pair retourné, Type1 est déterminé comme suit :

  • Si le type d'entrée Type1 a pour valeur reference_wrapper<X>, le type retourné Type1 a pour valeur X&.

  • Sinon, le type retourné Type1 a pour valeur decay<Type1>::type. Si decay, classe n'est pas pris en charge, le type retourné Type1 est identique au type d'entrée Type1.

Le type retourné Type2 est déterminé de façon similaire à partir du type d'entrée Type2.

Un avantage de make_pair est que les types d'objets stockés sont déterminés automatiquement par le compilateur et ne sont pas tenus d'être spécifiés explicitement. N'utilisez pas d'arguments template explicites, tels que make_pair<int, int>(1, 2), lorsque vous utilisez make_pair, car cela est inutilement détaillé et ajoute des problèmes complexes de référence rvalue susceptibles de provoquer un échec de compilation. Pour cet exemple, la syntaxe correcte serait make_pair(1, 2).

La fonction d'assistance make_pair permet également de transmettre deux valeurs à une fonction qui requiert une paire en tant que paramètre d'entrée.

Exemple

Pour obtenir un exemple illustrant comment utiliser la fonction d'assistance make_pair pour déclarer et initialiser une paire, consultez pair, structure.

Configuration requise

En-tête : <utility>

Espace de noms : std

Voir aussi

Référence

<utility>

Lvalues et Rvalues