Rumah > pembangunan bahagian belakang > C++ > Bolehkah Argumen Templat Disimpulkan Secara Automatik dalam C Menggunakan `template`?

Bolehkah Argumen Templat Disimpulkan Secara Automatik dalam C Menggunakan `template`?

Susan Sarandon
Lepaskan: 2024-11-05 02:43:01
asal
320 orang telah melayarinya

Can Template Arguments Be Deduced Automatically in C   Using `template`?

Mengautomasikan Potongan Hujah Templat dengan templat

Soalan:

Boleh templat hujah diluluskan semasa masa penyusunan tanpa menyatakan jenisnya secara jelas? Contohnya, bukannya templat bolehkah kami menggunakan templat?

Jawapan:

Pendekatan yang disebutkan tidak boleh dilakukan dalam C . Alternatif terdekat melibatkan penggunaan makro:

<code class="cpp">#define AUTO_ARG(x) decltype(x), x

f.bar<AUTO_ARG(5)>();
f.bar<AUTO_ARG(&Baz::bang)>();</code>
Salin selepas log masuk

Pendekatan alternatif ialah menggunakan fungsi penjana yang menyimpulkan hujah templat:

<code class="cpp">template <typename T>
struct foo {
    foo(const T&amp;) {} // do whatever
};

template <typename T>
foo<T> make_foo(const T&amp; x) {
    return foo<T>(x);
}</code>
Salin selepas log masuk

Sekarang, bukannya menulis:

<code class="cpp">foo<int>(5);</code>
Salin selepas log masuk

Kami hanya boleh menulis:

<code class="cpp">make_foo(5);</code>
Salin selepas log masuk

Kaedah ini mengautomasikan potongan hujah templat, menyediakan cara yang lebih mudah untuk meluluskan hujah.

Atas ialah kandungan terperinci Bolehkah Argumen Templat Disimpulkan Secara Automatik dalam C Menggunakan `template`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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