Rumah >pembangunan bahagian belakang >C++ >Mengapa Potongan Templat Gagal dengan Penukaran Jenis Tersirat untuk Jenis Ditentukan Pengguna?
Penukaran Jenis Tersirat dan Potongan Templat
Apabila cuba menukar int secara tersirat kepada Skalar
Dalam kod yang disediakan:
<code class="cpp">func(a, 2);</code>
pengkompil cuba untuk secara tersirat menukar int 2 kepada Skalar
<code class="cpp">func(a, Scalar<int>{2}); // C++14</code>
Sebagai alternatif, jika C 17 digunakan, panduan potongan boleh ditakrifkan untuk Skalar, membenarkan sintaks berikut:
<code class="cpp">func(a, Scalar{2});</code>
Akhir sekali, instantiasi eksplisit bagi fungsi templat dengan hujah jenis yang ditentukan juga boleh memintas keperluan untuk penukaran tersirat:
<code class="cpp">func<int>(a, 2); // Assuming Scalar<T>::Scalar(T) is not explicit</code>
Atas ialah kandungan terperinci Mengapa Potongan Templat Gagal dengan Penukaran Jenis Tersirat untuk Jenis Ditentukan Pengguna?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!