Tidak Dapat Menyimpulkan T daripada Templat
Dalam kod yang disediakan, ralat berlaku semasa cuba menyimpulkan templat hujah T untuk fungsi ujian. Untuk memahami sebabnya, adalah penting untuk menyelidiki konsep "konteks tidak boleh ditolak."
Dalam takrif templat TMap, anda mentakrifkan alias yang dipanggil Type menjadi std::map
Pertimbangkan senario berikut: jika TMap mempunyai pengkhususan untuk SomeType di mana Jenis ditakrifkan sebagai std::map< ;double, double>, bagaimana pengkompil menentukan jenis SomeType berdasarkan pengetahuan yang TMap
Selain itu, jika pengkhususan lain TMap wujud untuk OtherType di mana Jenis sekali lagi std::map
Adalah penting untuk diingat bahawa pengkompil tidak boleh membuat andaian tentang hubungan antara jenis argumen yang digunakan dalam definisi templat. Oleh itu, dalam konteks tidak boleh ditolak sedemikian, pengkompil tidak boleh secara automatik menyimpulkan hujah templat T.
Atas ialah kandungan terperinci Mengapa Pengkompil Tidak Boleh Menyimpulkan `T` dalam `test(TMap::Type)`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!