Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencipta Alias ​​Fungsi dalam C 11?

Bagaimana untuk Mencipta Alias ​​Fungsi dalam C 11?

Patricia Arquette
Patricia Arquetteasal
2024-10-24 05:37:02602semak imbas

How to Create Function Aliases in C  11?

Fungsi Aliasing dalam C 11

Dalam C 11, mengalias kelas menggunakan arahan penggunaan adalah mudah. Walau bagaimanapun, mencipta alias untuk fungsi terbukti lebih mencabar.

Masalah:

Pertimbangkan ruang nama dan pengisytiharan fungsi berikut:

<code class="cpp">namespace bar {
    void f();
}</code>

Mencuba menggunakan alias fungsi dengan menggunakan g = bar::f; akan mengakibatkan ralat, kerana "f" bukan jenis dalam ruang nama "bar".

Penyelesaian Bersih dengan Pemajuan Sempurna:

Untuk mencipta alias fungsi , pemajuan sempurna boleh digunakan:

<code class="cpp">template<typename... Args>
auto g(Args&&... args) -> decltype(f(std::forward<Args>(args)...)) {
    return f(std::forward<Args>(args)...);
}</code>

Penyelesaian ini memastikan bahawa g memajukan semua hujah ke f dengan betul, walaupun f terlebih beban atau templat fungsi.

Takrif Alias :

Alias, atau B, ialah entiti bahan A yang memastikan bahawa sebarang penggantian B dalam kod sumber untuk sebarang penggunaan (tidak termasuk pengisytiharan atau takrifan) A akan mengakibatkan penyusunan yang tidak diubah. kod.

Contoh:

Selepas mentakrifkan alias g, kod berikut akan memanggil f melalui alias:

<code class="cpp">g(1, 2, 3); // Calls bar::f(1, 2, 3);</code>

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Alias ​​Fungsi dalam C 11?. 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