Rumah >pembangunan bahagian belakang >C++ >Mengapa `f(T&&)` Tidak Dipanggil Apabila Menyalurkan Rujukan Nilai R kepadanya?
Mengapa Rujukan rnilai Pembolehubah Bukan Rujukan rnilai
Pertimbangkan dua lebihan fungsi f:
void f(T&&&); // #1 void f(T&); // #2
Dalam fungsi lain g:
void g(T&& t) { f(t); // calls #2 }
Mengapa lebihan beban f(T&) dipanggil walaupun parameter t ialah nilai r?
Sifat Rujukan rnilai
Rujukan rnilai ialah pembolehubah yang hanya boleh mengikat rnilai (objek tanpa nama). T&&t mempunyai nama, menjadikannya lvalue.
Perbezaan antara Jenis dan Nilai
T&& ialah rujukan rnilai jenis. Rujukan rnilai boleh mengikat hanya pada rnilai, tetapi sebaliknya ia adalah lnilai jenis rujukan.
Kes Khas
Peraturan yang Mentadbir Rujukan Nilai
Atas ialah kandungan terperinci Mengapa `f(T&&)` Tidak Dipanggil Apabila Menyalurkan Rujukan Nilai R kepadanya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!