Đề cập đến trang web này http://www.cplusplus.com/reference/std/utility/make_pair/lý do tại sao std :: make_pair nhận đầu vào theo giá trị thay vì tham chiếu const?
Các std :: make_pair có chữ ký này (và thực hiện càng tốt):
template <class T1,class T2>
pair<T1,T2> make_pair (T1 x, T2 y)
{
return (pair<T1,T2>(x,y));
}
Tôi tự hỏi tại sao std :: make_pair có tham số đầu vào theo giá trị và không phải bởi const tài liệu tham khảo?
Có lý do cụ thể nào cho điều này không?
Thú vị http://www.sgi.com/tech/stl/pair.html make_pair lấy đối số theo giá trị, nhưng tiêu chuẩn xác định chúng theo giá trị –
Đó là [tất cả tốt hơn trong C++ 11] (http : //en.cppreference.com/w/cpp/utility/pair/make_pair). Tất cả những lo lắng của bạn là thoáng qua và không liên quan. –
từ cùng một trang "cặp đối tượng có thể được sao chép xây dựng từ các đối tượng cặp khác có chứa các loại khác nhau, nếu các loại tương ứng được chuyển đổi ngầm." – PermanentGuest