ฉันเพิ่งรวบรวมรหัสของตัวเองบางอย่างกับ-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
เป็นตัวอย่าง