Tôi vừa mới biên dịch một số mã của riêng mình với -std=c++0x
cờ trong GCC, vì tôi muốn mơ hồ theo kịp những gì tất cả những người trẻ đang làm (miễn là họ ở lại bãi cỏ của tôi), và tôi đã kết thúc với một loạt các cảnh báo về việc auto_ptr
bị phản đối Tất nhiên, tôi biết rằng auto_ptr
đã bị phản đối trong C ++ 0x, nhưng ...
Không phải là mất giá một thời gian và nỗ lực? Các lý do không phản đối (với ví dụ auto_ptr):
có một đại dương mã ngoài kia vẫn cần được hỗ trợ, tạo ra hàng triệu cảnh báo sẽ chỉ cám dỗ mọi người tắt cảnh báo.
auto_ptr
là một chút naff, nhưng nó thực sự làm những gì nó nói trên tin.nếu chúng ta thực sự muốn phản đối mọi thứ, tôi đề cử
printf()
. Nhưng chỉ cần tưởng tượng những tiếng kêu sẽ xảy ra.auto_ptr
không có quá nhiều bạn bè, nhưng ít nhất trong mã C ++ của tôi, nó được sử dụng nhiều hơnprintf
, hoàn toàn không được sử dụng.ủy ban có một hồ sơ tồi về việc nhận quyền này - họ không tán thành tĩnh ở phạm vi không gian tên, và bây giờ dường như nó không được đánh giá cao - tôi sẽ không ngạc nhiên nếu
auto_ptr
thực hiện một sự trở lại tương tựcuối cùng, bất kể ủy ban nói gì, những người triển khai trình biên dịch đều bỏ qua chúng - đơn giản là họ không thể mạo hiểm phá vỡ mã khách hàng của mình, tất cả những gì họ có thể làm là đưa ra các cảnh báo khó chịu.
Vì vậy, câu hỏi của tôi - bạn có xem xét sự phản đối (của bất cứ điều gì, không chỉ auto_ptrs, và không chỉ trong C ++) là một ý tưởng tốt, và nếu vậy, tại sao?
unique_ptr
và hạnh phúc hơn.
auto_ptr
làm ví dụ.