Dalam C 98, pengkompil boleh mencipta pembina salinan dan menyalin pengendali tugasan secara automatik melalui salinan dari segi ahli. Proses ini dilanjutkan ke C 11 dengan pengenalan semantik bergerak. Walau bagaimanapun, peraturan untuk penjanaan automatik operasi pemindahan berbeza daripada operasi penyalinan.
Pembentangan ACCU 2014 Howard Hinnant memberikan gambaran ringkas tentang peraturan ini. Jadual berikut meringkaskan perkara utama:
Destructor | Move Constructor | Move Assignment Operator | |
---|---|---|---|
C 98/03 | No | Yes | Yes |
C 11 (Defect Report 1492) | Yes | No | No |
C 11 Final | Yes | Yes* | Yes* |
Ya: Dijana secara automatik.
Tidak: Tidak secara automatik dijana.
*Tetapi hanya ditakrifkan secara tersirat (tidak diisytiharkan atau diisytiharkan=lalai). Takrifan eksplisit menindas penjanaan.
Peraturan ini menunjukkan bahawa walaupun pembina alih dan pengendali tugasan pindah biasanya dijana secara automatik dalam C 11, terdapat beberapa kes yang mungkin tidak. Sebagai contoh, jika pemusnah ditakrifkan secara eksplisit, operasi pergerakan tidak akan dihasilkan. Begitu juga, dengan jelas mentakrifkan operasi bergerak itu sendiri menyekat penjanaan automatik.
Atas ialah kandungan terperinci Bagaimanakah Peraturan Penjanaan Operasi Alih Automatik Berbeza Antara C 98 dan C 11?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!