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

Bagaimana untuk Mencipta Alias ​​Fungsi dalam C 11?

Patricia Arquette
Lepaskan: 2024-10-24 05:37:02
asal
714 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan