Penjanaan Automatik Operasi Alih
Dalam C 11, pengenalan semantik bergerak menimbulkan persoalan tentang keadaan di mana menggerakkan pembina dan memindahkan tugasan operator dijana secara automatik.
Di bawah C 11, operasi alih tidak secara automatik dihasilkan seperti pembina salinan dan pengendali tugasan salinan. Pengkompil hanya menjana semantik pindah jika syarat tertentu dipenuhi:
Memahami peraturan ini membantu membimbing pelaksanaan kelas yang menggunakan pergerakan semantik. Jadual daripada pembentangan Howard Hinnant memberikan gambaran ringkas tentang penjanaan automatik ahli khas, termasuk operasi pemindahan:
Declaration | Copy Constructor | Copy Assignment Operator | Move Constructor & Move Assignment Operator |
---|---|---|---|
None | Generated | Generated | Not Generated |
Copy Constructor | Not Generated | Generated | Not Generated |
Copy Assignment Operator | Not Generated | Not Generated | Not Generated |
Move Constructor | Not Generated | Not Generated | Not Generated |
Move Assignment Operator | Not Generated | Not Generated | Not Generated |
Destructor | Not Generated | Not Generated | Not Generated |
Copy Constructor & Copy Assignment Operator | Not Generated | Not Generated | Not Generated |
Copy Constructor & Move Constructor | Not Generated | Not Generated | Not Generated |
Copy Constructor & Move Assignment Operator | Not Generated | Not Generated | Not Generated |
Copy Assignment Operator & Move Constructor | Not Generated | Not Generated | Not Generated |
Copy Assignment Operator & Move Assignment Operator | Not Generated | Not Generated | Not Generated |
Move Constructor & Destructor | Not Generated | Not Generated | Not Generated |
Move Assignment Operator & Destructor | Not Generated | Not Generated | Not Generated |
Copy Constructor & Copy Assignment Operator & Move Constructor | Not Generated | Not Generated | Not Generated |
Copy Constructor & Copy Assignment Operator & Move Assignment Operator | Not Generated | Not Generated | Not Generated |
Copy Constructor & Move Constructor & Move Assignment Operator | Not Generated | Not Generated | Generated |
Copy Assignment Operator & Move Constructor & Move Assignment Operator | Not Generated | Not Generated | Generated |
Dengan mengenali peraturan ini, pembangun boleh memastikan kelas mereka menggunakan semantik pergerakan dengan betul dan mencapai kecekapan optimum.
Atas ialah kandungan terperinci Bilakah Pembina Alih dan Operator Tugasan Alih Dijana Secara Automatik dalam C 11?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!