Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah Saya Tidak Boleh Menyalurkan Rujukan Bukan Const kepada `std::async`?

Mengapakah Saya Tidak Boleh Menyalurkan Rujukan Bukan Const kepada `std::async`?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-28 06:32:30725semak imbas

Why Can't I Pass Non-Const References to `std::async`?

Melalukan Rujukan Bukan Const kepada std::async

Dalam std::async, menghantar rujukan bukan const sebagai hasil hujah dalam kesilapan. Ini adalah pilihan reka bentuk yang disengajakan.

Rasional

Menentukan sama ada objek fungsi menerima hujahnya melalui rujukan tidak selalu boleh dilaksanakan. Oleh itu, std::async mesti sama ada menyalin semua argumen atau menerimanya dengan rujukan. Menyalin hujah memastikan keselamatan kerana ia tidak boleh berjuntai atau menyebabkan keadaan perlumbaan.

Pengecualian: std::ref

Untuk membenarkan parameter rujukan bukan const, std::ref boleh digunakan. Ini ialah ikut serta secara eksplisit kepada semantik rujukan yang berpotensi berbahaya, yang memerlukan pengendalian yang teliti terhadap rujukan berjuntai dan keadaan perlumbaan.

Atas ialah kandungan terperinci Mengapakah Saya Tidak Boleh Menyalurkan Rujukan Bukan Const kepada `std::async`?. 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