Pindahkan Penjanaan Operasi dalam C
Dalam C 98, pembina salinan dan pengendali tugasan dijana secara automatik untuk kelas tanpa definisi tersuai. Walau bagaimanapun, dengan pengenalan semantik bergerak dalam C 11, penjanaan operasi bergerak memerlukan pertimbangan lanjut.
Penjanaan Automatik Operasi Alih
Gerakan pembina dan alihkan pengendali tugasan dijana secara automatik hanya jika keadaan tertentu met:
Pengecualian kepada Penjanaan Automatik
Dalam sesetengah kes, operasi pemindahan adalah tidak dijana secara automatik, walaupun syarat di atas dipenuhi. Contohnya:
Maklumat Tambahan
Pembentangan Howard Hinnant daripada persidangan ACCU 2014 menyediakan jadual komprehensif yang meringkaskan peraturan untuk penjanaan automatik ahli khas, termasuk bergerak operasi. Slaid menyerlahkan bahawa tingkah laku yang ditamatkan ditunjukkan oleh petak merah.
Untuk memastikan semantik pergerakan dikendalikan dengan betul, adalah disyorkan untuk mengikuti "peraturan 3" dari C 98/03. Ini bermakna mengisytiharkan secara eksplisit kedua-dua ahli salinan jika pemusnah diisytiharkan, atau mengisytiharkan sekurang-kurangnya satu daripada ahli salinan.
Atas ialah kandungan terperinci Bilakah Move Constructors dan Move Assignment Operator Dijana Secara Automatik dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!