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

Mary-Kate Olsen
Lepaskan: 2024-10-28 06:32:30
asal
803 orang telah melayarinya

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!

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