Menyahmistikan Rujukan Universal dan Pemajuan
Dalam C , perbezaan antara rujukan universal dan pemajuan telah menjadi subjek perdebatan. Untuk menjelaskan kekeliruan ini, kami meneroka hubungan dan definisi mereka.
Intipati Rujukan Universal
Secara sejarah, rujukan universal telah diperkenalkan untuk menerangkan parameter templat yang boleh menerima rujukan nilai kepada jenis cv-tidak layak. Ini membenarkan templat untuk menyimpulkan sama ada nilai atau rujukan nilai berdasarkan hujah yang diluluskan.
Rujukan Pemajuan Ditakrifkan
Istilah "rujukan pemajuan" telah diperkenalkan dalam Piawaian C (N4164) untuk menangani kekurangan istilah khusus untuk konsep ini dalam C 11. Rujukan pemajuan secara rasmi ditakrifkan sebagai rujukan nilai kepada parameter templat cv-tidak layak. Jika hujah ialah nilai l, "rujukan nilai kepada A" digantikan dengan jenis "A" semasa potongan jenis.
Kesejagatan dan Pemajuan: Syiling Sama, Bahagian Berbeza
Istilah "rujukan sejagat" dan "rujukan pemajuan" menerangkan konsep yang sama. Kedua-duanya merujuk kepada rujukan nilai kepada parameter templat cv-tidak layak yang membolehkan pemotongan sama ada nilai atau rujukan nilai. Istilah standard C semasa ialah "rujukan pemajuan", yang dianggap sebagai deskriptor yang lebih tepat dan ringkas.
Ketidakrelevanan std::forward
Adalah penting untuk ambil perhatian bahawa penggunaan std::forward dalam badan fungsi tidak berkaitan dengan konsep rujukan pemajuan. Rujukan pemajuan merujuk semata-mata kepada potongan jenis templat berdasarkan rujukan nilai kepada parameter cv-tidak layak. Tingkah laku mereka adalah bebas daripada sama ada std::forward kemudiannya dipanggil atau tidak.
Atas ialah kandungan terperinci Apakah Perbezaan Antara Rujukan Universal dan Pemajuan dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!