参照本网站http://www.cplusplus.com/reference/std/utility/make_pair/为什么std :: make_pair通过值而不是通过const引用获取输入?
性病:: make_pair有这个签名(及可能的实现):
template <class T1,class T2>
pair<T1,T2> make_pair (T1 x, T2 y)
{
return (pair<T1,T2>(x,y));
}
我想知道为什么的std :: make_pair的值具有输入参数,而不是常量参考?
这有什么特别的理由吗?
有趣的是,http://www.sgi.com/tech/stl/pair.html make_pair通过值获取参数,但标准将它们定义为按值传递 – 2012-03-16 12:05:18
它[在C++ 11中更好](http ://en.cppreference.com/w/cpp/utility/pair/make_pair)。你所有的担忧都是暂时的,并且很快就无关紧要。 – 2012-03-16 12:15:43
“如果对象类型可以隐式转换,则可以从包含不同类型的其他对象中复制构建对象对象。” – PermanentGuest 2012-03-16 12:22:40