Rumah >pembangunan bahagian belakang >C++ >Bilakah Pengkompil C 11 Menjana Operasi Pindah Secara Automatik?

Bilakah Pengkompil C 11 Menjana Operasi Pindah Secara Automatik?

Patricia Arquette
Patricia Arquetteasal
2024-11-27 07:53:12236semak imbas

When Does the C  11 Compiler Automatically Generate Move Operations?

Peraturan untuk Penjanaan Automatik Operasi Alih

Dalam C 11, keupayaan pengkompil untuk menjana operasi bergerak secara automatik berbeza daripada peraturan untuk operasi penyalinan dalam C 98.

Pindahkan Pembina dan Pindahkan Tugasan Operator

Di bawah syarat berikut, pengkompil akan secara automatik menjana pembangun bergerak dan memindahkan operator tugasan:

  • Kelas tidak mempunyai pembina salinan yang diisytiharkan pengguna.
  • Kelas tidak mempunyai pengendali tugasan salinan yang diisytiharkan pengguna.
  • Kelas tidak mempunyai pemindahan yang diisytiharkan secara jelas pembina atau pengendali tugasan alih.

Kes Di mana Operasi Alih Tidak Dijana Secara Automatik

Pengkompil tidak akan menjana operasi pindah secara automatik jika mana-mana syarat berikut adalah bertemu:

  • Kelas mempunyai pembina salinan yang diisytiharkan pengguna dan/atau tugasan salinan operator.
  • Kelas mempunyai pengisytiharan secara eksplisit, tetapi tidak ditakrifkan, alihkan pembina atau alihkan operator tugasan.
  • Kelas itu mengisytiharkan pemusnah.

Alat untuk Mengesahkan Peraturan Penjanaan Automatik

Sumber berikut menyediakan gambaran visual peraturan untuk penjanaan automatik ahli khas, termasuk operasi bergerak:

[Imej slaid pembentangan Howard Hinnant ACCU 2014](https://i.sstatic.net/b2VBV.png)

Penjelasan Tambahan

Petak merah dalam jadual menunjukkan tingkah laku yang tidak digunakan lagi. Jika anda ingin mengelak daripada bergantung pada penamatan, pertimbangkan untuk mengikuti "peraturan 3" daripada C 98/03: isytiharkan kedua-dua ahli salinan jika anda mengisytiharkan pemusnah, atau mengisytiharkan sekurang-kurangnya seorang ahli salinan.

Atas ialah kandungan terperinci Bilakah Pengkompil C 11 Menjana Operasi Pindah Secara Automatik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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