aptumsums: kļūda ‘XXXX’ nenosauc tipa risinājumu
Eclipse Error Xxxx Does Not Name Type Solution
Atbildot uz šo kļūdu, Mana īpašā kļūda ir “constexpr”, nosaukums netiek nosaukts , Bet es to nomainīju uz const, lai šī kļūda neparādītos. Es sāku vākt informāciju, lai atrastu galveno cēloni.
1. iemesls: dažādām C ++ versijām:
constexpr ir atslēgvārds, ko piedāvā C ++ 11 , Tās nozīme nedaudz atšķiras no 14 versijas.
Jāgarantē, ka atgriešanās vērtība un parametri, ko constexpr norādījusi C ++ 11, ir burtiski, un atgriezeniskā koda rindām jābūt tikai vienām rindām, kas funkciju noformētājam rada vairāk. Daudzi ierobežojumi, piemēram, parasti tikai caur atgriešanās trīskāršais operators + rekursija, lai aprēķinātu atgriezto burtisko vērtību.
Programmā C ++ 14 jums tikai jānodrošina, lai atgriešanās vērtība un parametri būtu burtiski. Funkcijas ķermenim var pievienot vairāk paziņojumu, lai atvieglotu elastīgākus aprēķinus.
Kāda ir atšķirība starp const un constexpr?
const neatspoguļo 'konstanti', tā ir tikai mainīgā modifikācija, sakot kompilatoram, ka šo mainīgo var tikai inicializēt un to nevar tieši modificēt (faktiski tas var notikt ar kaudzes pārpildes utt. Mode modifikāciju). Šī mainīgā lielumu var norādīt izpildlaikā vai sastādīšanas laikā.
constexpr var izmantot, lai modificētu mainīgos, funkcijas un konstruktorus. Kad Constexpr ir modificējis kādu no iepriekš minētajiem elementiem, tas ir līdzvērtīgi sakot kompilatoram 'lūdzu, izturieties pret mani drosmīgi kā pret izteicienu, kas kompilēšanas laikā var iegūt nemainīgu vērtību, lai mani optimizētu'.
Tālāk sīki analizēsim Konstatēts, ka tas, iespējams, ir saistīts ar C ++ versiju, vēlāk pārbaudiet aptumsuma atribūtu konfigurāciju Konstatēts, ka konfigurācija ir jāmaina:
ir šāds:
Galvenais iemesls ir tas, ka šī C ++ versija nav konfigurēta. Vienkārši izpildiet zemāk esošo konfigurāciju un pievienojiet šo konfigurāciju vēlāk std = c ++ 11 :
palaižot vairs nepaziņos par kļūdām.
Otrais iemesls: atkārtoti zvani uz galvenes failiem
Bet kompilācijā C ++ šai kļūdai var būt vēl viens iemesls, tas ir, atkārtoti zvani:
Īpaša atsauce
Kļūda: ‘xxx’ nenosauc tipu, ko izraisīja pārsūtīšanas deklarācijas un C ++ galvenes faila iekļaušana (Paldies emuāru autorei par dalīšanos)