Rumah >pembangunan bahagian belakang >C++ >Bagaimana Alias ​​Berfungsi dalam C 11?

Bagaimana Alias ​​Berfungsi dalam C 11?

DDD
DDDasal
2024-10-23 14:48:45344semak imbas

How to Alias Functions in C  11?

Fungsi Aliasing dalam C 11

Walaupun mudah untuk kelas alias menggunakan pernyataan, fungsi aliasing secara langsung tidak disokong secara lalai dalam C . Walau bagaimanapun, terdapat cara untuk mencapai ini dengan berkesan.

Pertimbangkan kod berikut:

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

Untuk alias fungsi ini, anda boleh menggunakan pemajuan sempurna seperti berikut:

<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 berfungsi untuk mengalikan mana-mana fungsi, termasuk lebihan beban dan fungsi templat. Pada asasnya, fungsi templat g memajukan hujah ke fungsi asal f menggunakan pemajuan sempurna.

Dengan melakukan ini, anda boleh menggantikan mana-mana penggunaan bar::f dalam kod anda dengan g dengan berkesan, menghasilkan hasil yang serupa dari segi fungsi. Walau bagaimanapun, ambil perhatian bahawa pendekatan ini tidak mentakrifkan fungsi baharu dengan nama g sebaliknya mencipta pembungkus umum yang menggunakan fungsi asal.

Atas ialah kandungan terperinci Bagaimana Alias ​​Berfungsi 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