make_pair
Funkce šablony, kterou můžete použít k vytvoření objektů typu pair, kde jsou typy komponenty automaticky zvoleny na základě datových typů předaných 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
Hodnota, která inicializuje první prvek pair.Val2
Hodnota, která inicializuje druhý prvek pair.
Vrácená hodnota
Dvojice objekt, který je vytvořen: pair<Type1, Type2> (Val1, Val2).
Poznámky
make_pair převede objekt typu reference_wrapper – třída na referenční typy a převede slábnoucí pole a funkce na ukazatele.
Ve vráceném objektu pair je Type1 určen následovně:
Pokud vstupní typ Type1 je reference_wrapper<X>, vrácený typ Type1 je X&.
V opačném případě vrácený typ Type1 je decay<Type1>::type.Pokud decay – třída není podporováno, vrácený typ Type1 je stejný jako vstupní typ Type1.
Vrácený typ Type2 je podobně určen na základě vstupního typu Type2.
Jednou z výhod make_pair je, že typy ukládaných objektů jsou určeny automaticky kompilátorem a není nutné je určit explicitně.Nepoužívejte explicitní argumenty šablony, například make_pair<int, int>(1, 2), když používáte make_pair, protože je zbytečně podrobný a přináší složité problémy s odkazem hodnoty rvalue, které mohou způsobit selhání kompilace.V tomto příkladu by správná syntaxe byla make_pair(1, 2)
Funkce pomocné rutiny make_pair dále umožňuje předat dvě hodnoty funkci, která jako vstupní parametr vyžaduje dvojici.
Příklad
Příklad použití funkce pomocné rutiny make_pair k deklaraci a inicializaci dvojice naleznete v tématu pair – struktura
Požadavky
Záhlaví: < Nástroje >
Obor názvů: std