Operasi Dibenarkan pada Objek Dialih-Dari
Piawaian C mentakrifkan tindakan yang dibenarkan dengan objek yang telah dialihkan. Objek ini dianggap dalam keadaan tidak ditentukan, membenarkan julat operasi yang terhad.
Rujukan Standard
Bahagian 17.6.5.15 [lib.types.movedfrom] daripada keadaan piawai yang dipindahkan-daripada objek "hendaklah diletakkan dalam sah tetapi tidak ditentukan keadaan."
Operasi Tidak Terhad
Objek dalam keadaan yang tidak ditentukan boleh menjalani operasi yang tidak mempunyai prasyarat. Contoh biasa termasuk:
Operasi Terhad
Operasi dengan prasyarat, seperti penyahrujukan atau pop_back, tidak boleh dilakukan secara langsung pada objek yang dialihkan daripada objek, kerana keadaan objek yang tidak ditentukan mungkin tidak memenuhi keperluan yang diperlukan.
Contoh: std::swap
Templat fungsi swap contoh bergantung pada tugasan untuk dialihkan daripada objek (baris 2 dan 3). Ini sah kerana tugasan ialah operasi tidak terhad.
Sintaks Pembina Alternatif
Mengenai baris 1, penggunaan T c = std::move(a) ; bukannya T c(std::move(a)); adalah atas sebab kecekapan. Permulaan langsung memerlukan panggilan pembina salinan, manakala tugasan tidak.
Atas ialah kandungan terperinci Apakah Operasi yang Dibenarkan pada Objek Pindah Dari C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!