En referencia a esta página web http://www.cplusplus.com/reference/std/utility/make_pair/¿Por qué std :: make_pair recibe entrada por valor en lugar de por referencia constante?
El std :: make_pair tiene esta firma (y posible implementación):
template <class T1,class T2>
pair<T1,T2> make_pair (T1 x, T2 y)
{
return (pair<T1,T2>(x,y));
}
Me pregunto por qué std :: make_pair tiene parámetro de entrada por valor y no por la const referencias?
¿Hay alguna razón en particular para esto?
Curiosamente http://www.sgi.com/tech/stl/pair.html make_pair toma argumentos por valor, pero el estándar los define como pasar por el valor –
Es [todo mejor en C++ 11] (http : //en.cppreference.com/w/cpp/utility/pair/make_pair). Todas tus preocupaciones son transitorias y pronto irrelevantes. –
desde la misma página "los objetos de pares se pueden copiar de otros objetos de pares que contengan tipos diferentes, si los tipos respectivos son implícitamente convertibles". – PermanentGuest