Rumah >pembangunan bahagian belakang >C++ >Bilakah Rujukan Nilai `const Foo&&` Berguna?

Bilakah Rujukan Nilai `const Foo&&` Berguna?

DDD
DDDasal
2024-12-09 19:00:22586semak imbas

When Are `const Foo&&` Rvalue References Useful?

Rujukan Rnilai kepada Konst: Perspektif Praktikal

Walaupun kepercayaan umum bahawa rujukan nilai kepada const (const Foo&&) tidak mempunyai kegunaan, terdapat sememangnya aplikasi praktikal untuk mereka, seperti yang ditunjukkan oleh draf C 0x sendiri.

Draf C 0x menggunakan rujukan sedemikian dalam pelbagai keadaan untuk mengelakkan pengikatan nilai r yang tidak diingini kepada fungsi ref(T&) dan cref(const T&) yang lain. Fungsi ini direka khusus untuk menerima hanya lvalues ​​(rujukan kepada objek), dan rujukan rvalue kepada const memastikan bahawa rvalues ​​(rujukan kepada sementara) tidak tersilap terikat.

Baru-baru ini, selepas menyemak standard rasmi N3290 (bukan secara terbuka boleh diakses), kami menemui baris berikut dalam objek Fungsi 20.8 [function.objects]/p2:

templat void ref(const T&&) = padam;
template void cref(const T&&) = delete;

Pemeriksaan lanjut draf pasca-C 11 yang terbaharu, N3485 (tersedia awam), mengesahkan kegigihan baris ini dalam 20.8 Objek fungsi [function.objects]/p2 .

Contoh ini menggambarkan kegunaan rujukan rnilai kepada const dalam tertentu senario, terutamanya apabila memastikan kelakuan yang betul bagi fungsi lebihan dan menghalang pengikatan nilai yang tidak disengajakan.

Atas ialah kandungan terperinci Bilakah Rujukan Nilai `const Foo&&` Berguna?. 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