Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah Perbezaan Antara Rujukan Universal dan Pemajuan dalam C ?

Apakah Perbezaan Antara Rujukan Universal dan Pemajuan dalam C ?

DDD
DDDasal
2024-11-12 13:08:02604semak imbas

What's the Difference Between Universal and Forwarding References in C  ?

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!

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