Tôi hỏi điều này bởi vì đó là một hạn chế làm suy yếu vì một số lý do rõ ràng nhưng tôi chắc chắn rằng những kẻ tiêu chuẩn C++ có lý do chính đáng để làm điều đó, và tôi muốn biết nó là gì. Không phải vì nó sẽ tạo ra bất kỳ sự khác biệt nào nhưng bởi vì nó sẽ làm cho tôi cảm thấy tốt hơn khi biết rằng có một lý do chính đáng cho nó.Tại sao con trỏ yếu không thể truy cập con trỏ cơ bản?
Đây là sự đảm nhận hiện tại của tôi; như tôi thấy con trỏ yếu có 2 cách sử dụng chính:
1) để tránh vòng lặp quyền sở hữu. 2) để giảm chi phí liên quan đến việc nảy xung quanh rất nhiều con trỏ được chia sẻ.
Cái cũ sẽ không được phục vụ và cái sau được phục vụ tốt hơn bằng cách thực hiện weak_ptr.get(), vậy tại sao nó không tồn tại? Thêm vào điểm, sẽ không weak_ptr.get() được hiệu quả hơn so với weak_ptr.lock(). Get(), hoặc có thể một trình biên dịch tối ưu hóa này là như nhau?
Trong tài liệu hướng dẫn tăng, có giải thích tại sao 'weak_ptr' sẽ không trả về con trỏ thô bằng phương thức như' get() ': [Boost 1.43.0: weak_ptr] (http://www.boost.org /doc/libs/1_43_0/libs/smart_ptr/weak_ptr.htm). – Pixelchemist
Sẽ đọc. Cảm ơn. – arman