ฉันเพิ่งรวบรวมรหัสของตัวเองบางอย่างกับ-std=c++0xธงใน GCC เนื่องจากฉันต้องการติดตามสิ่งที่คนหนุ่มสาวกำลังทำอยู่อย่างคลุมเครือ เกี่ยวกับauto_ptrการคัดค้าน แน่นอนฉันรู้ว่าauto_ptrเลิกใช้แล้วใน C ++ 0x แต่ ...
การเลิกใช้งานเป็นการเสียเวลาและความพยายามใช่ไหม สาเหตุของการไม่คิดค่าเสื่อมราคา (ด้วย auto_ptr เป็นตัวอย่าง):
มีมหาสมุทรที่เต็มไปด้วยรหัสซึ่งยังต้องได้รับการสนับสนุนการสร้างคำเตือนนับล้านจะดึงดูดผู้คนให้ปิดคำเตือนเท่านั้น
auto_ptrมันเป็นเรื่องเล็กน้อย แต่จริงๆแล้วมันทำในสิ่งที่มันพูดบนกระป๋องprintf()ถ้าเราอยากจะเลิกใช้สิ่งที่ผมเสนอชื่อ แต่ลองจินตนาการถึงเสียงซัดทอดที่จะตามมาauto_ptrไม่มีเพื่อนมากเกินไป แต่อย่างน้อยในรหัส C ++ ของฉันมันถูกใช้มากกว่าprintfซึ่งไม่ได้ใช้เลยคณะกรรมการมีประวัติไม่ดีในการได้รับสิทธินี้ - พวกเขาคัดค้านสแตติกที่ขอบเขตเนมสเปซและตอนนี้ดูเหมือนว่าจะไม่ได้รับการแก้ไข - ฉันจะไม่แปลกใจถ้า
auto_ptrทำแบบเดียวกันกลับมาสุดท้ายสิ่งที่คณะกรรมการกล่าวว่าผู้ดำเนินการคอมไพเลอร์ไม่สนใจพวกเขา - พวกเขาไม่สามารถเสี่ยงต่อการทำลายรหัสลูกค้าของพวกเขาสิ่งที่พวกเขาสามารถทำได้ก็คือการออกคำเตือนที่น่ารำคาญ
ดังนั้นคำถามของฉัน - คุณพิจารณาการคัดค้าน (ของอะไรไม่ใช่แค่ auto_ptrs และไม่ใช่แค่ใน C ++) เป็นความคิดที่ดีและถ้าเป็นเช่นนั้นทำไม
unique_ptrและมีความสุขมากขึ้น
auto_ptrเป็นตัวอย่าง