Udostępnij za pośrednictwem


make_pair

Funkcja szablonu, która służy do konstruowania obiektów typu pair, gdzie typy składników są wybierane automatycznie na podstawie typów danych, które są przekazywane jako parametry.

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

Parametry

  • Val1
    Wartość, która inicjuje pierwszy element pair.

  • Val2
    Wartość, która inicjuje drugi element pair.

Wartość zwracana

Obiekt pary, który jest tworzony: pair<Type1, Type2> (Val1, Val2).

Uwagi

make_pair konwertuje obiekt typu reference_wrapper — Klasa do typów odwołań i konwertuje zanikające tablice i funkcje do wskaźników.

W zwracanym obiekcie pair, Type1 jest określany w następujący sposób:

  • Jeśli typ danych wejściowych Type1 to reference_wrapper<X>, wówczas zwracany typ Type1 to X&.

  • W przeciwnym razie, zwracany typ Type1 to decay<Type1>::type.Jeśli decay — Klasa nie jest obsługiwany, zwrócony typ Type1 jest taki sam, jak typ wejściowy Type1.

Zwracany typ Type2 jest podobnie określany z typu wejściowego Type2.

Jedną z zalet make_pair jest to, że typy obiektów, które są przechowywane, są określane automatycznie przez kompilator i nie muszą być jawnie określone.Nie używaj jawnych argumentów szablonów, takich jak make_pair<int, int>(1, 2), gdy używasz make_pair, ponieważ daje to nadmiar informacji i dodaje złożone problemy z odwołaniami rvalue, które mogą spowodować błąd kompilacji.W tym przykładzie poprawna składnia to make_pair(1, 2)

Funkcja pomocnika make_pair umożliwia także przekazywanie dwóch wartości do funkcji, która wymaga pary jako parametru wejściowego.

Przykład

Aby uzyskać przykład, jak korzystać z funkcji pomocnika make_pair w celu zadeklarowania i zainicjowania pary, zobacz pair — Struktura.

Wymagania

Nagłówek: < Narzędzia >

Przestrzeń nazw: std

Zobacz też

Informacje

<utility>

Lvalues i Rvalues