<prompt> Ninajaribu kupata punguzo la hoja ya kiotomatiki ili kufanya kazi katika C. Nimeandika kazi ambayo inakubali std::map na aina zozote mbili za kiholela kama ingizo lake, na inarudisha kutofautisha na aina ya kwanza kama matokeo yake. Mfano ufuatao hufanya kazi na unajumuisha kwa mafanikio:std::map map1;map1apple 1;string key1 getkeyramani1, 1;Ifuatayo haina:std::map map2;map21 apple;int key2 getkeyramani2, apple;Mkusanyaji anasema haiwezi kuamua aina zinazotumiwa na ramani. Ni nini sababu ya hii?  <response>: Sababu ya hii ni kwamba kupunguzwa kwa hoja ya kiolezo kwa kazi haifanyi kazi wakati hoja ziko katika nafasi tofauti kwenye orodha ya parameta kwa simu mbili za kazi. Katika mfano wa kwanza, aina ya ufunguo ni std::string na aina ya thamani ni int, kwa hivyo upunguzaji wa hoja ya kiolezo unaweza kuamua kwa usahihi kuwa T ni std::string na U ni int. Katika mfano wa pili, aina ya ufunguo ni int na aina ya thamani ni std::string, hivyo kukata kunashindwa kwa sababu aina ziko katika mpangilio tofauti.Ili kurekebisha hili, unaweza kubainisha kwa uwazi hoja za kiolezo cha simu ya kukokotoa:cint key2 getkeymap2, apple;Vinginevyo, unaweza kupanga upya mpangilio wa vigezo vya kiolezo katika ufafanuzi wa chaguo la kukokotoa ili kuendana na mpangilio wa aina kwenye ramani:ckiolezoT getkeyconst std::map m, const U value ...Kwa ufafanuzi huu, simu zote mbili kwa chaguo za kukokotoa zitafanya kazi bila ubainifu wa hoja za kiolezo. Maagizo: Kwa hivyo, kwa uwazi, niko sahihi kudhani kuwa mzizi wa shida ni kwamba mkusanyaji hatajua kuwa apple ni std::string bila kupewa aina fulani ya wazo?Kama vile katika mabano ya pembe katika mfano wako wa kwanza, au kwamba kigezo cha pili cha ingizo kitakuwa na chapa sawa na thamani ya ramani katika mfano wako wa pili? Jibu: Ndiyo, hiyo ni sahihi. Utoaji wa hoja ya kiolezo unategemea mkusanyaji kuweza kubaini aina za hoja za kazi kulingana na aina za hoja halisi zilizopitishwa. Katika mfano wa pili uliotoa, mkusanyaji hawezi kubainisha aina sahihi kwa sababu kigezo cha kiolezo huanika katika chaguo za kukokotoa. ufafanuzi ziko katika mpangilio tofauti na hoja halisi zinazopitishwa. Kwa kubainisha kwa uwazi hoja za violezo au kupanga upya vigezo vya violezo, unatoa kidokezo kwa mkusanyaji kuhusu aina gani za kutumia, ikiruhusu upunguzaji wa hoja ya kiolezo kufaulu. 