Rumah > Artikel > pembangunan bahagian belakang > Bolehkah Argumen Templat Disimpulkan Secara Automatik dalam C Menggunakan `template`?
Mengautomasikan Potongan Hujah Templat dengan templat
Soalan:
Boleh templat hujah diluluskan semasa masa penyusunan tanpa menyatakan jenisnya secara jelas? Contohnya, bukannya 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>
Pendekatan alternatif ialah menggunakan fungsi penjana yang menyimpulkan hujah templat:
<code class="cpp">template <typename T> struct foo { foo(const T&) {} // do whatever }; template <typename T> foo<T> make_foo(const T& x) { return foo<T>(x); }</code>
Sekarang, bukannya menulis:
<code class="cpp">foo<int>(5);</code>
Kami hanya boleh menulis:
<code class="cpp">make_foo(5);</code>
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!