Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Peraturan Penjanaan Operasi Alih Automatik Berbeza Antara C 98 dan C 11?

Bagaimanakah Peraturan Penjanaan Operasi Alih Automatik Berbeza Antara C 98 dan C 11?

Linda Hamilton
Lepaskan: 2024-11-29 05:32:16
asal
1052 orang telah melayarinya

How Do Automatic Move Operation Generation Rules Differ Between C  98 and C  11?

Peraturan Penjanaan untuk Operasi Alih Automatik

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan