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

Bilakah Rujukan Nilai `const Foo&&` Berguna dalam C ?

Patricia Arquette
Patricia Arquetteasal
2024-12-11 10:39:151026semak imbas

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

Rujukan Nilai Konst: Perspektif Praktikal

Dalam C , seseorang mungkin mempersoalkan kegunaan rujukan nilai r kepada objek const. Untuk mendalami topik ini dengan lebih mendalam, mari kita analisa soalan: "Adakah terdapat sebarang senario di mana const Foo& & boleh berfaedah, dengan mengandaikan Foo ialah jenis kelas?"

Apa yang mengejutkan, rujukan const rvalue menawarkan faedah yang berbeza. Draf C 0x itu sendiri mencontohkan penggunaannya dalam kod berikut:

template <class T> void ref(const T& &) = delete;
template <class T> void cref(const T& &) = delete;

Lebihan beban ini secara berkesan menghalang fungsi lain, seperti ref(T&) atau cref(const T&), daripada terikat pada objek rvalue. Ini menjamin kelakuan yang dimaksudkan bagi fungsi ini.

Dalam dokumen standard rasmi N3290, yang tidak tersedia secara umum, kod yang sama terdapat dalam bahagian 20.8:

template <class T> void ref(const T& &) = delete;
template <class T> void cref(const T& &) = delete;

Selain itu, dalam draf terbaharu, N3485, lebihan rujukan nilai const ini masih terdapat dalam bahagian 20.8, menonjolkan kesinambungannya perkaitan.

Oleh itu, walaupun pada mulanya seseorang mungkin menganggap rujukan nilai const kekurangan utiliti, aplikasi praktikalnya dalam standard C dan konteks lain menekankan kepentingannya.

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